WindowsでCapslockをShift+Ctrlにリマップする

Windows機にて開発環境を構築する際に、Macで設定していたCommandキーを使ったショートカットを同じ感覚で使えるようにしたかったので、CapsLockをShift+Ctrlにリマップすることで、それらしい感じにした。 思っていたよりそれらの設定がめんどくさかったのでメモしておく。

AutoHotKeyのインストール

キーのリマップとか凝ったことができる便利なツール。最新版と少し前のバージョンで記法が若干変わっているので、ネット上の情報を漁るときは注意。 今回は少し前のv1.1.26.01を使うこととした。下記のリンクからダウンロード&インストール

https://autohotkey.com/download/1.1/AutoHotkey_1.1.26.01_setup.exe

ChangeKeyのインストール

実はAutoHotKeyだけではCapslockをShift+Ctrlにリマップすることができなかった。 これはAutoHotKeyがHookする手前の段階でOS側がCapsLockについてキー情報を変更してしまっているからであるとのこと。 具体的にはAutoHotKeyでCapsLockのUpイベントが取得できなかった。詳しくは下記を参照

既知の不具合 - AutoHotkey Wiki

解決策として、別のツールでCapslockを使っていないキーにリマップしておく必要がある。 今回はChangeKeyというツールを使ってCapslockをF12にリマップした。

forest.watch.impress.co.jp

AutoHotKeyの設定

ここまで来れば後はAutoHotKeyの設定をするだけ。 適当な名前で .ahk ファイルを作成する。

#USEHOOK
#InstallKeybdHook

*vk7Bsc058::
  SetKeyDelay -1
  Send {Blind}{Ctrl DownTemp}{Shift DownTemp}
return

*vk7Bsc058 up::
  SetKeyDelay -1
  Send {Blind}{Ctrl Up}{Shift Up}
return
#USEHOOK off

これで無事にCapslockをShift+Ctrlにリマップすることができた。