Windows Terminal 添加右键菜单

用户头像
simon
关注
发布于: 2020 年 05 月 02 日
Windows Terminal添加右键菜单

前言



关于Windows Terminal的配置,后面有空再讲。

今天要说的是如何实现在当前目录打开Windows Terminal,类似Mac上的Go2Shell效果。



Windows Terminal是微软公司于西雅图开幕的Build 2019大会上所公布的面向Windows10的新命令行程序。用户可以通过Microsoft应用商店安装,或从Github下载源码自行编译安装。这一程序把目前Windows上的PowerShellCMD以及Windows Linux子系统WSL)三大环境实现了统一。



WT(Windows Terminal,后面都用WT简称)目前最新版本还不支持添加右键菜单的设置,但是我们可以通过注册表的方式自己添加。



解决方案



常规的操作流程,当然是先找以前有没有人干过,于是我找到了这个issues,然后找到了这个解决方案。经过自己的一番调试,终于成功。因此总结一下,避免后面的人踩坑。





1. 先上结论

win10新建一个文本文件,把下面的代码复制进去,修改文件后缀为.reg格式,双击运行即可:

Windows Registry Editor Version 5.00
; Windows terminal
[HKEY_CLASSES_ROOT\Directory\shell\MenuWindowsTerminal]
"MUIVerb"="Windows Terminal"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminal"
[HKEY_CLASSES_ROOT\Directory\background\shell\MenuWindowsTerminal]
"MUIVerb"="Windows Terminal"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminal"
[HKEY_CLASSES_ROOT\Directory\LibraryFolder\shell\MenuWindowsTerminal]
"MUIVerb"="Windows Terminal"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminal"
[HKEY_CLASSES_ROOT\Drive\shell\MenuWindowsTerminal]
"MUIVerb"="Windows Terminal"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminal"
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\MenuWindowsTerminal]
"MUIVerb"="Windows Terminal"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminal"
; Windows Terminal SUDO
[HKEY_CLASSES_ROOT\Directory\shell\MenuWindowsTerminalSudo]
"MUIVerb"="Windows Terminal (Admin)"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminalSudo"
[HKEY_CLASSES_ROOT\Directory\background\shell\MenuWindowsTerminalSudo]
"MUIVerb"="Windows Terminal (Admin)"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminalSudo"
[HKEY_CLASSES_ROOT\Directory\LibraryFolder\shell\MenuWindowsTerminalSudo]
"MUIVerb"="Windows Terminal (Admin)"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminalSudo"
[HKEY_CLASSES_ROOT\Drive\shell\MenuWindowsTerminalSudo]
"MUIVerb"="Windows Terminal (Admin)"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminalSudo"
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\MenuWindowsTerminalSudo]
"MUIVerb"="Windows Terminal (Admin)"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuWindowsTerminalSudo"
; Subcommands
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminal\shell\CMD]
"MUIVerb"="CMD"
"ExtendedSubCommandsKey"=-
"Icon"="imageres.dll,-5323"
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminal\shell\CMD\command]
@="C:\\Users\\username\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -p \"cmd\" -d ."
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminal\shell\Powershell]
"MUIVerb"="Windows PowerShell"
"ExtendedSubCommandsKey"=-
"Icon"="imageres.dll,-5372"
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminal\shell\Powershell\command]
@="C:\\Users\\username\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -p \"Windows PowerShell\" -d ."
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminal\shell\Ubuntu]
"MUIVerb"="Ubuntu-18.04"
"ExtendedSubCommandsKey"=-
"Icon"="C:\\Program Files\\WindowsApps\\CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc\\ubuntu1804.exe"
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminal\shell\Ubuntu\command]
@="C:\\Users\\username\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -p \"Ubuntu-18.04\" -d ."
; Subcommands Sudo
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminalSudo\shell\CMD]
"MUIVerb"="CMD"
"HasLUAShield"=""
"Icon"="imageres.dll,-5324"
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminalSudo\shell\CMD\command]
@="cmd.exe /s /c pushd \"%V\" & start wt -p \"cmd\" -d ."
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminalSudo\shell\Powershell]
"MUIVerb"="Windows PowerShell"
"HasLUAShield"=""
"Icon"="imageres.dll,-5373"
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminalSudo\shell\Powershell\command]
@="cmd.exe /s /c pushd \"%V\" & start wt -p \"Windows PowerShell\" -d ."
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminalSudo\shell\Ubuntu]
"MUIVerb"="Ubuntu-18.04"
"HasLUAShield"=""
"Icon"="C:\\Program Files\\WindowsApps\\CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc\\ubuntu1804.exe"
[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuWindowsTerminalSudo\shell\Ubuntu\command]
@="cmd.exe /s /c pushd \"%V\" & start wt -p \"Ubuntu-18.04\" -d ."



2. README



请不要直接使用上面的代码,除非你电脑设置和我一模一样



从现在开始上面的代码统称为示例代码



因为每个人的电脑环境是不一样的,所以示例代码中有几处需要针对你实际的电脑环境进行修改。

2.1 修改步骤(必须):

  1. 请把示例代码中所有C:\\Users\\username\\中的username替换为你的电脑用户名,如果你的系统在其他盘,也请修改盘符。



  1. 启用PowerShell, 在C盘(或你的系统盘)根目录下执行cd '.\Program Files\WindowsApps\'



  1. 输入ls命令,找到你安装的WT,如下面框选的部分



  1. 如果你的版本号与上图不同,使用你实际的版本号替换示例代码中所有的WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe

PS: 比如你电脑里面显示的版本号是WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe,那么就用这个替换示例代码中所有的WindowsTerminal_0.11.1191.0_x64__8wekyb3d8bbwe

2.2 Ubuntu子系统的修改步骤(可选)

修改Ubuntu版本(如果你并未安装Linux子系统,直接把示例代码中所有含Ubuntu的部分删除)。如果安装的是其他Linux发行版,步骤一样,只是Ubuntu换成其他,比如Centos



  1. 先在C\Program Files\WindowsApps\下找到CanonicalGroupLimited.Ubuntuxxxxx这段东西



然后用你实际的CanonicalGroupLimited.Ubuntuxxxxx把示例代码中的CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc全部替换掉



  1. 继续执行下面操作

$ cd CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc
$ ls



结果如下:



  1. 请看上面框选的部分,有个ubuntu1804.exe,这是你实际的ubuntu执行文件,如果你不是这个,请把示例代码中所有的ubuntu1804.exe替换为你实际显示的



  1. 代码中还有两处"MUIVerb"="Ubuntu-18.04",修改方式为打启动WT,然后参考下图,把示例代码中的Ubuntu-18.04修改为框选的名字。



最后,保存,执行,看效果!!!

发布于: 2020 年 05 月 02 日 阅读数: 66
用户头像

simon

关注

还未添加个人签名 2018.05.24 加入

还未添加个人简介

评论

发布
暂无评论
Windows Terminal添加右键菜单