CapsLockいらねえ!!!!!!!
目次
パターン1: レジストリで置き換える
単純にCapsLockを無効にするだけなら以下のキーをレジストリに突っ込めば良い。
戻すにはキーを削除するだけ。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,00,00,3a,00,00,00,00,00
キーの意味は解説記事とか読んでください。別キーへの置き換えも可能。
[CapsLock]キーって必要? 誤入力が多いので対処方法を考えてみました - 高橋忍のにゃんともWindows - 窓の杜
Win7でレジストリをいじってキー配列を変える - "Simple" is "Best"
パターン2: PowerToysで置き換える
恐らくこれが一番簡単。
PowerToysは当然みんな入れているはずなので(強い圧)Keyboard Managerでキーの再マップをすればよい。
詳しい話は後述するがLock系も問題なく置き換えできるのかは使ってないので知らない。MS製なので大丈夫とは思うが……
パターン3: AutoHotKeyで置き換える
お待たせしました、ここから本題です。
⚠️注意⚠️
このスクリプトを書いた当時はAutoHotKeyのv2がまだ無かったためv1の内容となります。
v1→v2への移行は別の記事に。
まずCapsLockを別のキーに置き換える
ナントカLock系のトグル切り替えキーを置き換えるとキーが押しっぱなしになってしまう場合があるため、一旦CapsLockを使われていない非トグルのキーに置き換えたうえで改めてAutoHotKeyで置き換えるという手順を取る。
そこで現代のキーボード上には存在していないが存在しているF13~F24とかいう一切使われていないキーを活用し、ChangeKeyを用いてCapsLockをF13あたりに置き換える……が、このソフトがやってることはパターン1と同じなのでレジストリに直接書いてもいい。
CapsLockをF13に置き換えるキーの値は以下の通り。
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,64,00,3a,00,00,00,00,00
細かい話は参考記事を参照してほしい。
快適キーボード操作のためのキーカスタマイズ 〜AutoHotKeyのキー押しっぱなし問題とScrollLockの非推奨~ | さくらのナレッジ
AutoHotKeyでF13を置き換える
ここでやっとAutoHotKeyが登場する。置き換えるだけなら1行だけ。
F13::LControl
これでF13(ということになっているCapsLock)が左Ctrlになった。
ついでに色々置き換える
F1なんでヘルプとかいうのに割り当てられてんの?いらないのでSteamの起動キーにしよう。
ただRustとかOVERWATCHとかBLUE PROTOCOLとか普通にF1キー使うのでその辺りは除外したい。
というわけでこんな感じ。
GroupAdd, ExcludeGroup, ahk_exe Overwatch.exe
GroupAdd, ExcludeGroup, ahk_exe BLUEPROTOCOL-Win64-Shipping.exe
GroupAdd, ExcludeGroup, ahk_exe RustClient.exe
#IfWinNotActive, ahk_group ExcludeGroup
F1::
Run, "C:\Program Files (x86)\Steam\Steam.exe"
Return
#IfWinNotActive
グループ「ExcludeGroup」を作ってこのグループにあるexeが非アクティブな時だけF1をSteam起動に置き換えている。GroupAddで追加すれば除外対象を増やせる。
追加で右Winをアプリケーションキーに置き換える。
あとSpaceEngineersを起動してる時だけcと左Ctrlを入れ替えたい。操作性がカスなので……
RWin::AppsKey
#IfWinActive,ahk_exe SpaceEngineers.exe
c::LControl
LControl::c
#IfWinActive
そして完成したスクリプト
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
GroupAdd, ExcludeGroup, ahk_exe Overwatch.exe
GroupAdd, ExcludeGroup, ahk_exe BLUEPROTOCOL-Win64-Shipping.exe
GroupAdd, ExcludeGroup, ahk_exe RustClient.exe
#IfWinNotActive, ahk_group ExcludeGroup
F1::
Run, "C:\Program Files (x86)\Steam\Steam.exe"
Return
#IfWinNotActive
F13::LControl
RWin::AppsKey
#IfWinActive,ahk_exe SpaceEngineers.exe
c::LControl
LControl::c
#IfWinActive
自動起動に登録
.ahkをAutoHotKeyに関連付けてscript.ahkをスタートアップに登録すればWindows起動時に勝手に上がってくる。これでCapsLockとついでにF1を活用できるようになった。
文明に感謝。