aoiro’s blog

勉強を兼ねて記事を書きます

karabiner-elementsでcaps lockをescape, control, 矢印キーに変換する

背景

USキーボードのMacBook ProのTouch Barモデルを使っているのですが、escキーが無いので、caps_lock単体を押したときはesc、他のキーと組み合わせたときはcontrolになるようにしていました

これでそこそこ満足していたのですが、それに加えてcaps_lock + hjklキーでカーソル移動がしたくなったので設定を作りました

Karabiner-elementsの設定

以下の設定を~/.config/karabiner/karabiner.jsoncomplex_modificationsに記述します

caps_lockを単体で押したときはescキー。 hjklと組み合わせた場合は矢印キーに、その他のキーと押したときはcontrolになります

karabiner_complex_modification.json · GitHub

とりあえずcaps lockが押されたらcaps_lock pressedの変数を1にして、それ見て条件分岐するようにしました。 もっといい方法があれば教えてください

矢印キーへの変換がいらない人向け

caps lockを単体で押したときはescキーとして使い、他のキーと押したときはcontrolにしたいだけの場合は下のようにすれば十分です

{
    "description": "caps lockを単体で押したときに、escキーを送信する。 他のキーと押したときはcontrolにする。",
    "manipulators": [
        {
            "from": {
                "key_code": "caps_lock",
                "modifiers": {
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "left_control",
                    "lazy": true
                }
            ],
            "to_if_alone": [
                {
                    "key_code": "escape"
                }
            ],
            "type": "basic"
        }
    ]
}

参考

qiita.com

karabiner-elements-complex_modifications