【Mac】キー配列をカスタマイズする


Windowsで英語キーボードを使いたい!」では、Windowsに於いてキー配列をカスタマイズするソフト(というと語弊があるが)「AutoHotkey」について書いた。Mac OS Xで同じようなことをするソフトはこれだ。

KeyRemap4MacBook
http://pqrs.org/macosx/keyremap4macbook/index.html.ja

名前は「MacBook」だけど、他のMacでも使える。一例を挙げると、右Option(⌥)一つで日本語入力をON/OFFできたり(AXキーボード風)、装飾キー + KJHLで上下左右に動けたり(Vi厨歓喜)など、全部で600種類以上の便利なカスタマイズが満載だ。

100403-0002.png

更に自分独自のキーマップを登録できる。そのやり方も書いておこう。

Xcodeのインストール

まず、Xcodeをインストールしていない場合はそこから。Mac OS XのインストールDVDを入れるか、公式サイトからダウンロードしてインストールしておく。

Xcode – Developer Tools Technology Overview – Apple Developer
http://developer.apple.com/technologies/tools/xcode.html

インストールDVDの場合は「オプションインストール」→「Xcode.mpkg」をダブルクリックする。

100403-0004.png

KeyRemap4MacBookのリコンパイル

ソースをダウンロードして解凍する。

$ wget http://pqrs.org/macosx/keyremap4macbook/files/KeyRemap4MacBook-6.5.0.zip
$ unzip KeyRemap4MacBook-6.5.0.zip
$ cd KeyRemap4MacBook-6.5.0

設定画面情報が記載されたXMLファイルを編集する。今回は2つの機能を付け足した。

$ vim files/prefpane/checkbox.xml
  1. 左Option(⌥)Endとして使う。ただし、修飾キーとして使う場合はそのまま。
  2. 左Option(⌥) + KJHLでカーソルキーの上/下/左/右と見なす1
*** checkbox.xml.orig   2010-04-02 22:49:51.000000000 +0900
--- checkbox.xml        2010-04-02 23:38:28.000000000 +0900
***************
*** 1587,1592 ****
--- 1587,1598 ----
            <autogen>--KeyOverlaidModifier-- KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::SPACE, ModifierFlag::COMMAND_L</autogen>
          </item>
          <item>
+           <name>Option_L to Option_L</name>
+           <appendix>(+ When you type Option_L only, send End)</appendix>
+           <sysctl>remap.optionL2optionL_End</sysctl>
+           <autogen>--KeyOverlaidModifier-- KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::END</autogen>
+         </item>
+         <item>
            <name>Option_L to Option_R</name>
            <sysctl>remap.optionL2optionR</sysctl>
            <autogen>--KeyToKey-- KeyCode::OPTION_L, KeyCode::OPTION_R</autogen>
***************
*** 2209,2214 ****
--- 2215,2228 ----
            <autogen>--KeyToKey-- KeyCode::J, ModifierFlag::OPTION_L, KeyCode::CURSOR_LEFT</autogen>
            <autogen>--KeyToKey-- KeyCode::L, ModifierFlag::OPTION_L, KeyCode::CURSOR_RIGHT</autogen>
          </item>
+         <item>
+           <name>Option_L+KJHL to Up/Down/Left/Right</name>
+           <sysctl>option.extra_cursor_optionL_kjhl</sysctl>
+           <autogen>--KeyToKey-- KeyCode::K, ModifierFlag::OPTION_L, KeyCode::CURSOR_UP</autogen>
+           <autogen>--KeyToKey-- KeyCode::J, ModifierFlag::OPTION_L, KeyCode::CURSOR_DOWN</autogen>
+           <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::OPTION_L, KeyCode::CURSOR_LEFT</autogen>
+           <autogen>--KeyToKey-- KeyCode::L, ModifierFlag::OPTION_L, KeyCode::CURSOR_RIGHT</autogen>
+         </item>
        </list>
      </item>

カーネル拡張(kext)のリビルド

$ cd src/core/kext
$ make

カーネル拡張(kext)のリロード

$ make reload

試してみると、ここで失敗することがあった。ここでは「unload.sh」「load.sh」という2つのスクリプトを呼んでいるだけなので個別に実行した。

$ ./scripts/unload.sh
# ここでエラー
$ ./scripts/load.sh
# 問題なく成功した

設定画面情報ファイルのインストール

$ cd ../../../files/prefpane
$ make install

パッケージの作成

以上で作業は終了なのだが、再起動すると編集前に戻ってしまう。パッケージを作ってインストールし直しておこう。

$ cd ../..
$ make
$ open KeyRemap4MacBook.pkg

  1. 作ってから気づいたのだが、「Vi Mode」のところに同じような機能があった。でもまあ、微妙に用途が違うからいいか。 

One thought on “【Mac】キー配列をカスタマイズする

コメントを残す