naiの日記

ソフトウェアエンジニアから放射線科診断医にジョブチェンジしました。趣味のことを書きます。

Alt+Tabでalt-ime-ahkがスタックする不具合を回避した

WindowsでのIME切り替えにalt-ime-ahkを長年愛用していたのですが、いつ頃からかAlt+Tabでのウィンドウ切替時に、たまに以降Altキーが反応しなくなるという不具合を踏むようになってしまいました。不具合が発生した場合Altキーを長押しすることで解決していたのですが、前触れなく発生するため地味にストレスでした。

それで色々調べた結果、AHKスクリプトからalt-ime-ahkを削除して以下のコードを追加したところ解決しました。

#Include IME.ahk
LAlt & F20::return
LAlt::IME_SET(0)
RAlt & F20::return
RAlt::IME_SET(1)

解説ですが、まず LAlt & F20::returnAHKLAlt キーをprefix keyとして認識させています。 F20 は何でも良いですが、Altキーとの同時押しが置換されるためまず使わないキーを設定しています。そのうえで、 LAlt 単独にキーリマップを設定することで、 LAlt キーが単独で押されたときのみ発生する処理を書くことができるという仕組みらしいです。

この設定に変更してしばらく使っていますが、今のところ特に困った点は出ていません。余談ですがAltキーの代替として左右Shiftキー単押しでIMEオン・オフというのも試してみましたが、右ShiftキーがEnterに近いためミスが怖かったり、大文字交じりの文をタイプする際に誤って左Shiftキーを単押ししてしまったりと少々気になる点があったため、やはり左右Altキーが現時点での私にとってはベストという結論に至りました。

なお、AutoHotKeyのバージョンは 1.1.37.01 です。

参考

AHK で Ctrl の単押しを Esc にマップする (Windows) - ぺんぎんの布団

Hotkeys - Definition & Usage | AutoHotkey v1