macOS High Sierra + Karabiner-Element + Google 日本語入力で、全角/半角キーでIME ON/OFFトグル切り替え

先日のエントリに、MacBook Pro に繋いだ外付けJISキーボードで、全角/半角キーによるIME ON/OFFのトグル切り替えができなくなってしまった問題を書いたが、ひとまず解決したのでその方法を残しておく。
なお、この問題はOSもしくはソフトウェアのバージョンアップによって発生しなくなっているか、あるいは別の問題が発生する場合もあるので、試す場合は自己責任で。

バージョンは以下の通り。
macOS10.13.6(High Sierra)
Karabiner-Elements12.2.0
Google 日本語入力2.24.3250.1

とりあえずググって見つけたこの方法を試した。
なお、リンク先は macOS 標準のことえりだが、自分は Google 日本語入力を使用している。
そこで、テキストエディタに実際のコードをコピペし、2箇所ある input_source_id を

"input_source_id":"^com\\.apple\\.inputmethod\\.Kotoeri\\.Japanese$"
"input_source_id":"^com\\.google\\.inputmethod\\.Japanese\\.base$"

"input_source_id":"^com\\.apple\\.inputmethod\\.Kotoeri\\.Roman$"
"input_source_id":"^com\\.google\\.inputmethod\\.Japanese\\.Roman$"

と書き換えた。
ところが書き換えたのはいいものの、これをどこにどーすればいいのかで小一時間悩んだ。
てっきり Karabiner-Elements 上にコードを記入できる機能があるのかと思っていたが、そうではないらしい。

で、結局のところ、Karabiner-Elements をインストールすると ~/.config/karabiner/karabiner.json というファイルが作られているので、この中の rules 配列に追加して保存すると、反映されるらしい。

ということで早速試してみると、全角/半角キーを押すことで、メニューバー上の Google 日本語入力のアイコンが A から あ へと切り替わった。
…が、なぜかひらがな入力にならず、半角英数のまま。
逆に、マウスで全角ひらがなに切り替えたあと、全角/半角キーを押すと、アイコンは A に戻るものの、なぜか全角ひらがなのまま。
ここでまた小一時間悩む。

結局、Karabiner が直接 IME を切り替えるのではなく、英数キーもしくはかなキーを押したことにすればよい、ということに気づき、to 内の select_input_source 自体を削除し、key_code に "japanese_kana" もしくは "japanese_eisuu" を設定することで、ひとまずうまくいった。

以下、karabiner.json の rules 配列に追加した設定。

この記事へのコメント