Windows Terminal 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Windows Terminal 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Windows Terminal 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 C/C++
操作系统 Windows
软件类型 开源软件
开源组织 微软
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2019-05-07

软件简介

Windows Terminal 是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多 Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU 运算的文本渲染等等。同时该终端依然符合我们的目标和要求,以确保它保持快速、高效,并且不会消耗大量内存和电源。

Windows 控制台主机

Windows 控制台主机程序 conhost.exe是 Windows 原生的命令行体验,它实现了 Windows 的命令行基础架构,同时提供 Windows Console API,输入引擎、渲染引擎和用户配置信息。本项目中的控制台主机代码实际上是 Windows 中的 conhost.exe 的源码。

控制台的主要目的是对已有控制台应用保持向后兼容性。自从 2014 年有了 Windows 命令行以来,开发团队已经给控制台增加了很多新特性,包括窗口透明化、基于行的选择以及支持 ANSI / 虚拟终端序列 Virtual Terminal sequences24-bit color, 以及一个 Pseudoconsole ("ConPTY") 等等。

但是由于控制台主要的目标是维护向后兼容性,所以尽管这么多年社区一直希望我们能添加一些特性(例如 Tabs),但是我们不可能再增加这些特性。诸多限制让我们决定开发一个全新的 Windows Terminal。

本项目包含:

  • Windows Terminal
  • Windows Terminal Preview
  • Windows 控制台主机 (conhost.exe)
  • 上述两项目的共享组件
  • ColorTool
  • 示例项目 将展示如何使用 Windows Console APIs

共享的组件

在对控制台进行大修的同时,我们对其代码库进行了大量的改进。主要是将逻辑实体清晰地划分为模块和类,引入了一些关键的扩展点,用更安全、更高效的STL容器替换了几个旧的、自制的集合和容器,并通过使用微软的 Wil header 库使代码更简单、更安全。

这项大修工作导致创建了几个对 Windows 上的任何终端实现都有用的关键组件,包括一个新的基于 DirectWrite 的文本布局和渲染引擎、一个能够存储 UTF-16 和 UTF-8 的文本缓冲区以及一个VT解析器/发射器。

构建一个全新终端

当开始构建全新终端应用程序时,我们探索并评估了几种方法和技术堆栈。最终决定继续使用 C++ 开发,并通过共享上述的现代化组件来实现我们的目标,并基于现代 Windows 应用程序平台和 UI 框架之上进行开发。

此外,我们意识到终端的渲染器和输入堆栈可以构建成可重用的 Windows UI 控件,方便其他人可以将其合并到其他应用程序中。

源码构建

该项目使用 git submodules 包含一些相关依赖,要确保子模块被更新,请在构建器使用如下命令检查:

git submodule update --init --recursive

OpenConsole.sln 需要在 Visual Studio 构建或者是使用 MSBuild 在命令行中构建。命令行构建的方法如下:

nuget restore OpenConsole.sln
msbuild OpenConsole.sln

我们还在 tools 目录下提供了一组常用的脚本可以帮助自动化处理构建和运行测试的过程。

“Windows Terminal”的图片搜索结果

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(60)
发表了资讯
05/25 07:29

Windows Terminal Preview 1.14 发布,支持窗口背景图功能

Windows Terminal Preview 1.14 已发布,该版本专注于修复错误和提高质量,带来如下内容: 窗口背景图功能(实验性) 现在可以让所有窗格在一个背景图上拆分,而不是每个窗格都有自己的背景图像。使用全局设置 "experimental.useBackgroundImageForWindow": true 即可完成将焦点配置文件的背景图应用到整个窗口。 新行为 现在可以使用 selectAll 操作选择缓冲区中的所有文本,默认按键 Ctrl+Shift+A 。 其他改进 对选项卡、滚...

1
2
发表了资讯
02/10 07:10

Windows Terminal Preview 1.13 发布,新的文本渲染引擎

