一年之后,Windows Terminal 也出了 1.0 版了~!
官方的文档也出了,配置文件也有过向下不兼容的更改。所以留着这篇大概只是为了证明我体验过它的早期版本吧 2333
Windows Terminal 是微软最新发布的一款命令行工具,在传统命令行窗口的基础上加了一大批新功能,包括多标签页,设置主题,亚克力背景,显示 emoji 等等。
微软甚至还在 YouTube 上发了一个宣传视频,看上去似乎是颜值爆表૮(゚∀゚)ა
视频的 0:31 处出现了 if (value == true)
的沙雕代码(滑稽
因为找不到[数据删除]的小透明实在是没什么事干,所以看到这个消息当然是想要愉快地折腾一下啦~(´▽`)ノ♪
Windows Terminal 的安装
Windows Terminal 只能在 Windows 10 1903(版本号 18362.0)或更新版本的系统上安装和运行。
Windows Terminal 在 GitHub 上是开源的(这里是仓库地址),不过因为这个工具还处于测试阶段,所以微软并没有在仓库里发布安装包,只能自己下载代码然后在 Visual Studio 里编译……
现在已经可以从 Microsoft Store 下载 Windows Terminal 的测试版了。
“自行编译”的操作实在是太麻烦了(っ’-‘)╮然而总会有好人愿意将自己编译好的安装包分享出来~小透明使用的是 IT 之家的 @西木野羰基 分享的预编译版(这里是原贴)
因为 Windows Terminal 的开发正处于测试阶段(据说今年冬天会推出正式版?),并且这里使用的是非官方的预编译版,所以无法保证软件不存在致命漏洞或“私货”。
首先在这里下载由分享者自己签名的证书。(“Download” 的按钮应该都看得见吧?)
双击打开后选择“安装证书”,存储位置选“本地计算机”,然后选择“将所有的证书都放入下列存储”,浏览存储位置,选择“受信任的根证书颁发机构”,然后点几次“下一步”。
接下来在这里下载软件安装包本体。点击最上面的 “CI build”,然后进入 “Summary” 选项卡,点击 “drop” 开始下载。
另外还要去系统设置的“系统和安全”“开发者选项”中选择“开发人员模式”,安装结束后即可改回默认的选项“旁加载选项”。
从下载的 drop.zip
压缩包中解压出名字包含 CascadiaPackage
的文件夹,在 Add-AppDevPackage.ps1
这个文件上右键,选择“使用 PowerShell 运行”,稍后即可完成安装。
如果开始菜单里出现了“Windows Terminal (Dev Build)”,就算是安装成功了~٩(ˊᗜˋ*)و
输入的 emoji 还是显示为两个问号,但输出还是可以正常显示的。资瓷显示 emoji,这是坠吼滴!
另外窗口上方出现了选项卡,可以通过快捷键 Ctrl+T 或 Ctrl+Shift+[数字键] (快捷键可修改)或点击最右边有加号图标的“添加窗口”按钮新建一个不同类型的控制台窗口。
修改配置文件
虽然 Windows Terminal 已经安装上了,但是和宣传视频上的效果还是有很大的差距画面仅供参考,请以实物为准。而且虽然有个 “Settings” 的按钮摆在那里,但是目前并未加入设置界面,所以点下去并没有什么用也只会直接打开配置文件用来手写配置,小透明刚装上的时候还以为是没有安装好(╯‵□′)╯︵┻━┻
目前想要魔改软件设置的话,只能自行修改配置文件 profile.json
,一般是保存在这个位置:
- 上面的预编译版
%LocalAppData%\Packages\WindowsTerminalDev_8wekyb3d8bbwe\RoamingState\profiles.json
- Microsoft Store 版:
%LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState\profiles.json
这个文件里面保存的是 JSON 格式的配置数据,可以用记事本打开,直接编辑~_(:△」∠)_
以下是 profile.json
的内容示例,这里会将设置命令行配置的 profiles
、设置主题配色的 schemes
和设置快捷键的 keybindings
拆分出来单独说明,globals
剩下的部分称为“全局设定”(´゚ω゚`)
{
"globals":
{
"defaultProfile": "{c1491760-c502-57a1-b9bf-696a5f735a34}",
"initialRows": 30,
"initialCols": 120,
"alwaysShowTabs": false,
"showTerminalTitleInTitlebar": true,
"showTabsInTitlebar": false,
"requestedTheme": "system",
"profiles": [
{
"startingDirectory": "%USERPROFILE%",
"guid": "{c1491760-c502-57a1-b9bf-696a5f735a34}",
"name": "PowerShell",
"icon": "C:\\Users\\Admin\\AppData\\Local\\Packages\\WindowsTerminalDev_8wekyb3d8bbwe\\RoamingState\\icons8-powershell-64.png",
"colorscheme": "One Half Dark",
"historySize": 9001,
"snapOnInput": true,
"cursorColor": "#FFFFFF",
"cursorShape": "vintage",
"commandline": "powershell.exe",
"fontFace": "Consolas",
"fontSize": 14,
"acrylicOpacity": 0.8,
"useAcrylic": true,
"closeOnExit": true,
"padding": "0, 0, 0, 0"
},
{
...
}
],
"schemes": [
{
"name": "Campbell",
"foreground": "#F2F2F2",
"background": "#0C0C0C",
"black": "#0C0C0C",
"red": "#C50F1F",
"green": "#13A10E",
"yellow": "#C19C00",
"blue": "#0037DA",
"purple": "#881798",
"cyan": "#3A96DD",
"white": "#CCCCCC",
"brightBlack": "#767676",
"brightRed": "#E74856",
"brightGreen": "#16C60C",
"brightYellow": "#F9F1A5",
"brightBlue": "#3B78FF",
"brightPurple": "#B4009E",
"brightCyan": "#61D6D6",
"brightWhite": "#F2F2F2"
},
{
...
}
],
"keybindings": [
{
"keys": [
"ctrl+w"
],
"command": "closeTab"
},
{
...
}
]
}
}
全局设定
名称 | 类型 | 说明 |
---|---|---|
defaultProfile | string | 默认使用的命令行配置的 GUID。 |
initialRows | number | 命令行窗口的宽度,以字符为单位。 |
initialCols | number | 命令行窗口的高度,以字符为单位。 |
alwaysShowTabs | boolean | 在只有一个命令行窗口时,是否显示选项卡。 |
showTerminalTitleInTitlebar | boolean | 是否在窗口标题栏显示命令行程序的路径,设为 false 则固定显示 “Windows Terminal”。 |
showTabsInTitlebar | boolean | 是否将选项卡显示在窗口标题栏的位置,设为 true 会无视 alwaysShowTabs 的设定,在标题栏显示选项卡。 |
requestedTheme | string | Windows Terminal 窗口的颜色主题,light 和 dark 分别对应浅色和深色主题,system 是与系统设置相同。 |
命令行配置
名称 | 类型 | 说明 |
---|---|---|
startingDirectory | string | 初始时的当前目录。 |
guid | string | 命令行配置的 GUID,格式形如 {c1491760-c502-57a1-b9bf-696a5f735a34} 。 |
name | string | 命令行配置的名称,显示在“添加窗口”按钮中。 |
icon | string | 命令行配置的图标路径,显示在选项卡和“添加窗口”按钮中。路径中的斜杠 \ 要转义写成 \\ 。 |
background | string | 窗口背景的颜色,格式为 #RRGGBB 。会覆盖主题配色的背景色。 |
colorscheme | string | 使用的主题配色的名称。 |
historySize | number | 保存命令记录的数量。输入命令时按 ↑ 或 ↓ 就可以使用历史记录中的命令。 |
snapOnInput | boolean | ??? |
cursorColor | string | 光标的颜色。 |
cursorShape | string | 光标的形状,可以设定的值为 emptyBox 、filledBox 、bar 、vintage 、underscore 。显示效果参见下图。 |
commandline | string | 新建命令行选项卡时运行的命令。 |
fontFace | string | 窗口使用的字体,支持 TTF 和 OTF 格式。 |
fontSize | number | 窗口使用的字体大小。 |
useAcrylic | boolean | 是否使用亚克力背景。 |
acrylicOpacity | number | 一个 0 到 1 的小数,设定亚克力背景的透明度。 |
backgroundImage | string | 设定使用的背景图片的路径,背景图片不能和亚克力同时使用。 |
backgroundImageOpacity | number | 一个 0 到 1 的小数,设定背景图片的透明度。(不过图片下面的背景色固定为白色……也就是说这个参数只能用来将背景图片变量而不是变暗) |
backgroundImageStretchMode | string | 背景图片的拉伸方式,可以设定的值为 fill 、uniform 、uniformToFill 、none 。 |
closeOnExit | boolean | 使用 exit 等命令退出命令行程序后,是否关闭命令行选项卡。 |
padding | string | 按照 10, 20, 30, 40 的格式输入四个数值,设定命令行窗口的左上右下四个方向的边距,单位为像素。 |
不同光标形状的显示效果对比:
使用/不使用亚克力背景的显示效果对比:
主题配色
名称 | 类型 | 说明 |
---|---|---|
name | string | 主题配色的名称。 |
foreground | string | 前景色。 |
background | string | 背景色。 |
black | string | 对应 System.ConsoleColor 枚举中的 Black 。 |
red | string | 对应 System.ConsoleColor 枚举中的 DarkRed 。 |
green | string | 对应 System.ConsoleColor 枚举中的 DarkGreen 。 |
yellow | string | 对应 System.ConsoleColor 枚举中的 DarkYellow 。 |
blue | string | 对应 System.ConsoleColor 枚举中的 DarkBlue 。 |
purple | string | 对应 System.ConsoleColor 枚举中的 DarkMagenta 。 |
cyan | string | 对应 System.ConsoleColor 枚举中的 DarkCyan 。 |
white | string | 对应 System.ConsoleColor 枚举中的 Gray 。 |
brightBlack | string | 对应 System.ConsoleColor 枚举中的 DarkGray 。 |
brightRed | string | 对应 System.ConsoleColor 枚举中的 Red 。 |
brightGreen | string | 对应 System.ConsoleColor 枚举中的 Green 。 |
brightYellow | string | 对应 System.ConsoleColor 枚举中的 Yellow 。 |
brightBlue | string | 对应 System.ConsoleColor 枚举中的 Blue 。 |
brightPurple | string | 对应 System.ConsoleColor 枚举中的 Magenta 。 |
brightCyan | string | 对应 System.ConsoleColor 枚举中的 Cyan 。 |
brightWhite | string | 对应 System.ConsoleColor 枚举中的 White 。 |
在 PowerShell 中,使用 Write-Host
输出时可以通过 ForegroundColor
和 BackgroundColor
两个属性指定输出的前景色/背景色,这两个属性的数据类型就是 System.ConsoleColor
。
自带的主题配色之二,“One Half Light” 和 “One Half Dark” 的效果图:
快捷键
名称 | 类型 | 说明 |
---|---|---|
keys | array | 快捷键的键位,可以是 Ctrl、Shift、Alt 和字母、数字、方向键的结合,例如 ctrl+shift+alt+up 。虽然这一项的数据类型是(字符串类型的)数组,但是只能设定一个键位,否则快捷键无效。 |
command | string | 快捷键对应的操作名称。 |
下面列出快捷键的操作名称,参考了源代码的这一部分。名称中的 *
指的是数字 0
到 8
。
名称 | 说明 |
---|---|
newTab | 以第一个命令行配置打开新的标签页。 |
newTabProfile* | 以第 * 个命令行配置打开新的标签页。 |
closeTab | 关闭当前标签页。 |
prevTab | 显示上一个标签页。 |
nextTab | 显示下一个标签页。 |
scrollUp | 向上滚动一行。 |
scrollUpPage | 向上滚动一页。 |
scrollDown | 向下滚动一行。 |
scrollDownPage | 向下滚动一页。 |
switchToTab* | 显示第 * 个标签页。 |
increaseFontSize | |
decreaseFontSize | |
newWindow | |
closeWindow | |
openSettings |
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。不允许内容农场类网站、CSDN 用户和微信公众号转载。
本文作者:✨小透明・宸✨
本文链接:https://akarin.dev/2019/05/26/windows-terminal/