Mac において、Caps Lock key を Esc 及び Ctrl として活用する方法をまとめておきます。
Caps Lock 単体を押すと Esc として、他のキーと同時に押すと Ctrl として働くようになります。おかげで主に vim の使い勝手が少し良くなりました。
##方法
- Karabiner と Seil をインストールする
- System Preferences の Keyboard (Macのキーボードの設定) において Caps Lock の設定を No Action にする
- Seil において Caps Lock のキーコードを 53 (Escape) に変更する
- Karabiner の Misc & Unistall における Open private.xml より xml ファイルを編集し、Change Key からリロードして設定を反映する
- Change Key の一覧に追加された、今回新しく作った項目にチェックを付ける
##ポイント
Caps Lock は Karabiner だけではキーバインドをうまくいじることができないため、Seil を利用してまずは Caps Lock の割り当てを Esc に変更しておきます。
キーバインドを変更したら、private.xml にて __KeyOverlaidModifier__ に関する記述を書き込むことで one-shot modifier の機能を Karabiner に加えることができます。
一例として下記のように private.xml を編集すると Caps Lock key の挙動を目的のものとすることができます。
<?xml version="1.0"?>
<root>
<item>
<name>CapsLock to Esc/Ctrl</name>
<identifier>private.CapsLock_to_Esc_Ctrl</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::ESCAPE,
KeyCode::CONTROL_L,
KeyCode::ESCAPE
</autogen>
</item>
</root>
__KeyOverlaidModifier__ の第一引数は置き換えたいキー(今回はEsc)、第二引数が他のキーを押した時に割り当てられるキー(Ctrl)、第三引数が単独で入力した場合に割り当てられるキー(Esc)となっています。
Karabiner の一覧に追加される設定の名称は <name> で指定したものとなります。(今回の場合だと CapsLock to Esc/Ctrl)