Windows Terminal Preview 1.13 已发布,这是 2022 年的第一个更新版本。值得注意的是,Windows Terminal 1.13+ 支持的最低 Windows 10 版本已从 18362 (19H1) 变更至 19041 (20H1) 主要新特性如下: 更新 settings UI 设计 使用 WinUI 2.6 更新了 settings UI 以与新的 Windows 11 样式保持一致。 Auto-elevate profiles 增加了一个新的配置文件设置,称为"elevate";允许你能够以管理员的身份自动启动一个配置文件。 此外,e...

5
1
2021/12/16 08:32

Windows Terminal 将成为 Windows 11 的默认终端程序

Windows Terminal 项目经理 Kayla Cinnamon 在一篇博客文章中指出,该团队计划在 2022 年让 Windows Terminal 成为 Windows 11 设备的默认体验。 用户将可以在多个地方找到此设置:在 Windows 设置的开发者设置页面内、在启动页面的 Windows Terminal 设置内、以及在 Windows 控制台主机属性表内。 具体的推进计划为,将从 Windows Insider Program 开始,并开始通过环形网络进行推广,一直持续到所有 Windows 11 的安装。 根据...

6
5
发表了资讯
2021/11/16 08:37

Windows Terminal UI 迎来更新,和 Windows 11 风格一致

微软工程师 Pankaj Bhojwani 公布了 Windows Terminal 正在开发的新 UI 截图,他表示新 UI 基于全新的 WinUI 控件,将会采用和 Windows 11 一致的风格。 从 PR 的描述来看,目前只公开了 Windows Terminal 的设置容器样式,看起来和 Windows 11 的设置类似。Pankaj Bhojwani 称,此 PR 将会在该分支中进行修改,最终这个 PR 将包含所有变化,然后再合并到 main 分支。 他还介绍了一些待完成的任务: 操作页面 配色方案页面 删除...

6
1
发表于开发技能专区
2021/10/22 07:38

Windows Terminal Preview 1.12 发布,可设置为默认终端

Windows Terminal Preview 1.12 已发布。 更新亮点: 支持将 Windows Terminal 设置为默认终端 匹配配置文件 支持恢复窗口 增加完全透明模式 将 Windows Terminal 设置为默认终端 在 Windows 11 或 Windows Insider Program Dev Channel 中,用户可以将 Windows Terminal 设置为默认终端。设置默认终端后,当我们启动任何命令行应用程序时,它将自动在 Windows Terminal 内打开。 匹配配置文件 (Profile matching) Windows Ter...

3
1
发表了资讯
2021/07/16 07:57

Windows Terminal Preview 1.10 发布

Windows Terminal Preview 1.10 已发布。 主要新特性如下: 下拉菜单新增“命令行面板 (Command palette)”按钮 单击此按钮将启动命令行面板,就像使用快捷键 Ctrl+Shift+P 一样。 系统托盘的"Quake"模式 粗体文本 Windows Terminal 现在支持在文本渲染器中显示粗体文本,未来将会添加一个可配置此项功能的设置。 支持添加新的 action Windows Terminal 提供了大量不同的 action 供使用。其中大多数默认包含键盘快捷键,新版本支...

3
1
2021/07/06 08:21

Windows Terminal 性能再惹争议,难度相当于博士项目?

游戏引擎开发者和 Handmade Hero 项目的作者 Casey Muratori 在 Windows Terminal(以下简称为 WT)的 GitHub 仓库中发布了一个关于 WT 性能的 issue,引发了激烈的讨论。 Casey Muratori 在 issue 中指出,WT 在渲染彩色字符时比单色字符慢约 40 倍,并附上了用来测试的 benchmark 程序 TermBench。之后 Casey Muratori 与 WT 的成员在 issue 下展开了讨论,然而并没有得出统一意见,Casey Muratori 被认为 “把一个可以作为博...

26
3
发表了资讯
2021/04/17 07:26

Windows Terminal Preview 1.8 发布

