MacBook Air のJIS配列のキーボードにUS配列キーボードを繋がて使うときの悩み

id:kizashi1122 です。

最近 AI の話ばかりですが、あえて AI の話は外して書きます。 この記事も AI は使っていません。

ここ10年以上、仕事もプライベートも US配列キーボードを使っていました。そしてさらに外付けで HHKBなどのUS配列キーボードを接続して使っていました。 情シスの方針で新しく購入する Mac が JIS配列キーボードになり、私は古い US 配列キーボードの MacBookPro にしがみついていました。

そういつまでも悪あがきできず、JIS配列の新しい MacBookAir に移行することになりました。

Homebrew は Brewfile で一気に必要なソフトウェアがインストールできて、わりとすぐに移行は完了しました。

問題はキーボードです。

家では HHKB、会社では Keychron の US配列キーボードを使っています。
OS は Tahoe ですが外付けキーボードがうまく認識されません。通常は左Shiftキーの右隣のキー(と右Shiftキーの左隣のキー)を押すちゃんと US 配列であると認識してくれるのですが。

おかしいと思いながらも手動でANSI配列(US配列)を設定しました。

ここでおかしいことが起こります。なんと外付けキーボードに対して設定したつもりが本体のJIS配列キーボードまでUS配列扱いになってしまったのです。

まあおかしいことではあるのですが、それはそれでアリなのでそのまま使っています。

しかしこの場合困ることがあります。 JIS 配列のバックスペースキーの左のキー(円マークやパイプが刻印してあるキー)がうんともすんとも言わなくなるのです。

そこで、 Karabinar Elements の出番です。

international3grave_accent_and_tilde に割り当てると、そのまま押すとバッククォート、Shift を押しながらだとチルダになってくれます。

バックスラッシュとパイプはどこにいった? となりますが、これは Karabinar Elements を使わずともリターンキーの左隣の下側(手前側)に割り当てられています。

あとちょうどこのタイミングで仮想ターミナルを iTerm から Ghostty にしました。 Emacs使いの私としては、iTerm のこの機能がとてもうれしかったのです。

Emacs では M-x というキーバインドを多用します。M はメタキーを使います。デフォルトでは Option キーなわけですが、これが押しにくい。親指がおかしくなってしまいます。 そこで上記の設定のように Left Command キーを Option キーに割り当てることで快適になるのです。

しかし Ghostty ではその設定がない・・・・(今後できるかもしれないけど)

そうなるとまた Karabinar Elements の出番です。

Complex Modification という設定で以下のように定義しました。

{
    "description": "Left CMD to left Option in Ghostty",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com\\.mitchellh\\.ghostty$"
                    ],
                    "type": "frontmost_application_if"
                }
            ],
            "description": "Map left Cmd to left Option in Ghostty",
            "from": {
                "key_code": "left_command",
                "modifiers": { "optional": ["any"] }
            },
            "to": [{ "key_code": "left_option" }],
            "type": "basic"
        }
    ]
}

これでなんとか仕事できそうです。