Karabiner-Elements でキーボードのカスタマイズ

先日から導入しているファイルマネージャ ForkLift の操作性向上のため、 macOS のキーボードを徹底的にカスタマイズできる Karabiner-Elements を導入した。

やりたいこと

  • ForkLift のカーソル移動に Emacs キーバインドを使う
  • ファイル操作を xyzzy のファイラとほぼ同じにしたい
    • ただし修飾キーとして shift の代わりに control を使用する
    • C-m が Emacs キーバインドの return にあたるので C-m だけ除外する

実現方法

  1. Complex modifications → Rules → Add Rules を選ぶ
  2. Import more rules from Internet を選ぶ
  3. Emacs で検索し、「Emacs key bindings (rev 12) by @tekezo」を追加
  4. Emacs key bindings [control+keys] (rev 10)」「Emacs key bindings [option+keys] (rev 5)」を有効にする
  5. ~/.config/karabiner/karabiner.json を開き、C-m のキーバインドの部分を次のように変更する
{
  "conditions": [
      {
          "bundle_identifiers": [
              "^com\\.binarynights\\.ForkLift-3$"
          ],
          "type": "frontmost_application_unless"
      }
  ],
  "from": {
      "key_code": "m",
      "modifiers": {
          "mandatory": [
              "control"
          ],
          "optional": [
              "caps_lock",
              "shift",
              "option"
          ]
      }
  },
  "to": [
      {
          "key_code": "return_or_enter"
      }
  ],
  "type": "basic"
},