Windows Terminal Preview 1.8 已发布,按照其发布计划,只要新版本进入 Preview 阶段,上一个版本的所有预览功能就会进入稳定阶段,因此 Windows Terminal v1.7 稳定版也已同步推出。 Windows Terminal Preview 1.8 更新亮点: Settings UI is default in stable settings UI 现在随 Windows Terminal 稳定版一起提供。用户可以通过点击下拉菜单中的设置按钮或输入 Ctrl+,来访问 settings UI。目前, settings UI 的体验还在持...

4
0
发表于行业趋势专区
2021/03/18 08:33

Windows 10 将预装 Windows Terminal

微软昨天发布了 Windows 10 最新的内部预览版更新 (Insider Preview Build 21337)。 发布公告介绍了不少新特性,例如支持重新排序和自定义虚拟桌面、PC 端支持自动 HDR 预览以及更新文件资源管理器布局等。 除了上述新特性,相信下面这项新变化更受开发者欢迎——Windows Terminal 将会成为内置应用被预装至 Windows 10,变成了像「记事本」一样非常方便使用的应用程序。毕竟现在如果需要使用 Windows Terminal,需要从 Micros...

25
7
发表于开发技能专区
2021/03/03 07:10

Windows Terminal Preview 1.7 发布,新增只读窗格模式

Windows Terminal Preview 1.7 已发布,按照其发布计划,只要新版本进入 Preview 阶段,上一个版本的所有预览功能就会进入稳定阶段,因此 Windows Terminal v1.6 稳定版也已同步推出。 Windows Terminal Preview 1.7 更新亮点: 支持 JSON 片段扩展 Windows Terminal 现已支持 JSON 片段扩展,这意味着 JSON 片段可被下载并用于修改用户设置。 具体来说,用户可以创建一个文件夹,其中包含 JSON 片段文件以及包含在扩展的其他资...

7
5
2021/01/30 07:10

Windows Terminal Preview 1.6 发布

微软发布了2021年的第一个 Windows Terminal 版本 — Windows Terminal Preview 1.6,此版本带来了一些新的改进。具体更新内容如下: Settings UI Windows Terminal Preview 1.6 包含了新的 settings UI 的 alpha 版本。默认情况下,settings UI 尚未绑定。当点击下拉菜单中的设置按钮时将无法打开,因此用户需要在其 settings.json 文件中添加一个操作,以便通过命令调色板或键盘打开它。 如何打开 settings UI 要将设置界面绑...

17
2
2021/01/25 08:20

Windows Terminal 将在下个版本提供设置 GUI

自 2019 年首次亮相以来, Windows Terminal 已经走过了很长的一段路,微软也一直在推动该实用程序的发展。近日,微软的程序经理 Kayla Cinnamon 就在其社交平台上透露,计划在下一个 Windows Terminal Preview 版本中为设置菜单提供一个 GUI 页面。对于那些不习惯使用 JSON 文件自定义 Windows Terminal 的人来说,该功能的到来不失为一个好消息。 如 GIF 图所示,设置页面就像终端会话一样会在一个标签页中打开。其设计风格类...

17
2
2020/11/13 09:54

Windows Terminal Preview 1.5 发布

微软发布了 Windows Terminal Preview 1.5 版本,与此同时,Windows Terminal 已升级至 1.4 稳定版,包含此前 1.4 预览版中的所有功能。 新版本更新内容包括: 完整的超链接支持 开发团队改进了超链接功能,以自动检测终端内部的链接。这些链接是可以点击的,并将在默认浏览器中使用 Ctrl+Click 打开。 Audible bell Windows Terminal 现在支持 BEL 字符。用户可以使用 "bellStyle "配置文件设置启用或禁用 bell。 "bellStyle...

13
3
发表于开发技能专区
2020/09/24 07:30

Windows Terminal Preview 1.4 发布,支持超链接

微软发布了 Windows Terminal Preview 1.4 版本,与此同时,Windows Terminal 已升级至 1.3 稳定版,包含此前 1.3 预览版中的所有功能。 新版本更新内容包括: Jump list(跳转列表) 现在,可以从开始菜单或任务栏中使用特定的配置文件启动 Windows Terminal Preview: 注意:settings.json 中的图标必须写为 Windows 样式的文件路径,以便它们出现在跳转列表中。 支持超链接 添加了对嵌入式超链接的支持。这些链接会带有下划线...

