はじめに
タイピング効率化のために、変則的なキーボード配列を実現したい。この時、Windows環境であれば「PowerToys」の「Keyboard Manager」や、「AutoHotKey」を利用することが多いが、両者の簡単な解説と、同時使用する際の設定の注意点をまとめておく。
PowerToys-Keyboard Managerについて
Microsoftが提供するアプリケーション。キーボードのキーの再定義やショートカットキーの登録・変更が可能。 使用時はバックグラウンドでPowerToysを立ち上げておく必要あり。GUIで手軽に設定が行える。
CapsLockや一部ショートカットキーの動作に癖があり、臨んだ動作を実現できない場合がある。
1対1でキー内容を対応させていくため、スペースキーの押下時間などで、シフトキーと瞬時に切り替えてに使う、通称SandS(Space and Shift)の実装は行えない。
公式サイト: https://learn.microsoft.com/ja-jp/windows/powertoys/
AutoHotKeyについて
Windowsで動作するスクリプト言語。テキストエディターで操作する必要がある。ボタン押下時や離した時など、細かく設定を行うことができ、またマウス操作なども含めたショートカット作成が可能。
SandSなどより複雑なキー入力やショートカットなどの実装が可能。
だが、キーの複数入力時やパソコンに負荷がかかっている場合などは、キー変換が発生しないなどの不具合が生じる。
公式サイト:https://www.autohotkey.om/
注意点
キー設定変更は後から起動したほうが優先され、入力キーに対してAHKでの変換が行われなかった場合、AHKでの変更を適用していると思われる。<例>
・Keyboard Manager(以下KM)で、1を2に変更、3を4に変更
・AutoHotKey(以下AHK)で、1を3に変更、2を5に変更
①KM→AHKの順で起動して、「1」を入力 =「3」が表示
②AHK→KMの順で起動して、「1」を入力 =「5」が表示
※上記例では、①ではKMでの変換が行われおらず、②では後から起動したKMでの変換ののち、AHKでの変換が行われていることが分かる。
あとがき
実際に併用する場合において、KMをスタートアップに設定し、AHKは手動で実行することを推奨する。AHKの動作は不安定な部分が多く、特にキーの複数入力時や高速でタイピングを行った際の、未変換発生率が個人的に許容できないほど高いためである。
一方、KMでは未変換になることが経験上全くない。
このため、基本的なキーマップの変更はKMで行い、KMでは賄いきれないキー変更(CapsLockやShift押下時の動作)や機能追加(SantSや配列を用いた括弧入力など)はAHKで行うといいんじゃないでしょうか。