結構ハマったのでメモ。
自分はHHKを使っていて、日本語キーボードだから「半角/全角」キーがあるんだけど、あれの位置が変わったところにある。
普通は左上、Tabの上で1の左だと思いますが、このキーボードでは左下、無変換の左にある。そしてその左がAlt。Windowsキーはなく、Fn +「半角/全角」でWindowsキーになる。これがデフォルト。
そこで、前にも書いたけど、物理的にキートップを外して入れ替えて、無変換の左をAlt、その左を「半角/全角」にした。文句あるなら英語キーボード使えばいいだろってのはあるんだけど、まあ許して。
ただ、物理的にキートップを入れ替えてもキーの機能までは入れ替わらないので、そこでAutoHotkeyの出番。remap機能を使う。今回やりたいのは、
こうすることで、Windowsキーを単品で押せるようになり、さらにAltとWindowsキーの配置が一般的なキーボードと同じになる。Win、Alt、無変換の順になる。
sc029::LAlt LAlt::LWin
ハマったのが最初の行。「半角/全角」キーをスキャンコードで書いてる。最初は仮想キーコードの「vkF3」と「vkF4」を指定していた。IMEがONのときとOFFの時で違うとかいうから、両方書いてた。でもこれだと、IMEが切り替わったあと、Altキーが押しっぱなしになるという悲しい問題が発生。IMEは切り替わらなくていいし、Altキーはちゃんと離して欲しい。全然ダメだった。そこでスキャンコードを指定したらうまくいった。
今まではXKeymacsのキーボードレイアウト機能で入れ替えていた。でもこれは設定を変えるたびにWindowsの再起動が必要になる。これがかなりメンドイ。キーの入れ替えって、ちょっとやってみて変だったら戻して...の繰り返しなわけで、いちいち再起動は面倒すぎる。AutoHotkeyはスクリプトファイルの再読込だけで良いので、かなり楽。これはイイ。
AutoHotkeyって、kは小文字だったのね。みんなAHKって略すからKも大文字だと思ってた。LDRみたいなもんか。