Windows Terminal

Windows Terminal概述git

github項目地址https://github.com/microsoft/Terminal
在深刻了解代碼以前,請花幾分鐘時間查看下面的概述:github

Windows終端
Windows Terminal是一個面向命令行用戶的全新,現代,功能豐富,高效的終端應用程序。它包括Windows命令行社區最常請求的許多功能,包括對選項卡,富文本,全球化,可配置性,主題和樣式等的支持。安全

終端還須要知足咱們的目標和措施,以確保它保持快速,高效,而且不會消耗大量的內存或電力。框架

Windows控制檯主機
Windows控制檯主機conhost.exe是Windows的原始命令行用戶體驗。它實現了Windows的命令行基礎結構,並負責託管Windows控制檯API,輸入引擎,呈現引擎和用戶首選項。此存儲庫中的控制檯主機代碼conhost.exe是構建Windows自己的實際源代碼。ide

控制檯的主要目標是與現有控制檯子系統應用程序保持向後兼容。工具

自2014年得到Windows命令行的全部權以來,該團隊已向控制檯添加了幾項新功能,包括窗口透明度,基於行的選擇,支持ANSI /虛擬終端序列,24位顏色,Pseudoconsole(「ConpTY」) 「)等等。佈局

可是,因爲Console的主要目標是保持向後兼容性,所以咱們沒法添加社區一直要求的許多功能,以及咱們過去幾年一直但願添加的功能 - 好比標籤!性能

這些限制促使咱們建立了新的Windows終端。測試

共享組件
在對控制檯進行大修時,咱們對代碼庫進行了大規模的現代化改造。咱們將邏輯實體徹底分離爲模塊和類,引入了一些關鍵的可擴展點,用更安全,更高效的STL容器替換了幾個舊的,自行開發的集合和容器,並經過使用Microsoft的WIL頭庫使代碼更簡單,更安全。ui

這項大修工做致使建立了幾個關鍵組件,這些組件對Windows上的任何終端實現都頗有用,包括一個新的基於DirectWrite的文本佈局和渲染引擎,一個可以存儲UTF-16和UTF-8的文本緩衝區,以及VT解析器/發射器。

創建一個新的終端
當咱們開始構建新的終端應用程序時,咱們探索並評估了幾種方法和技術堆棧。咱們最終決定經過堅持使用C ++並共享上述現代化組件,將它們置於現代Windows應用程序平臺和UI框架之上來最好地實現咱們的目標。

此外,咱們意識到這將容許咱們將終端的渲染器和輸入堆棧構建爲可重用的Windows UI控件,其餘人能夠將其合併到他們的應用程序中。

常問問題
我在哪裏能夠下載Windows終端?
目前尚未可下載的二進制文件。
Windows終端處於早期的 alpha階段,還沒有爲普通大衆作好準備。若是你想早點進入,你能夠嘗試從源頭本身構建它。

不然,您須要等到6月中旬才能正式預覽構建。

我建造並運行了新的終端,但它看起來就像舊的控制檯!是什麼賦予了?
首先,確保您CascadiaPackage在Visual Studio中構建和部署,而不是 Host.EXE。OpenConsole.exe只是conhost.exe,你知道和喜歡的舊控制檯。opencon.cmd將推出openconsole.exe,不幸的openterm.cmd是,目前已經破產。

其次,嘗試按Ctrl+ T。默認狀況下,只有一個選項卡時,隱藏選項卡。在將來,用戶界面將是顯着不一樣,但就目前而言,缺省值應該看起來像控制檯默認值。

我試過運行WindowsTerminal.exe它崩潰了!
不要嘗試無包裝運行它。確保CascadiaPackage從Visual Studio 構建和部署,並運行Windows終端(預覽)應用程序。
確保您使用的是正確版本的Windows。您須要使用Insider的版本,或等待1903版本,由於Windows終端須要最新Windows版本的功能。
入門
先決條件
您必須運行Windows 1903(build> = 10.0.18362.0)或更高版本才能運行Windows Terminal
截至2019年5月,此版本僅可經過Windows Insider Program得到。您能夠經過設備的系統設置註冊和配置Insider Program。
您必須安裝1903 SDK(build 10.0.18362.0)
您至少須要安裝VS 2017
您須要在VS中安裝如下兩個軟件包(Visual Studio Installer中的「工做負載」選項卡):
「使用C ++進行桌面開發」
「通用Windows平臺開發」
若是你正在運行VS2019,你還須要安裝「v141工具集」和「用於x86和x64的Visual C ++ ATL」
您還須要在「設置」應用中啓用「開發者模式」,以啓用安裝終端應用以在本地運行。
調試

食品經營許可證辦理

要在VS中進行調試,請右鍵單擊CascadiaPackage(來自VS Solution Explorer)並轉到屬性,在「調試」菜單中,將「應用程序進程」和「後臺任務進程」更改成「僅限本機」
特約
咱們很高興與您,咱們的社區一塊兒工做,構建和加強Windows終端!

咱們要求您在開始處理您想要貢獻的功能以前,請提交一份描述您提議的更改的問題:咱們很樂意與您合做,找出最佳方法,在整個功能開發過程當中提供指導和指導,以及幫助避免任何浪費或重複的努力。

👉 記得!您的貢獻可能會合併到Windows的將來版本中!所以,全部拉取請求都將受到與咱們內部貢獻者相同的質量,編碼標準,性能,全球化,可訪問性和兼容性的嚴格審查。

⚠ 注意:命令行團隊正在積極地使用此存儲庫,並將按期從新構建代碼,以便更容易理解,導航,構建,測試和貢獻,所以DO指望對代碼佈局進行重大更改按期。

與團隊溝通
與團隊溝通的最簡單方法是經過GitHub問題。請提交新的問題,功能請求和建議,但DO會先搜索相似的打開/關閉預先存在的問題。

請幫助咱們保持這個存儲庫的清潔,包容和樂趣!咱們不會容忍任何侮辱,粗魯,不尊重或不恰當的行爲。閱讀咱們的行爲準則瞭解更多詳情。

若是您想提出一個您認爲不存在問題的問題,請經過Twitter與咱們聯繫:

Rich Turner,項目經理:@richturn_ms

Dustin Howett,工程主管:@dhowett

Michael Niksa,高級開發人員:@michaelniksa

Kayla Cinnamon,項目經理(尤爲是UX問題):@cinnamon_msft

開發者指導
創建守則
此存儲庫使用git子模塊來實現其某些依賴項。要確保子模塊已恢復或更新,請確保在構建以前運行如下命令:

git submodule update --init --recursive
OpenConsole.sln能夠在Visual Studio中構建,也可使用MSBuild從命令行構建。要從命令行構建:

。\噸 ools \ r azzle.cmd
BCZ
咱們在/ tools目錄中提供了一組便捷腳本和README,以幫助自動化構建和運行測試的過程。

編碼指導
請查看如下有關咱們的編碼標準等的簡要文檔。

👉 若是您發現這些文檔中缺乏某些內容,請隨時爲存儲庫中的任何文檔文件作出貢獻(或者建立一些新文檔!)

這是一項正在進行中的工做,由於咱們瞭解了爲了成爲項目的有效貢獻者而須要提供的人員。

編碼風格代碼組織咱們的遺留代碼庫中的例外狀況有用的智能指針和宏用於與WIL中的Windows鏈接行爲守則該項目採用了Microsoft開源行爲準則。有關更多信息,請參閱行爲準則常見問題解答或聯繫opencode@microsoft.com以及任何其餘問題或意見。

相關文章
相關標籤/搜索