Windows Terminal


Windows Terminal概述

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

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

終端還需要滿足我們的目標和措施,以確保它保持快速,高效,並且不會消耗大量的內存或電力。

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

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

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

但是,由於Console的主要目標是保持向后兼容性,因此我們無法添加社區一直要求的許多功能,以及我們過去幾年一直希望添加的功能 - 比如標簽!

這些限制促使我們創建了新的Windows終端。

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

這項大修工作導致創建了幾個關鍵組件,這些組件對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以及任何其他問題或意見。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM