從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 屬性

請問這是怎麼個情況


推薦閱讀:
相关文章