Windowsのコンテキストメニューにアイテムを追加する方法 ~Windows Terminalを例として~



Explore上で右クリックして送りたい

VSCodeやgit-bashはインストーラが自動でコンテキストメニューに追加してくれるが、
Windows Terminal(Preview)の場合はレジストリエディタを使う必要があったので記載(2020/03/20現在)

(普通のやり方)レジストリエディタを立ち上げて、修正する

cmd > regedit

修正を許可すると以下が立ち上がる。

HKEY_CLASSES_ROOT\Directory\Background\shell\

コンテキストメニューに追加する場合は上記に項目を追加する。

上記のキーから

[HKEY_CLASSES_ROOT\Directory\Background\shell\]
├──[entry]
├─command ←起動コマンド
└─Icon ←アイコン

を設定すればよいようだ

Windows Terminalの場合以下で起動するので、プロファイルに合わせて記載する

wt -d [ディレクトリ] -p [プロファイル]

プロファイルは以下で調べればよいようだ

wsl --list

regファイルで記載

ただ、同じようなことをファイルを作ってやることも可能。

wt.reg(ファイル名は拡張子がregなら何でもよい)を以下の要領で作る
※C:\Users\axt\AppData\Local\terminal に以下のファイルがある想定
wt.ico ・・・設定するアイコン
wsl1.ico ・・設定するアイコン
wsl2.ico ・・設定するアイコン
wt.reg ・・・下記

※axt(私のユーザ名)の部分は適宜ユーザ名で書き換えてください

Windows Registry Editor Version 5.00

;Menu Top
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
"Icon"="C:\\Users\\axt\\AppData\\Local\\terminal\\wt.ico"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\wt"
"MUIVerb"="Windows Terminal here"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\ps]

;power shell
"MUIVerb"="PowerShell"
"Icon"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\ps\command]
@="C:\\Users\\axt\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

;cmd
[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\cmd]
"MUIVerb"="CMD"
"Icon"="C:\\Windows\\System32\\cmd.exe"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\cmd\command]
@="C:\\Users\\axt\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d . -p \"cmd\""

;wsl1
[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\wsl1]
"MUIVerb"="WSL1"
"Icon"="C:\\Users\\axt\\AppData\\Local\\terminal\\wsl1.ico"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\wsl1\command]
@="C:\\Users\\axt\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d . -p \"Ubuntu-18.04_wsl1\""

;wsl2
[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\wsl2]
"MUIVerb"="WSL2"
"Icon"="C:\\Users\\axt\\AppData\\Local\\terminal\\wsl2.ico"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\wt\shell\wsl2\command]
@="C:\\Users\\axt\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d . -p \"Ubuntu-18.04\""

このファイルを実行すればOK

image.png

これでだいぶ便利です。

参考

windows terminalの該当のissue
https://github.com/microsoft/terminal/issues/1060#issuecomment-599206916
PowerShell用のopen here(こちらでも可能かも※未検証)
https://github.com/KUTlime/PowerShell-Open-Here-Module