⌨️

Windows で CapsLock を Ctrl にする

2022/11/20に公開

Ubuntu や Mac で、CapsLock キーを Ctrl にリマップして使って長く、Windows でもそうしたく調べて、これはこれで独特な世界が広がってましたのでまとめました。

PowerToys で CapsLock を Ctrl にする

Microsoft 謹製の PowerToys というアプリに Keyboard Manager というキーリマッパーがあります。初手はこれを試すのが手軽でしょう。

❯ winget search powertoys
名前                ID                  バージョン ソース
-----------------------------------------------------------
Microsoft PowerToys XP89DCGQ3K6VLD      Unknown    msstore
PowerToys (Preview) Microsoft.PowerToys 0.64.1     winget

❯ winget install Microsoft.PowerToys

スタートメニューで探すと PowerToys が出てくるので、あとは以下記事のとおりに。

私の手元では、CapsLock が確かに Ctrl になってくれたものの、ショートカットキー待ちと解釈されるようで、CapsLockキーを押すと「Ctrlに続くキーは何かな?」みたいな挙動になるようです。とても説明が難しいのですが、、、キーボードのCapsLockキーを押して(PowerToysによってCtrlにリマップされてる)、ふつうに文字入力のつもりで「a」と打てば「Ctrl+a」と解釈され全選択になり、「z」と打てば「Ctrl+z」で「戻す」になりで、思ってたのと違ったのでこれはやめました。

Ctrl2Cap で CapsLock を Ctrl にする

PowerToys でイイ感じにならないなら、次点で Microsoft 謹製の Ctrl2Cap が効く可能性があります。

Ctrl2Cap という命名に反して(?)、

  • CtrlがCapsにはなりません。CtrlはCtrlのままです。
  • CapsがCtrlになるだけです。

私の手元は Ctrl2Cap で私が期待した挙動となってくれました。

gsudo をインストールする

gsudo は、管理者権限ではないセッションのまま、管理者権限でコマンド実行するコマンドです。あると便利なので入れます。個人的な趣味で winget で入れてます。

❯ winget search gsudo
名前  ID             バージョン ソース
---------------------------------------
gsudo gerardog.gsudo 2.0.3      winget

❯ winget install gsudo

ctrl2cap をインストールする

ctrl2cap を scoop で入れます。 choco にもあるようですが、個人的な趣味で scoop で入れます。「zipをダウンロードして任意のフォルダに展開して」とか今更やりたくないので。

https://scoop.sh/#/apps?q=ctrl2cap&s=0&d=1&o=true

❯ scoop bucket add sysinternals
❯ scoop install ctrl2cap
Installing 'ctrl2cap' (2.0) [64bit] from sysinternals bucket
Loading Ctrl2Cap.zip from cache.
Checking hash of Ctrl2Cap.zip ... ok.
Extracting Ctrl2Cap.zip ... done.
Linking ~\scoop\apps\ctrl2cap\current => ~\scoop\apps\ctrl2cap\2.0
Creating shim for 'ctrl2cap'.
'ctrl2cap' (2.0) was installed successfully!

なんも考えず実行すると「パンピーは帰れ」って言われます。

❯ ctrl2cap.exe /install

Ctrl2cap Installation Applet
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Ctrl2cap must be run with administrative rights.

gsudo を挟むと今度は ctrl2cap.nt5.sys が無いよって言われます。ctrl2cap.exe は、カレントディレクトリに ctrl2cap.*.sys が置いてある前提で書かれているようで動きません。

❯ gsudo ctrl2cap.exe /install

Ctrl2cap Installation Applet
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Could not copy ctrl2cap.nt5.sys to \system32\drivers.:
指定されたファイルが見つかりません。

scoop install .... したときに、このフォルダに置いたよって出てます。そのフォルダに行ってみます。すると件のファイルが転がってます。

❯ cd ~\scoop\apps\ctrl2cap\current
❯ pwd
Path
----
C:\Users\sasas\scoop\apps\ctrl2cap\current

❯ ls

    ディレクトリ: C:\Users\sasas\scoop\apps\ctrl2cap\current

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2006/09/27     17:04          10104 ctrl2cap.amd.sys
-a----        2006/11/01     13:05         150328 ctrl2cap.exe
-a----        1999/11/21     17:20           2864 ctrl2cap.nt4.sys
-a----        1999/11/21     18:46           2832 ctrl2cap.nt5.sys
-a----        2006/07/28      8:32           7005 Eula.txt
-a----        2022/11/20     17:45             66 install.json
-a----        2022/11/20     17:41            836 manifest.json

なるほどわかりましたよ ↓

やるには

あらためてまとめるとこうなります。Windows 再起動すると CapsLock が Ctrl になります。

❯ scoop install ctrl2cap
❯ cd ~\scoop\apps\ctrl2cap\current
❯ gsudo ctrl2cap.exe /install

Ctrl2cap Installation Applet
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Ctrl2cap successfully installed. You must reboot for it to take effect.

Windows 再起動後は ctrl2cap をアンインストールできます。若干戸惑うところですがアンインストールしてオッケーです。

❯ scoop uninstall ctrl2cap
Uninstalling 'ctrl2cap' (2.0).
Removing shim 'ctrl2cap.shim'.
Removing shim 'ctrl2cap.exe'.
Unlinking ~\scoop\apps\ctrl2cap\current
'ctrl2cap' was uninstalled.

やめたくなったら

この方法で思ったように効かなかったり、諸事情によりやめたくなったらこのように。 ctrl2cap はインストールされてる必要があります。Windows 再起動すると CapsLock が CapsLock に戻ります。

❯ scoop install ctrl2cap
❯ cd ~\scoop\apps\ctrl2cap\current
❯ gsudo ctrl2cap.exe /uninstall

Ctrl2cap Installation Applet
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Ctrl2cap uninstalled. You must reboot for this to take effect.

Windows 再起動後は ctrl2cap をアンインストールできます。

❯ scoop uninstall ctrl2cap
Uninstalling 'ctrl2cap' (2.0).
Removing shim 'ctrl2cap.shim'.
Removing shim 'ctrl2cap.exe'.
Unlinking ~\scoop\apps\ctrl2cap\current
'ctrl2cap' was uninstalled.

レジストリをイジって CapsLock を Ctrl にする

ここまでやってダメなら、たぶん最終手段で、レジストリをイジる手法が選択肢になります。ググるといくつかレシピが見つかります。

私は ctrl2cap でイイ感じにできたので、ここまでは手を出してません。チャレンジャーの幸運を祈ります。

参考

他 OS では

macOS なら、環境設定で、CapsLock を Ctrl にできます。
https://qiita.com/suin/items/33d0f60fcd3c01509c44

Ubuntu なら、gnome-tweaks でチェック付けたら、CapsLock を Ctrl にできます。
https://linux.just4fun.biz/?Ubuntu/Caps-LockキーをCtrlキーにする方法

Discussion