该存储库包含以下源代码:
Windows 终端
Windows 终端预览
Windows 控制台主机 ( conhost.exe
)
两个项目之间共享的组件
色彩工具
展示如何使用 Windows 控制台 API 的示例项目
相关存储库包括:
Windows 终端文档(存储库:为文档做出贡献)
控制台API文档
卡斯卡迪亚代码字体
笔记
Windows 终端需要 Windows 10 2004(内部版本 19041)或更高版本
从 Microsoft Store 安装 Windows 终端。当我们发布具有自动升级功能的新版本时,这使您可以始终使用最新版本。
这是我们的首选方法。
对于无法从 Microsoft Store 安装 Windows Terminal 的用户,可以从此存储库的发布页面手动下载已发布的版本。
从“资产”部分下载Microsoft.WindowsTerminal_
文件。要安装该应用程序,只需双击.msixbundle
文件,应用程序安装程序就会自动运行。如果由于任何原因失败,您可以在 PowerShell 提示符下尝试以下命令:
# 注意:如果您使用的是 PowerShell 7+,请在使用 Add-AppxPackage.Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle 之前运行# Import-Module Appx -UseWindowsPowerShell#
笔记
如果您手动安装终端:
您可能需要安装 VC++ v14 桌面框架包。仅当您收到有关缺少框架包的错误时,才需要在较旧版本的 Windows 10 上执行此操作。
当新版本发布时,终端不会自动更新,因此您需要定期安装最新的终端版本才能接收所有最新的修复和改进!
winget 用户可以通过安装Microsoft.WindowsTerminal
包来下载并安装最新的终端版本:
winget install --id Microsoft.WindowsTerminal -e
笔记
WinGet 版本 1.6.2631 或更高版本提供了依赖性支持。要安装终端稳定版本 1.18 或更高版本,请确保您拥有更新版本的 WinGet 客户端。
Chocolatey 用户可以通过安装microsoft-windows-terminal
包来下载并安装最新的终端版本:
choco 安装 microsoft-windows-terminal
要使用 Chocolatey 升级 Windows 终端,请运行以下命令:
choco 升级 microsoft-windows-terminal
如果您在安装/升级软件包时遇到任何问题,请转到 Windows 终端软件包页面并按照 Chocolatey 分类流程进行操作
Scoop 用户可以通过安装windows-terminal
包来下载并安装最新的 Terminal 版本:
勺子桶添加额外的东西 舀安装 Windows 终端
要使用 Scoop 更新 Windows 终端,请运行以下命令:
独家更新 Windows 终端
如果您在安装/更新软件包时遇到任何问题,请在 Scoop Extras 存储桶存储库的问题页面上搜索或报告相同问题。
Windows Terminal Canary 是 Windows Terminal 的夜间版本。此版本具有来自我们main
分支的最新代码,让您有机会在功能进入 Windows 终端预览版之前尝试这些功能。
Windows Terminal Canary 是我们最不稳定的产品,因此您可能会在我们有机会发现错误之前就发现它们。
Windows Terminal Canary 可作为应用程序安装程序发行版和便携式 ZIP 发行版提供。
App Installer 发行版支持自动更新。由于平台限制,此安装程序仅适用于 Windows 11。
Portable ZIP 发行版是一个便携式应用程序。它不会自动更新,也不会自动检查更新。此便携式 ZIP 发行版适用于 Windows 10 (19041+) 和 Windows 11。
分配 | 建筑学 | 关联 |
---|---|---|
应用程序安装程序 | x64、arm64、x86 | 下载 |
便携式邮编 | x64 | 下载 |
便携式邮编 | ARM64 | 下载 |
便携式邮编 | x86 | 下载 |
了解有关 Windows 终端发行版类型的更多信息。
Windows 终端的计划在此处进行了描述,并将随着项目的进展进行更新。
在深入研究代码之前,请花几分钟时间查看以下概述:
Windows Terminal 是一个面向命令行用户的新型、现代、功能丰富、高效的终端应用程序。它包括 Windows 命令行社区最常请求的许多功能,包括对选项卡、富文本、全球化、可配置性、主题和样式的支持等。
终端还需要满足我们的目标和措施,以确保其保持快速和高效,并且不会消耗大量内存或电量。
Windows 控制台主机conhost.exe
是 Windows 的原始命令行用户体验。它还托管 Windows 的命令行基础结构和 Windows 控制台 API 服务器、输入引擎、渲染引擎、用户首选项等。此存储库中的控制台主机代码是构建 Windows 本身中的conhost.exe
的实际源代码。
自 2014 年掌握 Windows 命令行以来,该团队向控制台添加了多项新功能,包括背景透明度、基于行的选择、对 ANSI/虚拟终端序列的支持、24 位颜色、伪控制台(“ConPTY”) ),等等。
但是,由于 Windows 控制台的主要目标是保持向后兼容性,因此我们无法添加社区(和团队)过去几年一直想要的许多功能,包括选项卡、unicode 文本和表情符号。
这些限制促使我们创建了新的 Windows 终端。
您可以在命令行团队博客上的随附博客文章系列中详细了解命令行的总体演变以及 Windows 命令行的具体演变。
在彻底改造 Windows 控制台的同时,我们对其代码库进行了相当程度的现代化改造,将逻辑实体清晰地分离为模块和类,引入了一些关键的扩展点,用更安全、更高效的 STL 容器替换了一些旧的、自行开发的集合和容器,并使代码更简单、更简洁。使用 Microsoft 的 Windows 实现库 - WIL 更安全。
这次彻底修改使得 Console 的几个关键组件可以在 Windows 上的任何终端实现中重复使用。这些组件包括新的基于 DirectWrite 的文本布局和渲染引擎、能够存储 UTF-16 和 UTF-8 的文本缓冲区、VT 解析器/发射器等。
当我们开始规划新的 Windows 终端应用程序时,我们探索并评估了多种方法和技术堆栈。我们最终决定,继续投资 C++ 代码库可以最好地实现我们的目标,这将使我们能够在现有控制台和新终端中重用上述几个现代化组件。此外,我们意识到这将使我们能够将终端的大部分核心本身构建为可重用的 UI 控件,其他人可以将其合并到自己的应用程序中。
这项工作的结果包含在此存储库中,并作为 Windows 终端应用程序提供,您可以从 Microsoft Store 下载,或直接从此存储库的版本下载。
有关 Windows 终端的更多信息,您可能会发现其中一些资源有用且有趣:
命令行博客
命令行背景博客系列
Windows 终端启动:终端“Sizzle Video”
Windows 终端启动:Build 2019 会议
作为广播运行:Show 645 - Richard Turner 的 Windows 终端
Azure DevOps 播客:第 54 集 - Kayla Cinnamon 和 Rich Turner 谈 Windows 终端上的 DevOps
Microsoft Ignite 2019 会议:现代 Windows 命令行:Windows 终端 - BRK3321
原因:您在 Visual Studio 中启动了错误的解决方案。
解决方案:确保在 Visual Studio 中构建和部署CascadiaPackage
项目。
笔记
OpenConsole.exe
只是本地构建的conhost.exe
,它是托管 Windows 命令行基础结构的经典 Windows 控制台。 Windows 终端使用 OpenConsole 连接到命令行应用程序并与之通信(通过 ConPty)。
所有项目文档均位于 aka.ms/terminal-docs。如果您想为文档做出贡献,请在 Windows 终端文档存储库上提交拉取请求。
我们很高兴能与您(我们出色的社区)一起构建和增强 Windows 终端!
在开始进行功能/修复之前,请阅读并遵循我们的贡献者指南,以帮助避免任何浪费或重复的工作。
与团队沟通的最简单方法是通过 GitHub issues。
请提交新问题、功能请求和建议,但在创建新问题之前,请搜索类似的已解决/已关闭的现有问题。
如果您想提出一个您认为尚不值得提出问题的问题,请通过 Twitter 与我们联系:
Christopher Nguyen,产品经理:@nguyen_dows
Dustin Howett,工程主管:@dhowett
Mike Griese,高级开发人员:@[email protected]
卡洛斯·萨莫拉,开发人员:@cazamor_msft
Pankaj Bhojwani,开发人员
Leonard Hecker,开发者:@LeonardHecker
您必须运行 Windows 10 2004(内部版本 >= 10.0.19041.0)或更高版本才能运行 Windows 终端
您必须在 Windows 设置应用程序中启用开发人员模式才能本地安装和运行 Windows 终端
您必须安装 PowerShell 7 或更高版本
您必须安装 Windows 11 (10.0.22621.0) SDK
您必须至少安装 VS 2022
您必须通过 VS 安装程序安装以下工作负载。注意:在 VS 2022 中打开解决方案会提示您自动安装缺少的组件:
C++ (v143) 通用 Windows 平台工具
使用 C++ 进行桌面开发
通用Windows平台开发
以下各个组件
您必须安装 .NET Framework Targeting Pack 才能构建测试项目
该存储库使用 git 子模块来实现其某些依赖项。为了确保子模块得到恢复或更新,请务必在构建之前运行以下命令:
git 子模块更新 --init --recursive
OpenConsole.sln 可以在 Visual Studio 中构建,也可以使用/tools目录中的一组便捷脚本和工具从命令行构建:
导入模块 .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild
.工具razzle.cmd BCZ
要在 VS 中调试 Windows 终端,请右键单击CascadiaPackage
(在解决方案资源管理器中)并转到属性。在“调试”菜单中,将“应用程序进程”和“后台任务进程”更改为“仅限本机”。
然后,您应该能够通过按F5来构建和调试终端项目。确保选择“x64”或“x86”平台 - 终端不针对“任何 Cpu”构建(因为终端是 C++ 应用程序,而不是 C# 应用程序)。
?您将无法通过运行 WindowsTerminal.exe 直接启动终端。有关原因的更多详细信息,请参阅#926、#4043
请查看下面有关我们编码实践的简短文档。
?如果您发现这些文档中缺少某些内容,请随时为存储库中任何位置的任何文档文件做出贡献(或编写一些新的文档!)
这是一项正在进行的工作,因为我们了解需要为人们提供什么才能成为我们项目的有效贡献者。
编码风格
代码组织
我们的遗留代码库中的异常
用于在 WIL 中与 Windows 交互的有用智能指针和宏
该项目采用了微软开源行为准则。有关详细信息,请参阅行为准则常见问题解答或联系 [email protected] 提出任何其他问题或意见。