ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

Autohotkeyを使って capslock に半角全角キーを割り当てる

昨日は見事にはまった Auto HOT key
もう一度まともな形で再チャレンジしてみたいと思います。

このツールが最もよく使われるシチュエーションはキーの入れ替えではないでしょうか。
プログラマーあるあるですが滅多に使わないキーがすごく押しやすい所にある代わりに頻繁に使うキーに限って遠いところにあるというやつです。

筆頭となるのがキャップスロックキーだと思うんですが、このキー頻繁に使う人います?
ものすごく押しやすい位置に陣取ってますよ。
反面キャンセルボタンに当たるエスケープキーなどは結構遠くて押しにくい位置にあります。
簡単に入れ替えられるなら神ツールですよ。

私の場合はバシバシキー入力できるタイプではないのでそれほど大きな不満はないのですが一つだけ気になることが。
それは IME をオンにする漢字キーです。
度々この日記をご覧になる方はスクリーンショットに映り込んでいるスクリーンキーボードの配列に気づいているかもしれませんが US 配列キーボードを使っています。
こっちの方が記号入力が直感的に感じるので愛用しています。
また、キーボードを日本語キーボードで利用しているとスクリーンキーボードに使わないであろうひらがなが表示されてキートップの字面がよく分からないんですね。
みんなローマ字入力だろうからキートップのひらがないらないと思うんですけど。
せめてオプションでオフにして置けるようにしてほしい。

ということで今日はIME 切り替え動作を CapsLock キーできるようにしたいと。
US キーボードでの IME 切り替えはaltキー+~ですね 。
capslock 全角/半角キーなどをスクリプト上で表記するための方法を調べます。

ahkwiki.net

全角半角キーは IME の状態によってコードが違うようです。
いきなり先行き不安だな。
ダメ元でやってみる。

test.ahk

CapsLock::Send, {vkF3sc029}

このファイルを実行して Auto HOT key を常駐させます。
capslock キーを押してみると無事 IME は切り替わりました。
もう一度押すときちんと IME がオフになります。
案外簡単に実現できましたね。
しかしスクリーンキーボード上でキーの背景色が反転したままですね。
IME の状態が分かるのでかえって都合が良いのか。
とりあえず先に進みます。
このままでは Caps Lock キーがなくなってしまうので何らかのキーに capslock を割り当てなければなりません。
SHIFT + CapsLock でええやろ。

CapsLock::Send, {vkF3sc029}
+CapsLock::Send, [CapsLock]

これで実行しましたが期待通りにはならず IME の切り替えが動きました。
この組み合わせでは実現できないようです 。
シフトキーの組み合わせがまずいのかと想像してコントロールキーに変えてみましたがそちらもダメ 。
何度も弄り回しているとスクリーンキーボード上の反転表示が実際の状態と一致しなくなることもある問題が判明しました。
これはややこしい。
助けて Google 先生。

www.google.com

blog.goo.ne.jp

どうしても駄目なら ALT + space に逃げるかな。
2クリックだけど隣り合ったキーだからそんなにストレスはないだろうし 。
それとも capslock は無しでも良いか。
この一年でも二回くらいしか使った記憶がないので。
最悪必要になってもアッパーケースで対処した方が手数が少ないかもしれんし。
しばらくは Caps Lock なしで生きてみたいと思います 。