Karabiner の Use KANA as KANA/EISUU (toggle) を hammerspoon で

init.lua

local KEY_CODE_JIS_EISUU = 102
local KEY_CODE_JIS_KANA  = 104

local function isInputSourceKana()
  -- 利用中の IME に合わせて要修正
  -- cf. hs.logger.new('IM', 'debug'):d(hs.inspect(hs.keycodes.methods()))
  return hs.keycodes.currentMethod() == 'ひらがな(ATOK)'
end

local toggleInputSource
toggleInputSource = hs.hotkey.bind({}, KEY_CODE_JIS_KANA, function()
  if isInputSourceKana() then
    return hs.eventtap.keyStroke({}, KEY_CODE_JIS_EISUU, 0)
  end

  toggleInputSource:disable()
  hs.eventtap.keyStroke({}, KEY_CODE_JIS_KANA, 0)
  toggleInputSource:enable()
end)

備考

  • hs.keycodes.setMethodIM をセットするとメニューバー上のアイコンは変わるものの、実際にキーを叩くと意図通りにはならなかったので、英数/かなキーをストロークさせる様に
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.