「Windowsで英語キーボードを使いたい!」では、Windowsに於いてキー配列をカスタマイズするソフト(というと語弊があるが)「AutoHotkey」について書いた。Mac OS Xで同じようなことをするソフトはこれだ。
KeyRemap4MacBook
http://pqrs.org/macosx/keyremap4macbook/index.html.ja
名前は「MacBook」だけど、他のMacでも使える。一例を挙げると、右Option(⌥)一つで日本語入力をON/OFFできたり(AXキーボード風)、装飾キー + KJHLで上下左右に動けたり(Vi厨歓喜)など、全部で600種類以上の便利なカスタマイズが満載だ。
更に自分独自のキーマップを登録できる。そのやり方も書いておこう。
Xcodeのインストール
まず、Xcodeをインストールしていない場合はそこから。Mac OS XのインストールDVDを入れるか、公式サイトからダウンロードしてインストールしておく。
Xcode – Developer Tools Technology Overview – Apple Developer
http://developer.apple.com/technologies/tools/xcode.html
インストールDVDの場合は「オプションインストール」→「Xcode.mpkg
」をダブルクリックする。
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
- 左Option(⌥)をEndとして使う。ただし、修飾キーとして使う場合はそのまま。
- 左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
- 作ってから気づいたのだが、「Vi Mode」のところに同じような機能があった。でもまあ、微妙に用途が違うからいいか。 ↩
Mac(v10.6 Snow Leopard)/KeyRemap4MacBook
目次 目次 バージョンと製造年月日 キーバインドカスタマイズ インストール 設定 自分のやっているカスタマイズ 「かな…