Windows10 のレジストリを変更して CapsLock を Ctrl キーに変更する

最近 MacOS で、CapsLock を Control キーの挙動にするよう変更した。tmux を使い始め、(Cmd ではなく) Control キーの使用頻度が上がってきたからだ。

MacOS の US 配列の場合、Control キーはキーボードの一番左下。CapsLock は「A」キーの左にある。CapsLock キーを Control キーの挙動にしてやると、Control + T などを入力する時に、左手小指を下に下げる必要がなくなり、キーの入力速度が上がるのだ。

MacOS の場合は「システム環境設定」→「キーボード」→「修飾キー...」ボタン より、すぐに CapsLock や各種メタキーのアサインを変更できるのでお手軽だ (defaults コマンドでもやれなくはないが、ちょっと設定が面倒らしい)。

CapsLock を Control キーに変更するのが効果的だと実感したので、Windows 環境でも CapsLock キーに Ctrl キーをアサインしようと思い、調べてみた。

目次

AutoHotKey で制御すると「押しっぱなし病」が起こる

最初に思い付いたのは、導入済みの AutoHotKey。CapsLock キーを押下した時に Ctrl キーを押したことにするとか、CapsLock + T などのコンビネーションを押下した時に Ctrl + T コンビネーションを押下させたり、といった設定自体は、すぐに書けるし、実際に動作した。

しかしその動作が少々バギーで、CapsLock を1度押下すると、Ctrl キーを押しっぱなしにしているかのような挙動になってしまうバグが多発したのだ。

この「押しっぱなし病」は AutoHotKey 界隈では有名なバグらしく、色々な対策もあるようだが、なんだか面倒くさくなってきた。

レジストリ変更で対処できる

調べていると、レジストリを変更することで、CapsLock キーを Ctrl キーに変更できるようだったので、その方法を採用することにした。

「メモ帳」を開き、以下の内容をコピペ、Shift-JIS エンコーディングで保存する。ファイル名は CapsLockToCtrl.reg とかなんとか適当に。

Windows Registry Editor Version 5.00

; CapsLock キーを Ctrl キーに変更する

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00

拡張子 .reg で保存したら、エクスプローラからダブルクリックして実行する。レジストリを書き換えさせたら一度再起動 (ログオフ) して、設定を反映させる。

コレで、CapsLock キーが Ctrl キーの動作になった。もちろん、実際の Ctrl キーはそのまま Ctrl キーの動作をしている。Ctrl キーが2つになった感じだ。

以上

CapsLock に関しては AutoHotKey のようなソフトウェアレイヤーでは対応が難しいから、サクッとレジストリ変更で対応しちゃうのが楽ね。