たこぼんげブログ

大学院博士課程から脱落してWEB業界に就職しました。

KeyRemap4でprivate.xmlをいじってキーボードを使いやすくする

KeyRemap4MacBook - OS X用のソフトウェアを使ってキー配置を自分好みに変えました。KeyRemap4は自分の好きなようにキーボードのキー配置をいじれるアプリです。 ここにこのキーがあればな〜なんてみんな思うはず!そんな時にこのアプリが最強です。

これはもうかなり昔で記憶も曖昧なんですけど、かつて大学の研究室に居た頃、macのキーボードを生協に発注したらなぜかUSキーボードが届いた。 いやいやアカンやろって思ったんですけど、使ってみると非常に使いやすかった。 特にシングルクォートとかの記号周り。JISキーボードってよく使う記号がSHIFT+数字になってるのでコーディングではしんどいですよね。

家のMacはJISキーボードなので、ちょっとキーを入れ替えることにしました。

@ → SHIFT+2(') SHIFT+@() → SHIFT+7(") SHIFT+2(') → @ SHIFT+7(") → SHIFT+@()

って感じです。 デフォルトでもかなり思い通りにキー配置できるんですけど、今回は自分で設定ファイルを書かないとダメなようです。 これをやるにはxmlファイルで設定する必要があります。 xmlファイルは、preferences>Misc&Uninstall>open private.xmlでFinderが開きますので、お好みのエディタで開きましょう。 上記の4つの設定をやるにはxmlファイルに以下を貼り付けます。

<?xml version="1.0"?>
<root>
    <item>
        <name>@キーに(')と(")を割り付け、shift+2を@、shuft+7を(`)にする</name>
        <identifier>private, remap.@_swap_'</identifier>
        <autogen>
            --KeyToKey--
            KeyCode::BRACKET_LEFT, VK_SHIFT,
            KeyCode::KEY_2, VK_SHIFT
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::BRACKET_LEFT,
            KeyCode::KEY_7, VK_SHIFT
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::KEY_2, VK_SHIFT,
            KeyCode::BRACKET_LEFT
        </autogen>
        <autogen>
            --KeyToKey--
            KeyCode::KEY_7, VK_SHIFT,
            KeyCode::BRACKET_LEFT, VK_SHIFT
        </autogen>
    </item>
</root>

これをセーブして、Preferences>Change Key>ReloadXMLを押すと、一覧の1番上に項目が出現します。あとはチェックを入れるだけです。

さて、ここまで読んだら他にも設定したくなりましたよね。他の項目を付け足すにはxmlのrootタグの中にitemタグを増やしていきます。詳細はこちら

ここで、困るのが、KeyCodeです。

        <autogen>
            --KeyToKey--
            KeyCode::BRACKET_LEFT, VK_SHIFT,
            KeyCode::KEY_2, VK_SHIFT
        </autogen>

なんて書きましたが、KeyCodeが分からないことには書きようがありません。まずは以下が参考になります。

*仮想キーコード表

その他のキーについては、KeyRemap4でLaunch EventViewerというのがあり、これを立ち上げてキーを押すとKeyCodeを教えてくれます。

あと、上ではxmlに複数のを書きました。 これは順番が重要なようですが、どういう順番がいいのか分かりません。 今回は1番目が元SHIFT+@の変換になってますが、例えば1番目を元@の変換にすると、SHIFT+元@も変換されていました。 同じキーのSHIFT同時押しも変換するなら、SHIFT側から変換するのが良さそうです。 違ったら教えて下さい。