CapsLockキーにCtrlキーを割り当てるシンプルな方法

Windows環境でCapsLockキーにCtrlキーを割り当てるには、キーマップを変更すればいいだけである。下手なツールを使うと何をされるかわからないので、適当なテキストファイルに設定を書き込み、レジストリに設定を書き込むのが一番良い。

設定ファイルの内容は以下のとおり。

\Registry\Machine\SYSTEM\CurrentControlSet\Control\Keyboard Layout
Scancode Map = REG_BINARY 20 \
0x00000000 0x00000000 \
2 \
0x003A001D \
0x0

これをcapslock.iniなどのファイル名として作成し、reginiコマンドで読み込んで再起動すれば完了だ。

> regini capslock.ini

設定内容は一行で記述する。見やすく改行する場合は\文字でエスケープする。それぞれの設定内容をコメントとして補足したのが以下のもの(汎用の設定ファイルとして同梱しておくと忘れにくい)。

; REG_BINARY 20 byte length, 1set=20, 2set=24, set*4+16
; 0x00000000 0x00000000 version, flags
; 2 Number of entries (includes null terminator)
; 0x003A001D CapsLock -> Ctrl (0x3a -> 0x1d)
; 0xE05B0000 left Windows -> nul (0xE0 0x5b -> 0x00)
; 0xE05C0000 right Windows -> nul (0xE0 0x5c -> 0x00)
; 0x0 null terminator

2つ以上の設定を書き込む場合は、REG_BINARYの後の数字を増やして、エントリーの項目を設定数+1で記述する。CpasLockをCtrlキーに変更するのは0x003A001Dだが、同時に左のWindowsキーを無効化するには0xE05B0000を追加して記述する。たとえば以下のような感じだ。

\Registry\Machine\SYSTEM\CurrentControlSet\Control\Keyboard Layout
Scancode Map = REG_BINARY 24 \
0x00000000 0x00000000 \
3 \
0x003A001D \
0xE05B0000 \
0x0

; REG_BINARY 20 byte length, 1set=20, 2set=24, set*4+16
; 0x00000000 0x00000000 version, flags
; 2 Number of entries (includes null terminator)
; 0x003A001D CapsLock -> Ctrl
; 0xE05B0000 left Windows -> nul (0xE0 0x5b -> 0x00)
; 0xE05C0000 right Windows -> nul (0xE0 0x5c -> 0x00)
; 0x0 null terminator

キーコードがわかればいろいろと簡単に変更できるだろう。 設定したキーマップを削除したい場合は、regeditを起動し、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard LayoutのScancode Mapを削除すればOKだ。

regedit-scancode-map