Hammerspoon + iTerm2 で HotKey Window を開いた時に自動的に英数入力モードに切り替える
2025-10-23 01:31 公開
Hammerspoon + iTerm2 で HotKey Window を開いた時に自動的に英数入力モードに切り替え、閉じた時に元の入力モードに戻すコードを紹介します。
概要
やや表示が小さいですが、以下のように動作します。
英数入力モードの状態で iTerm2 を開く場合はそのまま、かな入力モードの状態で開く場合は、自動的に英数入力モードに切り替わり、閉じるとまたかな入力モードに戻るようになっています。
設定方法
Hammerspoon と iTerm2 の設定はできているものとします。
以下のコードを Hammerspoon の init.lua に追加してください。
-- iTerm2 の Hotkey Window で英数入力に切り替える
local lastInputSourceBeforeITerm = nil
local iTermWatcher = hs.window.filter.new('iTerm2')
iTermWatcher:subscribe(hs.window.filter.windowFocused, function(window, appName)
if window then
lastInputSourceBeforeITerm = hs.keycodes.currentSourceID()
hs.eventtap.keyStroke({}, 'eisu')
end
end)
iTermWatcher:subscribe(hs.window.filter.windowUnfocused, function(window, appName)
if window and lastInputSourceBeforeITerm then
if lastInputSourceBeforeITerm == "com.apple.keylayout.ABC" then
hs.eventtap.keyStroke({}, 'eisu')
else
hs.eventtap.keyStroke({}, 'kana')
end
end
end)
まとめ
iTerm2 を使った作業が多い方には便利かと思うので、ぜひ導入してみてください。
どなたかの参考になれば幸いです。