KeyRemap4MacBookに項目を追加してみた
Shift+Spaceで"="。コード書くのに楽なんです。=>とか>=とか<=とか:=とか。
導入は手順の通り。
--- files/prefpane/checkbox.xml.orig 2008-05-20 21:00:48.000000000 +0900 +++ files/prefpane/checkbox.xml 2009-06-30 13:35:05.000000000 +0900 @@ -680,6 +680,10 @@ <name>Space to Return</name> <sysctl>remap.space2return</sysctl> </item> + <item> + <name>Shift+Space to Equal</name> + <sysctl>remap.shiftSpace2equal</sysctl> + </item> </list> </item> ||< >|| --- src/core/kext/remap.cpp.orig 2008-05-25 23:46:19.000000000 +0900 +++ src/core/kext/remap.cpp 2009-06-30 14:42:08.000000000 +0900 @@ -840,6 +840,19 @@ RemapUtil::keyToKey(params, KeyCode::SPACE, KeyCode::RETURN); } + void + remap_shiftSpace2equal(const RemapParams ¶ms) + { + if (! config.remap_shiftSpace2equal) return; + + if (! RemapUtil::isKey(params, KeyCode::SPACE)) return; + + if (allFlagStatus.isHeldDown_shift()) { + RemapUtil::keyToKey(params, KeyCode::SPACE, KeyCode::EQUAL); + allFlagStatus.temporaryDecrease_shift(); + } + } + // ---------------------------------------- void remap_semicolon2return(const RemapParams ¶ms) @@ -2601,6 +2614,7 @@ remap_space2controlL(params); remap_space2shiftL(params); remap_space2return(params); + remap_shiftSpace2equal(params); remap_semicolon2return(params); remap_swapcolons(params);
IMがONの時は半角スペースの入力に使いたいので、本来の動作のままとしたいのですが、IMの状態を取得する方法がわからない…‥。そう言えば窓使いの憂鬱のDarwin版でもILやICは実装されてませんでしたね…‥。Developer Centerのマニュアルを適当に探しただけでは見つかりませんでしたし、難しいのでしょうか…‥。
追記
JISKanaModeに、最後に英数キーとかなキーのどちらが押されたかが記憶されています。やはりKEXTからCarbonを使うのは難しいのでしょうか。あくまで英数キーとかなキーのどちらが押されたかだけなので、他の手段でIMを切り替えた場合は追従できませんが、とりあえずは凌げます。