アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

KeyRemap4MacBookで自分好みにキーをリマッピング

こんにちは、熊谷です。

Macを使っている上でキーマップをカスタマイズするために欠かせないソフトといえば、KeyRemap4MacBookです。これがないと私はMacを思い通りに使えないと言っても過言ではありません。そんなKeyRemap4MacBook、500種類以上の様々なキーのリマッピングが出来ると言うことで、そのままの状態でもほぼ思い通りにキーをカスタマイズすることが出来ます。

しかし、こんなに種類があっても個人的にこれがこう出来ると良いのにとちょっとおもったりもします。ということで、カスタマイズです!

そんなことで、私が行いたいのはYen(\)のリマップです。それだけならこのKeyRemap4MacBookで対応しているんですが、このリマップをX11上では無効にしたいという、「X11上では無効になるYen(\)のリマップ」を追加します。ちなみにMacではYenマークとバックスラッシュは別物になっているので、このリマップがないといろいろ不便です。でも、X11ではXmodmapで


keycode 101 = backslash bar yen bar

としているの、KeyRemap4MacBookのリマップは無効にしたい。ということで先の「X11上では無効になるYen(\)のリマップ」が欲しくなってくると言うことになります。

で、それを実現するのに必要なものはKeyRemap4MacBookソースコードXcodeです。

http://pqrs.org/macosx/keyremap4macbook/source.html.ja

KeyRemap4MacBookに自分好みの設定を追加するにはfiles/prefpane/checkbox.xmlに設定を加えコンパイルし直してインストールし直せばOKです。



<item>
 <name>Remap Yen(\) Key not X11</name>
  <list>
   <item>
    <name>JIS Yen(\) to Backslash(\) not X11</name>
    <sysctl>remap.jis_yen2backslash_notX11</sysctl>
    <not>VIRTUALMACHINE, X11</not>     
    <autogen>--KeyToKey-- KeyCode::JIS_YEN, KeyCode::VK_JIS_BACKSLASH</autogen>
   </item>
 </list>
</item>


こんな感じで設定を追加します。<sysctl>にはユニークな名を<not>にはこのリマップを適用しないアプリケーションを記述します(このアプリケーション名については、src/core/bridge/bridge.hppに記述されています。ここに記載されていないものでも、src/core/server/server.cppの該当部分と併せて追記すれば自由に出来るのではないかなぁと)。

そんなことで、checkbox.xmlに記述したらあとはコンパイル


% make clean all

するとパッケージができあがるので、あとは普段通りそのパッケージをインストールすると完了です。

KeyRemap4MacBookの設定画面に追加した項目が表示されていると思います。

簡単に自分好みのキーマップを追加できるKeyRemap4MacBook、是非使ってみてはいかがでしょうか。