从5月8号(微软2019build大会期间)开始玩,到现在已经过去一个多月了。体验真的很棒,预览版已经可以从Windows Store下载到~

一直都相信,觉得有所帮助的知友都会随手支持一波~

首先,你得能运行Windows terminal,目前暂无正式版,故只能安装预编译版,或自行编译,推荐前一种,我下面的步骤也是针对前一种的,下列步骤在将来出Windows terminal正式版后也会同样适用。

Step 0:

测试后续要用的两个常量是否正常

echo %USERPROFILE%

echo %LOCALAPPDATA%

如果此处没有报错,则后续可直接使用这两个常量.

否则请手动在后文中进行如下替换:

%USERPROFILE% → C:Users[userName]
%LOCALAPPDATA% → C:Users[userName]AppDataLocal
这里的 [userName] 请换为自己的用户名,比如我的是Bruce。

Step 1:

在命令行中执行如下命令:

mkdir "%USERPROFILE%AppDataLocal erminal"

Step 2:

将windows terminal图标复制到目录 %USERPROFILE%AppDataLocal erminal, 该图标在我的github repo中可以获得 icons - yanglr, 就是里面的文件 wt_32.ico.

Step 3:

将如下内容另存为wt.reg, 然后以"管理员许可权"运行

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\AppData\Local\terminal\wt_32.ico"

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwtcommand]
@="C:\Users\[your_user_name]\AppData\Local\Microsoft\WindowsApps\wt.exe"

对于 wt.exe 的路径,需使用完整路径,形如

C:\Users\[your_user_name]\AppData\Local\Microsoft\WindowsApps\wt.exe

比如,我的是:

"C:\Users\Bruce\AppData\Local\Microsoft\WindowsApps\wt.exe"

Step 4: 检查配置文件中是否有 startingDirectory 属性

检查settings对应的profile.json中是否有 startingDirectory 属性的设置,如果有,则需要将其删除 。

这里要说明一下,如果是自己build后得到的exe是 wtd.exe,需要将上面的 wt.exe 改为 wtd.exe ~

Step 5:

测试:

进入任意一个文件夹,在没有选择任何内容时,按Shift键 + 滑鼠右键,会出现下面的界面:

如果还存在问题,请仔细核对前面方法中的细节,祝顺利~有问题欢迎在留言区讨论...

本文原创首发于:

Windows terminal - issue #1060 (comment by Bravo Yeung)

其他相关文章,我已经写进了知乎专栏 dotNET学堂:

黑科技抢先尝 - Windows 全新终端初体验(附无需编译就能安装的Preview版本及代码Build全过程)

黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南

黑科技抢先尝(续2) - Windows terminal中Powershell Tab的美化全攻略

先来一波福利:

Yeung Bravo:知乎上赞同数最高的666个回答 - 2019上半年版?

zhuanlan.zhihu.com图标

更多 .NET最新技术资讯和工程实践,尽在我们的知乎专栏 dotNET学堂 和 公|号「大白技术控」,欢·迎关·注~


经过大家的帮助,我终于成功地实现了想要的功能,这里我把我自己碰到的问题的解决方法来和大家分享一下。

首先最基本的功能是添加一个右键菜单中的项目,将如下的文件保存,并更改为reg后缀,然后添加到注册表:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwt]
@="Windows terminal here"

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwtcommand]
@="C:\Users\your_username\AppData\Local\Microsoft\WindowsApps\wtd.exe"

这中间有几点需要注意的:

  1. 根据 @Yeung Bravo 的回答,使用%LOCALAPPDATA%来代替直到Microsoft文件夹前面的位置是可行的。但是我同该回答下评论区中的 @wrvsrx 一样,只有使用绝对路径,才能够正常的打开,不然会报错。注意,将your_username更改为你实际的用户名。
  2. 根据 @vczh 的评论,release和debug模式部署之后的可执行文件名是不同的。release模式是wt.exe,debug模式是wtd.exe。但我的实际情况是,我使用release模式编译部署得到的可执行文件仍然是wtd.exe。在之前那个回答的评论区中 @matrixes 提到新编译出来的都变成了wtd.exe,因此我认为可能是版本差异吧。根据实际情况,可以去确定自己的电脑上到底是wt.exe还是wtd.exe。然后将第二条中的文件名更改成对应的文件名。

然后如果想要为该项目添加一个图标的话,可以按照 @Yeung Bravo 的回答中,为第一个项新添一个名为Icon的值,像这样:

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwt]
@="Windows terminal here"
"Icon"="path_to_the_icon.ico"

图标可以从他给出的链接中得到,也可以自己在工程目录中搜索.png,找到png图片再在网路上转为ico格式。放置的位置也没有什么限制。对应地更改"Icon"的值就好。

最后如果希望按住Shift才显示这个菜单项的话,按照 @wrvsrx 的评论中,为第一项添新添加一个名为Extended的值,像这样:

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwt]
@="Windows terminal here"
"Icon"="path_to_the_icon.ico"
"Extended"=""

最后完整的文件像这样:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwt]
@="Windows terminal here"
"Icon"="path_to_the_icon.ico"
"Extended"=""

[HKEY_CLASSES_ROOTDirectoryBackgroundshellwtcommand]
@="C:\Users\your_username\AppData\Local\Microsoft\WindowsApps\wtd.exe"

但是这之后我还有一个小问题,就是我从右键打开的Windows Terminal仍然不能再当前目录打开,仍是从我的%USERPROFILE%文件夹下打开的。我想到我是配置了Windows Terminal的打开路径的。这在不能右键打开时是有用的,要不然就会从System32这个文件夹打开,这就很傻。但是当我可以从右键打开的时候,这就没用了。如果你按照某些教程,配置了

{
"profiles": [
{
"startingDirectory": "%USERPROFILE%"
}
]
}

的话,删掉这一项就可以从右击的文件夹中打开了。


2019年10月25日更新

现在startingDirectory又重新需要了,但不能配置为"%USERPROFILE%",应当配置为

"startingDirectory" : "."

Terminal的图标有人问怎么找,其实很简单,你到github主页搜terminal.ico就行了


其实跟cmd和powershell一样,在地址栏里输入wt就可以在当前目录打开Windows Terminal了。


和@黄青林 一样,我也遇到了同样的问题。

从Windows Store中安装的0.5.2762.0版本的Terminal,如果直接按其他回答的方法去做,会发现在什么目录右键打开,都会跑到用户目录下。点击Settings打开的profile.json中也看不到 "startingDirectory": "%USERPROFILE%" 这一项。

这是新版本配置文件的使用方法导致的。

profils.json最上面有句话:

// To view the default settings, hold "alt" while clicking on the "Settings" button

在terminal菜单栏按住alt点击settings可以查看默认配置。在默认配置default.json里可以发现存在 "startingDirectory": "%USERPROFILE%" 这句话,但默认配置是自动生成的不能修改。

新版的配置文件将默认的设置写在default.json 中,用户自定义的配置写在profils.json中,这样可以防止用户改乱配置导致无法运行。

所以,按其他回答操作完之后,profils.json里添加 "startingDirectory" : null 就可以了。


我还没用,懒得去编译,等正式版。

听说这货要一统三界,不知道行不行


我的不管在哪打开

路径一直是用户目录

而且配置文件中是没有 startingDirectory 属性

请问这是怎么个情况


推荐阅读:
相关文章