Open5

Windowsの任意の設定に対応するレジストリの値を探る

hirogahiroga

手元の開発マシンをIaCで管理したいと思いませんか?
Dotfilesやdefaultsなど様々な取り組みがありますが、Windowsの場合はレジストリが鍵になりそうです。

個人開発用のマシンをWindowsに新調したので、任意の設定に対するレジストリの値を調べます。
個人マシンをWindowsにするのは8年ぶり(開発者になって以来では初めて)なので、初心者が書いたと思って読んでください。

hirogahiroga

Macの場合はdefaults readコマンドでマシンの設定をダンプできます。
Windowsの場合はProcessMonitorを導入することで、同様のことができるようです。

wingetでインストールできます。

winget install "Sysinternals Suite"
hirogahiroga

インストールしたら、スタートメニューからProcess Monitorを起動します。

キャプチャとオートスクロールをONにします。めっちゃイベント流れてきてるので...

フィルターでSystemSettings.exeで絞り込みます。

(Windows初心者なのでこの実行ファイル名の特定に数分かかりました笑)

hirogahiroga

日本語IMEのショートカットに対応するレジストリの値

Ctrl + Space = None

Ctrl + Space = IME-on/off

Shift + Space = None

Shift + Space = Alt Width Space

Shift + Space = IME-on/off

hirogahiroga

さらに観察を続け、以下の解釈が成り立つことが分かった。

  • Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\IME\15.0\IMEJP\MSIMEKeyAssignmentCtrlSpaceKeyAssignmentShiftSpaceがショートカットにかかわる設定を持つ。
  • 値はそれぞれ、4=None, 3=Alt Width Space, 2=IME-on/off
  • Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\InputMethod\JPN\roaming\mon\Settingは、値ではなく設定の変更回数を追っている(ユーザーの利用状況をモニタしていると考えられる)