🕌

[mac効率化]magic keyboardだけ特定のキーバインディングが動かない[karabiner]

2023/11/20に公開

やりたかったこと

HHKBを長いこと使っていたが、環境の変化によりmac単体で持ち歩くことが多くなった。
そのため、HHKBを卒業し、macの内臓キーボードで最適なキーバインディングを実現しようとしていた。

基本的になところはHHKB通りなので省略するが、今回自分で独自に設定しようとした箇所が一つだけあった。
それは矢印キーを標準ポジションから打てるようにすることだった。

具体的には右shift + jkmiで矢印キーになるようにしたかった。
そのために右shiftをfnに変更し、fn+jkmi = ←→↓↑ とする設定を追加した。

詰まったところ

基本的にcaps lockやcommand, controlの設定はkarabiner-elementsや標準の設定でなんとかなった。
しかし、矢印キーをfn+jkmiに割り当てたところ、shiftを押しながら矢印を入力したい時に上側だけが動かなかった。

内臓キーボードでは動くが、magic keyboardだけ動かない。
なんだこれは。。。となり調べると以下のような記事
https://discussionsjapan.apple.com/thread/252383730

つまり特定のキー三つ以上のコンビネーションはmagic keyboardで動かないとのこと。。。

素直にvim likeのバインディングなら動いた。
自分が慣れることで調整することにしよう。

多分あるとは思うが矢印をvim-likeのバインディングにするcomplex-modificationsのコードを置いておく。

{
  "title": "vim-like arrow modifications",
  "rules": [
  {
    "description": "vim-like arrow modification",
    "manipulators": [
      {
        "type": "basic",
        "from": {
          "key_code": "h",
          "modifiers": {
            "mandatory": [
              "fn"
            ],
            "optional": [
              "any"
            ]
          }
        },
        "to": [
          {
            "key_code": "left_arrow"
          }
        ]
      },
      {
        "type": "basic",
        "from": {
          "key_code": "l",
          "modifiers": {
            "mandatory": [
              "fn"
            ],
            "optional": [
              "any"
            ]
          }
        },
        "to": [
          {
            "key_code": "right_arrow"
          }
        ]
      },
      {
        "type": "basic",
        "from": {
          "key_code": "k",
          "modifiers": {
            "mandatory": [
              "fn"
            ],
            "optional": [
              "any"
            ]
          }
        },
        "to": [
          {
            "key_code": "up_arrow"
          }
        ]
      },
      {
        "type": "basic",
        "from": {
          "key_code": "j",
          "modifiers": {
            "mandatory": [
              "fn"
            ],
            "optional": [
              "any"
            ]
          }
        },
        "to": [
          {
            "key_code": "down_arrow"
          }
        ]
      }
      ]
    }
  ]
}

以上。

Discussion