KeyRemap4MacBookでcaps lock+hjklをカーソル移動に設定する方法


タイトルの通りcaps lockとhjklで上下左右に移動させます。
Control+hjklで移動 のcaps lock版です。

準備

"KeyRemap4MacBookで〜"とタイトルに書きましたが実はこれ単体では
caps lockのキーリマップは書けないのでPCKeyboardHackも使用します。

PCKeyboardHackの設定

下記のように Change Caps lock にチェックを入れ keycode110 にします。
110(=PC Application Key)にしてる理由は最も無害で無難そうなので。。。

KeyRemap4MacBookの設定

private.xml下記のように設定します。

private.xml
<item>
    <name>PC_APPLICATION(EXTRA1)+hjklで上下左右移動(どこでもvim)等</name>
    <name>CapsLockを使う場合はPCKeyboardHackでCapsLock->110(PC_APPLICATION)の設定をする</name>
    <appendix>(PC_APPLICATION+H to CURSOR_LEFT)</appendix>
    <appendix>(PC_APPLICATION+J to CURSOR_DOWN)</appendix>
    <appendix>(PC_APPLICATION+K to CURSOR_UP)</appendix>
    <appendix>(PC_APPLICATION+L to CURSOR_RIGHT)</appendix>
    <identifier>private.99</identifier>
    <autogen>__KeyToKey__ KeyCode::PC_APPLICATION, KeyCode::VK_MODIFIER_EXTRA1</autogen>
    <autogen>__KeyToKey__ KeyCode::H, ModifierFlag::EXTRA1, KeyCode::CURSOR_LEFT</autogen>
    <autogen>__KeyToKey__ KeyCode::J, ModifierFlag::EXTRA1, KeyCode::CURSOR_DOWN</autogen>
    <autogen>__KeyToKey__ KeyCode::K, ModifierFlag::EXTRA1, KeyCode::CURSOR_UP</autogen>
    <autogen>__KeyToKey__ KeyCode::L, ModifierFlag::EXTRA1, KeyCode::CURSOR_RIGHT</autogen>
</item>

ポイントはPC_APPLICATIONのままでは修飾キーっぽい振る舞い
(ex 先にcaps lockを押してからhを押し、その後caps lockを離す)が
できないので一旦下記のように架空の修飾キーに割り当ててます。

<autogen>__KeyToKey__ KeyCode::PC_APPLICATION, KeyCode::VK_MODIFIER_EXTRA1</autogen>

その後で割り当てた架空の修飾キーとhjklそれぞれを押した時の挙動を記述してます。

<autogen>__KeyToKey__ KeyCode::H, ModifierFlag::EXTRA1, KeyCode::CURSOR_LEFT</autogen>

まとめ

これでめでたくcaps lockとhjklで上下左右に移動ができます!
他にもcaps lock+dとかでシェル呼んで日付入れるとかいろいろできますよ!
caps lock超便利!
// JIS配列のcaps lockで同じような挙動をさせられるかは不明です。
->JIS配列でも大丈夫そうです。