キーボードのCapsLockって使いますか?もちろん、使用する方もいるとは思いますが、SHIFT+キー派な自分にとっては、不意にCapsLock状態になってしまって困ったりするキーです。またEmacs使いである事もありCTRLキーの使用頻度が高いため、従来の左CTRLよりもCapsLockの位置にCTRLキーがあった方が助かるなぁと思うわけです。
CapsLockを左CTRLにする方法ですが、フリーウェアも色々と出ています。
とはいえ、常駐型のアプリを増やしたくないですし、キー入れ替えのためだけのアプリをインストールするのも面倒かな。
キーの入れ替え自体はレジストリを操作する事で実現できますので、ちょくせつ記述しちゃっています。
※ レジストリ操作によるキーマップの変更は危険が伴います。特に誤ったスキャンコードを指定してしまうと、キーボードによる操作ができなくなる可能性があります。十分ご注意の上、自己責任で対応してください。
スキャンコード(キーボードのキーコード)を変更するためにはレジストリエディタで以下のレジストリを操作します。
(レジストリエディタは regedit.exe を起動してください。)
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout
上記場所に右クリック「新規キー」で "Scancode Map" という名前でバイナリデータキーを作成します。
あとはこのキーのバイナリ値を書き込む事で様々なキーマップの変更が可能になります。
データの構成は4バイト単位で
00 00 00 00
00 00 00 00
データ数
入れ替えコード(入れ替え後キー:2バイト 入れ替え対象キー:2バイト)
00 00 00 00
といった形式になります。
折角なので、よく使われるパターンを紹介しておきます。
・CapsLockに左CTRLを割り当てる
00 00 00 00
00 00 00 00
02 00 00 00
1D 00 3A 00
00 00 00 00
・CapsLockと左CTRLを交換する
00 00 00 00
00 00 00 00
03 00 00 00
1D 00 3A 00
3A 00 1D 00
00 00 00 00
・右ALTに変換を割り当てる
00 00 00 00
00 00 00 00
02 00 00 00
64 00 38 E0
00 00 00 00
・CapsLockと左CTRLを交換した上で、右ALTに変換を割り当てる
00 00 00 00
00 00 00 00
04 00 00 00
64 00 38 E0
1D 00 3A 00
3A 00 1D 00
00 00 00 00
3行目のデータ数というのは末尾の「00 00 00 00」も含めたキーマップデータ数のことです。
よって、1キーだけ変更する場合は「02 00 00 00」2キーを変更する場合は「03 00 00 00」になります。
キーコードは2バイトのリトルエンディアンで表現されており、上で使用しているものはそれぞれ
001D 左CTRL
003A CapsLock
0064 変換
E038 右ALT
となります。
ご参考まで。