(最終版)Karabiner-Elementsで「EISUU to Escape(入力ソースが日本語以外の場合のみ)」を実現する
以前に紹介したKarabinerの設定「EISUU to Escape(入力ソースが日本語以外の場合のみ)」をKarabiner-Elementsを使って実現する方法について、最終版と思える設定を実現できたため紹介します。
以前の記事ではComplex Modificationの変数を使ったゴリ押し設定で実現する方法を紹介しましたが、Karabiner-Elements 11.2.0でinput_source_if
、input_source_if
が追加されたため完全再現ができるようになりました。 *1
設定方法
今回もComplex Modificationの設定で実現をします。
.config/karabiner/assets/complex_modifications/EisuuToEscapeInTerminal.json
に以下のようなjsonファイルを配置します。
frontmost_application_if
のconditionは特定のアプリケーションを利用しているときだけに発動させたいときに設定します。自分の環境に合わせて適宜変更してください。
{ "title": "Terminal等で入力ソースが日本語以外の場合に英数をEscapeに変更する", "rules": [ { "description": "Terminal等で入力ソースが日本語以外の場合に英数をEscapeに変更する", "manipulators": [ { "type": "basic", "from": { "key_code": "japanese_eisuu", "modifiers": { "optional": [ "any" ] } }, "to": [ { "key_code": "escape"} ], "conditions": [ { "type": "input_source_unless", "input_sources": [ { "language": "^ja$" } ] }, { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^org\\.vim\\.", "^com\\.googlecode\\.iterm2$", "^com\\.microsoft\\.VSCode$" ] } ] } ] } ] }
次に、Karabiner-ElementsのPreferenceから「Complex Modifications」→「Add rule」→「Terminal等で入力ソースが日本語以外の場合に英数をEscapeに変更する」を有効にします。
以上で設定は完了です。
まとめ
非常にシンプルな設定ファイルになって満足しています。
自分以外にJSキーボード+英数をEscにする派は見たことがないですが、お役に立つ方がいたら嬉しいです。
*1:実は以前の記事を公開した時点でKarabiner-Elements 11.2.0がリリースされていたのですが、気づいていませんでした、、