高機能で安定性も極めて高いOS X用のキーボードカスタマイズツール

Keyremap4macbookでは、CapsLockは変更できない(Change KeyタブのChange CapsLock Keyを見るとPCKeyBoardHackを使えと書いてある)ので、CapsLockを変更した場合はシステムの環境設定の「キーボード」-「修飾キー」でCapsLockキーをControlに変更した(USキーボード)。

Chage Keyに最初から色々設定があるけど、やりたいことができない場合はprivate.xmlに書いて設定することができる。

例えばこんな感じ

[xml]




EMACS_MODE_IGNORE_APPS

ECLIPSE,
EMACS,
REMOTEDESKTOPCONNECTION,
TERMINAL,
VI,
VIRTUALMACHINE,
X11,
FIREFOX,
GOOGLE_CHROME



My Setting

Enter to Option_R
(+ When you type Enter only, send Enter)
remap.enter2optionL_enter
__KeyOverlaidModifier__ KeyCode::RETURN,
KeyCode::OPTION_L,
KeyCode::RETURN



Control_L to Control_L
(+ When you type Control_L only, send EISUU+Escape)
remap.cntrolL2controlL_eisuuAndEscape
TERMINAL
JAPANESE
__KeyOverlaidModifier__ KeyCode::CONTROL_L,
KeyCode::CONTROL_L,
KeyCode::JIS_EISUU, KeyCode::ESCAPE



Control_L to Control_L
(+ When you type Control_L only, send Escape)
remap.cntrolL2controlL_Escape
__KeyOverlaidModifier__ KeyCode::CONTROL_L,
KeyCode::CONTROL_L,
KeyCode::ESCAPE




[/xml]

こいつを設定の追加の方法にしたがって、読み込んで、出てきた設定をチェックすればおk。

このprivate.xmlの説明をすると、最初の<replacementdef>の部分はemacs modeを使わないアプリケーションを指定している。emacs modeの設定は/Applications/KeyRemap4MacBook.app/Contents/Resources/include/checkbox/emacs_mode.xmlに書いてあり、その中に<not>{{EMACS_MODE_IGNORE_APPS}}</not>という項目がある。このEMACS_MODE_IGNORE_APPSの値は/Applications/KeyRemap4MacBook.app/Contents/Resources/replacementdef.xmlで定義されているが、そこの定義ではFirefoxとChromeを無視しないので、自分でprivate.xmlに書くことで上書きしている。

ちなみに、FIREFOXやGOOGLE_CHROMEの定義は/Applications/KeyRemap4MacBook.app/Contents/Resources/appdef.xmlに書いてある。そこで定義されているアプリケーション以外の定義をしたいときはKeyremap4macbookに付属しているEventViewerのAppタブでApplication Budle Identifierを確認して、その値を

[xml]

GOOGLE_CHROME
com.google.Chrome
com.google.Chrome.canary

[/xml]

のように<equal>に定義してやれば良い。

その下の<item>の部分では一旦<name>My Setting</name>でグループ名を定義して、その下で個別にキーマッピングの設定をしている。

<name>Control_L to Control_L</name>の説明をすると、これは左のCtrlを単独で打った時はIMEをOFFにして、更にEscを送り、組み合わせで打った時は普通のCtrlキーとして働く設定。

<name>が設定に出てくる名前で<appendix>がその下に出てくる説明文。

<identifier>は識別子で他とかぶってはいけない。

<only>で、この設定が有効なのはterminal(item2も)使用時のみにしている。<not>を使うと、使用時以外になる。

<inputsource_only>で日本語入力時のみに限定している。

<autogen>でキーマッピングの設定を設定している。

private.xml Reference Manualに詳しい設定の仕方が書いてある。

/Applications/KeyRemap4MacBook.app/以下を検索して、デフォルトの設定を参考にしてみるのもよい。

Launch app / Open URL / Execute shell commandsに書いてあるようにアプリケーションを起動させたり、シェルを実行したりするマッピングもできて便利そう。