9
3
发表于服务端专区
2020/08/28 07:58

Windows Terminal Preview 1.3 发布

微软宣布推出 Windows Terminal Preview 1.3 版本,此版本带来的新特性包括: 命令面板(Command palette) 这项新功能可以用来搜索 Windows Terminal 中所有可用的命令,类似于 Visual Studio Code 中同样的功能。 可以通过键入 Ctrl+Shift+P 来调用命令面板。如果想更改此键绑定,可以将 commandPalette 命令添加到 settings.json 中的键绑定数组中。 { "command": "commandPalette", "keys": "ctrl+shift+p" } 命令面板有两...

7
5
发表了资讯
2020/07/24 07:26

Windows Terminal Preview 1.2 发布

微软宣布推出 Windows Terminal Preview 1.2 版本,该版本的最新功能将于 2020 年 8 月移至 Windows Terminal,包括: Focus 模式 焦点模式可隐藏选项卡和标题栏,仅显示终端内容。要启用此模式,可以在 settings.json 文件中为 toggleFocusMode 添加一个按键绑定。 { "command": "toggleFocusMode", "keys": "shift+f11" } 置顶模式 可以使 Windows Terminal Preview 始终置于最顶层。 使用 alwaysOnTop 全局设置以及 to...

26
6
发表了资讯
2020/06/19 08:08

Windows Terminal Preview 1.1 发布

微软宣布推出 Windows Terminal Preview 1.1 版本,该版本的最新功能将于 2020 年 7 月移至 Windows Terminal。下面来看看都有哪些新功能: 在 Windows Terminal 中打开 现在,可以右键单击文件资源管理器中的文件夹,然后选择“在 Windows Terminal 中打开”。这将使用默认配置文件启动 Windows Terminal。 开机时启动 Windows Terminal 此版本添加了一个新设置,能够将 Windows Terminal 设置为在启动计算机时启动。你可以在全...

17
4
发表了资讯
2020/06/14 08:06

微软公布 Windows Terminal 2.0 路线图

在去年的微软 Build 2019 大会上,微软首次宣布开源 Windows Terminal。上个月,Build 2020 终于宣告 Windows Terminal 1.0 版本的正式到来。近日,Windows Terminal 2.0 的路线图也公布了。 计划中的主要功能包括: Settings UI:连接到 settings.json 的用户界面,提供了一种无需编辑 JSON 文件即可编辑其设置的方法。 命令面板(Command palette):一个弹出菜单,列出可能的操作和命令。 选项卡撕除(Tab tear-off):可以将...

14
8
发表了资讯
2020/05/20 11:31

Windows Terminal 1.0 正式发布

在 Build 2020 开发者大会上,微软宣布 Windows Terminal 1.0 版本正式可用。Windows Terminal 将从 2020 年 7 月开始每月更新一次。 主要功能: 选项卡和窗格 Windows Terminal 允许用户在选项卡和窗格中运行任何命令行应用程序。用户可以为每个命令行应用程序创建配置文件,并可以并排打开它们以实现无缝地工作流程。同时,用户的每个配置文件都可以根据喜好进行独特定制。此外,如果用户的计算机上安装了 Windows Subsystem ...

46
41
发表了资讯
2020/05/07 07:50

Windows Terminal 1.0 rc1 发布

Windows Terminal 1.0 的第一个候选版本发布了,主要更新内容包括: 渲染(性能) 对某些内容进行更改后,终端不再呈全屏显示 (#5345) (#5185) (#5092) 这样可以节省 30-40% 打印大量合成测试文件所需的时间,并且这使得 cmatrix 的运行速度更快 RTL 文本稍微得到了改进(可能可读,但在某种程度上不一定“起作用”)(#5734) 辅助功能 Narrator 和 NVDA 能够读出搜索结果 输入与交互 重新设计了对标题栏拖动的处理方式 其他 Te...

3
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
60 评论
151 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部