Mac OSX10.9.3にお茶こぼしてCtrlが押しっぱなしになった時

ググると結構出てくるのだけど、わたくしも例に漏れずMBAにお茶をぶちまけてしまいました。
急いでひっくり返して水分を追い出したのですが……うまくいかず。あちこちのキーが死んでしまいました。

たまたまリモコンのBlueToothキーボードを持っていたのでなんとかなると思ってたのだけど、困ったのが、本体側のCtrlキーが時々押しっぱなしになってしまうこと。たまにキーアップ+キーダウンのイベントが発生するのでその度にコントロール押しっぱなしの状態になってBlueToothのCtrlキーの方を連打してもキャンセルできないというかなり嫌な事態に。

ググると、

sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext

ってやれば治るよ!ってのが出てくるけど10.9.3では何度やってもエラーがかえってくるだけで効果がない。

そこで私が取った対処法。まずMac用キーリマップソフトのKarabiner(昔keyremap4macbookと呼ばれてたやつ)を入れます。んでDisable Control_Lを選択。これで左コントロールが使えなくなります。

次にアクセシビリティのキーボードから修飾キーを選び、CAPSLOCKを「何もしない」に設定。CAPSを殺します。CAPSLOCKが使えなくなるけど、いらないでしょ、こんなキー。ちなみにこれはCAPSLOCKをCtrlに割り当てるための準備となります。

あとはseilというKarabinerのオマケソフトを起動して、CAPSLOCKを「右」Ctrlに割り振る。左コントロールに割り振ってもうまくいきそうな気がするけど、前述のDisable Control_Lの方が勝ってしまって動作しません。SeilでCapsLock->62(右Ctrl)と指定します。

MBAにはそもそも右Ctrlがないのでこれで心配ない……はず。

少なくとも文章がほとんど打てなくなってたけど、このエントリを書く間一度もCtrlロックが起こらなかった+CAPS->Ctrlは効いているのでしばらくなんとかなりそう。

ちなみにprivate.xmlMBA本体側のキーだけVK_NONEにアサインしていく方法もやってみたんだけど、なぜかうまく行きませんでした。

BlueTooth側の左コントロールが使いたいって人は……どうにかしてPC側のCtrlだけ殺す以外に方法はない気がします。

ちなみにDisable Control_Lが効いて

__KeyToKey__ KeyCode::CONTROL_L, KeyCode::VK_NONE

が効かない辺りとか、どうなってるのか中をいじりたいのだけどせっかくの日曜なので今日はここまでにしときます。