PCロール

PCロール

【Karabiner Elements】macのおすすめキーマップを紹介

【Karabiner Elements】macのおすすめキーマップを紹介

この記事は、Gajeroll Advent Calendar 2022 の 9 日目の記事です。

コーディングの生産性向上に欠かせないキーマップ変更。

Karabiner Elementsを使った、反則級のキー配列を教えましょう。

Karabiner Elementsをインストール

公式サイトから最新版をインストールします。

Karabiner-Elements

キー入力を監視するための権限の付与も必要になります。

指示にしたがって操作すれば問題ないでしょう。

基本的な使い方

Simple Modifications → For all devices の中で、Add itemをクリックします。

左側にこれまでのキーを、右側に変更後のキーを設定します。

基本的には For all devices で問題ありません。

しかし融通がきかないキーボードがあれば、個別のキーボードを選択して設定しましょう。

これにより、特定のキーボードにキーマップ変更を上書きすることができます。

さらに Complex Modifications やJSONファイルの編集により、もっと細かい設定もできます。

おすすめの設定

BackSpace⌫ を左小指に配置

caps_lock → delete_or_backspace

CapsLockを使わないユーザー向けです。

その場合、CapsLockにBackSpaceを割り当てましょう。

これでタイプミスをしてもすぐに修正できるので、タイピングの効率が爆上がりします。

これまでのキー配列にはもう戻れません。

コーディングでTabキーをよく使う場合は、CapsLockをTabに、TabをBackSpaceに変えるのがおすすめです。

変更の仕方は次のようになります。

caps_lock → tab
tab → delete_or_backspace

これによって小指の少ない移動でTabキーが押せるようになります。

macに Delete⌦ を降臨させる

delete_or_backspace → delete_forward

先程の設定で本来のバックスペースが手持ち無沙汰になったので、そこをDeleteキーに変えてしまいましょう。

するとmacにDeleteキーが登場します。

Tabキーと同時押しで矢印・数字を入力

JSONファイルを編集することでより高度な設定ができます。

以下のコードを ~/.config/karabiner/assets/complex_modifications の直下に置きます。

Complex Modifications → Add rule → Arrows and Numbers → Enable で有効化できます。

Tab + 左手ホームポジション(EDSF)で上下左右の矢印キーになります。

そして Tab + 右手ホームポジション(7890UIOPJKL;NM./)でテンキーになります。

JSONコード

{
    "title": "Arrows and Numbers",
    "rules": [
        {
            "description": "Arrows and Numbers",
            "manipulators": [
                {
                    "from": {
                        "key_code": "tab"
                    },
                    "to": [
                        {
                            "set_variable": {
                                "name": "numbers_mode",
                                "value": 1
                            }
                        }
                    ],
                    "to_after_key_up": [
                        {
                            "set_variable": {
                                "name": "numbers_mode",
                                "value": 0
                            }
                        }
                    ],
                    "to_if_alone": [
                        {
                            "key_code": "tab"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "7"
                    },
                    "to": [
                        {
                            "key_code": "delete_or_backspace"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "8"
                    },
                    "to": [
                        {
                            "key_code": "keypad_equal_sign"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "9"
                    },
                    "to": [
                        {
                            "key_code": "keypad_slash"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "0"
                    },
                    "to": [
                        {
                            "key_code": "keypad_asterisk"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "u"
                    },
                    "to": [
                        {
                            "key_code": "keypad_7"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "i"
                    },
                    "to": [
                        {
                            "key_code": "keypad_8"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "o"
                    },
                    "to": [
                        {
                            "key_code": "keypad_9"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "p"
                    },
                    "to": [
                        {
                            "key_code": "keypad_hyphen"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "j"
                    },
                    "to": [
                        {
                            "key_code": "keypad_4"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "k"
                    },
                    "to": [
                        {
                            "key_code": "keypad_5"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "l"
                    },
                    "to": [
                        {
                            "key_code": "keypad_6"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "semicolon"
                    },
                    "to": [
                        {
                            "key_code": "keypad_plus"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "m"
                    },
                    "to": [
                        {
                            "key_code": "keypad_1"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "comma"
                    },
                    "to": [
                        {
                            "key_code": "keypad_2"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "period"
                    },
                    "to": [
                        {
                            "key_code": "keypad_3"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "slash"
                    },
                    "to": [
                        {
                            "key_code": "keypad_enter"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "n"
                    },
                    "to": [
                        {
                            "key_code": "keypad_0"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "e"
                    },
                    "to": [
                        {
                            "key_code": "up_arrow"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "d"
                    },
                    "to": [
                        {
                            "key_code": "down_arrow"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "s"
                    },
                    "to": [
                        {
                            "key_code": "left_arrow"
                        }
                    ],
                    "type": "basic"
                },
                {
                    "conditions": [
                        {
                            "name": "numbers_mode",
                            "type": "variable_if",
                            "value": 1
                        }
                    ],
                    "from": {
                        "key_code": "f"
                    },
                    "to": [
                        {
                            "key_code": "right_arrow"
                        }
                    ],
                    "type": "basic"
                }
            ]
        }
    ]
}

有効化するのを忘れないようにしましょう。

Windowsユーザーへ

left_control → left_command
left_command → left_control

Windowsマシンに慣れている方は、Commandキーのカスタマイズもおすすめです。

これだけで一気にmacが使いやすくなります。

日本語配列ユーザーへ

Windowsの日本語配列では、 Shift + _\ を入力することができます。

これをmacの日本語配列で再現するためのコードがこちらです。

こちらも ~/.config/karabiner/assets/complex_modifications の直下に置きます。

Complex Modifications → Add rule → Underscore to Backslash → Enable で有効化できます。

{
    "title": "Underscore to Backslash",
    "rules": [
        {
            "description": "Underscore to Backslash",
            "manipulators": [
                {
                    "from": {
                        "key_code": "international1"
                    },
                    "to": [
                        {
                            "key_code": "international3",
                            "modifiers": [
                                "option"
                            ]
                        }
                    ],
                    "type": "basic"
                }
            ]
        }
    ]
}

こちらも有効化するのを忘れないようにしましょう。

US配列ユーザーへ

ちなみにUS配列を使っているのであれば、⌘英かなは必須です。

これで左右のコマンドキーが「コマンド」兼「英数orかな」に究極進化します。

⌘英かな

参考

Karabiner-Elementの設定例について - Qiita

Karabiner-Elements complex_modifications rules

最後に

最後までご覧いただきありがとうございます。

PCロールでは、テクノロジーに関する情報をまとめて発信しています。

また、おすすめのガジェットについて幅広く紹介していく、ガジェロールもあります。

ガジェットやソフトを使うエンジニア・クリエイターはぜひご覧ください。

ガジェロール | ガジェットの巻物

PCロール | PCの巻物