Hammerspoonを使って左Cmdキーで英字入力、右Cmdキーで日本語入力に切り替える設定方法です。
Hammerspoonインストール
brewでインストールできます。
$ brew install hammerspoon --cask
入力モード切り替え設定
Hammerspoonの設定ファイルに以下入力します。
luaで記述します。
local simpleCmd = false
local map = hs.keycodes.map
local function kanaSwitchEvent(event)
local c = event:getKeyCode()
local f = event:getFlags()
if event:getType() == hs.eventtap.event.types.keyDown then
if f['cmd'] then
simpleCmd = true
end
elseif event:getType() == hs.eventtap.event.types.flagsChanged then
if not f['cmd'] then
if simpleCmd == false then
if c == map['cmd'] then
hs.keycodes.setMethod('Romaji')
elseif c == map['rightcmd'] then
hs.keycodes.setMethod('Hiragana')
end
end
simpleCmd = false
end
end
end
kanaSwitcher = hs.eventtap.new(
{hs.eventtap.event.types.keyDown, hs.eventtap.event.types.flagsChanged},
kanaSwitchEvent
)
kanaSwitcher:start()
左右Cmdキーの入力を検知後に他のキーを押さずに離すと入力を切り替えます。
Cmd+C(コピー)とかの場合は切り替わりません。
Hammerspoonの設定ファイル再読み込み
「Reload Config」をクリックして設定変更を反映します。
設定完了!
これで左Cmdキーで英字、右Cmdキーで日本語入力に切り替えられるようになります。
Karabiner-elementsでいいじゃん
たしかに、Karabiner-elements でもまったく同じことができます。
Karabiner-elementsはキーボード入力をもとに設定できるのに対して、HammerspoonではMacOSが認識できるイベントを元に設定できます。
http://www.hammerspoon.org/
You can write Lua code that interacts with OS X APIs for applications, windows, mouse pointers, filesystem objects, audio devices, batteries, screens, low-level keyboard/mouse events, clipboards, location services, wifi, and more.
そのため、Hammerspoonの方が拡張性が高いです。
例えば、「Macがパリにいることを検知すると、iTunesが自動的に再生を開始する」みたいな設定でもなんでもできます。
Mac上のキーボードショートカット設定がHammerspoonアプリひとつで完結できるのでオススメです。
参考