ちょっと前にAlt(Cmd)とControlの交換をしてみましたが、 Windowsではyamyでの変更が少し思い通りに 行かない所があって、他を検討していました。
結局、おそらく一番使われてるであろうAutoHotkeyに落ち着いて、 ちょっと使ってみたらかなり色々な事ができて予想以上でした。
AutoHotkeyとAutoHotkey_L
現在、AutoHotkeyのページの
Download
からダウンロード出来るものはAutoHotkey_L
となってます。
AutoHotkey_L
はAutoHotkey
の派生版みたいなものらしく、
マルチバイト文字に対応していたりするようです
1
2
。
さらに、AutoHotkey_L
をインストールする時に、ANSI
版かUnicode
版かを
聞かれますが、ANSI
版の方が以前のAutoHotkey
との互換性が高い一方、
日本語の取り扱いはUnicodeの方が便利そう。
自分的には以前のAutoHotkeyも使っていないし 現状日本語使っていないのでどちらでも良いのですが、 取り敢えずUnicode版を入れてあります 3。
CapsLockの扱い
CpasLockについては色々上手くいかない部分があるらしく、 特に日本語OSの場合に問題が起こる様です 4。 英語キーボードならOK、と言う記述も有りましたが、使っている 英語キーボードでも駄目でした。
CapsLock::Ctrl
等とすると例えば
^h::BS
などとしてCtrl-hで一文字削除をどこでも出来る様にすると、
1回押す分にはちゃんと働いている様に見えますが、押し続けて
キーリピート状態になるとh
が打たれてしまいます。
さらに、暫く使っているとCtrlが押しっぱなしになっている様な状態に なることがありました。
そこで、CpsLockも含め修飾キー関連はKeySwap を使いました。 このソフトはレジストリーを書き換えてキー入力を変更します(設定の反映に再起動が必要)。
yamyだと、これより上流で変更を行っているらしく、KeySwapで変更したものは yamy起動後には反映されません。
これがAutoHotKeyだとyamyより下流で変更を行っているらしく KeySwap(レジストリー変更)の設定が反映された上でキー設定が出来ます。
yamyとAutoHotKeyは大体同じレベルでの変更を行っているみたいですが 5微妙に違うみたいです。
ということで、KeySwapで
- CapsLock左Alt
- 左Alt左Ctrl
- 右Alt右Ctrl
- 右Ctrl右Alt
の変更をした上でAutoHotkeyで色々することにしました。
yamyの時に起こっていた問題点
以前書いた 問題点 の様に、Control-[やControl-h での問題はKeySwap+AutoHotkeyでは起こっていません。 AltをCtrlとしてきちんと使えています。 (レジストリーの変更をしてるのである意味当たり前ですが。)
yamyとAutoHotkeyの比較
基本的にyamyで行う設定は上記のCapsLockや修飾キー以外は すべて移行出来ました。
AutoHotkeyの方が
変数や関数を使うことが出来、
よりプログラムチックに書くことが出来ます。
yamyの場合だと、vimモード的な物を
On
/Off
の変更が出来るロックキー
と呼ばれる9つのキー(L0-L9)で
再現してましたが、
AutoHotkeyだと例えばVimMode
的な変数1つを用意しておけば
この値にNormal
などと与えることで複数の状態を簡単に
作る事が出来ます。
また、Windows機能へのアクセスもより自由にできるので、 ディスプレイのサイズやマウスの位置なども取得出来るし、さらにタスクトレイへのポップアップ表示等も出来ます。
後は何と言ってもまだ開発が行われている(?)ソフトで、 日本限定ソフトで無いので圧倒的に利用者が多く webで拾える情報も非常に多いです。
他のソフト
他にもPythonベースな keyhac と言うものも試しましたが、 キー設定の方法はPython記法なのでなかなかおもしろいのですが、 モード的な状態設定の方法が分からず、断念しました。
まとめ
しばらくはKeySwap+AutoHotkeyで行こうと思います。 いくつかハマった点とかもあるので、 後日別にまとめておきたいと思います。