Windows Terminal 的安装/配置修改|ω•`)

Author Avatar
✨小透明・宸✨ 2019-05-26 15:17:53
  • 在其它设备中阅读本文章

一年之后,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+TCtrl+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"
            },
            {
                ...
            }
        ]
    }
}

全局设定

名称类型说明
defaultProfilestring默认使用的命令行配置的 GUID。
initialRowsnumber命令行窗口的宽度,以字符为单位。
initialColsnumber命令行窗口的高度,以字符为单位。
alwaysShowTabsboolean在只有一个命令行窗口时,是否显示选项卡。
showTerminalTitleInTitlebarboolean是否在窗口标题栏显示命令行程序的路径,设为 false 则固定显示 “Windows Terminal”。
showTabsInTitlebarboolean是否将选项卡显示在窗口标题栏的位置,设为 true 会无视 alwaysShowTabs 的设定,在标题栏显示选项卡。
requestedThemestringWindows Terminal 窗口的颜色主题,lightdark 分别对应浅色和深色主题,system 是与系统设置相同。

命令行配置

名称类型说明
startingDirectorystring初始时的当前目录。
guidstring命令行配置的 GUID,格式形如 {c1491760-c502-57a1-b9bf-696a5f735a34}
namestring命令行配置的名称,显示在“添加窗口”按钮中。
iconstring命令行配置的图标路径,显示在选项卡和“添加窗口”按钮中。路径中的斜杠 \ 要转义写成 \\
backgroundstring窗口背景的颜色,格式为 #RRGGBB会覆盖主题配色的背景色。
colorschemestring使用的主题配色的名称。
historySizenumber保存命令记录的数量。输入命令时按 就可以使用历史记录中的命令。
snapOnInputboolean???
cursorColorstring光标的颜色。
cursorShapestring光标的形状,可以设定的值为 emptyBoxfilledBoxbarvintageunderscore。显示效果参见下图。
commandlinestring新建命令行选项卡时运行的命令。
fontFacestring窗口使用的字体,支持 TTF 和 OTF 格式。
fontSizenumber窗口使用的字体大小。
useAcrylicboolean是否使用亚克力背景。
acrylicOpacitynumber一个 01 的小数,设定亚克力背景的透明度。
backgroundImagestring设定使用的背景图片的路径,背景图片不能和亚克力同时使用
backgroundImageOpacitynumber一个 01 的小数,设定背景图片的透明度。(不过图片下面的背景色固定为白色……也就是说这个参数只能用来将背景图片变量而不是变暗)
backgroundImageStretchModestring背景图片的拉伸方式,可以设定的值为 filluniformuniformToFillnone
closeOnExitboolean使用 exit 等命令退出命令行程序后,是否关闭命令行选项卡。
paddingstring按照 10, 20, 30, 40 的格式输入四个数值,设定命令行窗口的左上右下四个方向的边距,单位为像素。

不同光标形状的显示效果对比:

使用/不使用亚克力背景的显示效果对比:

主题配色

名称类型说明
namestring主题配色的名称。
foregroundstring前景色。
backgroundstring背景色。
blackstring对应 System.ConsoleColor 枚举中的 Black
redstring对应 System.ConsoleColor 枚举中的 DarkRed
greenstring对应 System.ConsoleColor 枚举中的 DarkGreen
yellowstring对应 System.ConsoleColor 枚举中的 DarkYellow
bluestring对应 System.ConsoleColor 枚举中的 DarkBlue
purplestring对应 System.ConsoleColor 枚举中的 DarkMagenta
cyanstring对应 System.ConsoleColor 枚举中的 DarkCyan
whitestring对应 System.ConsoleColor 枚举中的 Gray
brightBlackstring对应 System.ConsoleColor 枚举中的 DarkGray
brightRedstring对应 System.ConsoleColor 枚举中的 Red
brightGreenstring对应 System.ConsoleColor 枚举中的 Green
brightYellowstring对应 System.ConsoleColor 枚举中的 Yellow
brightBluestring对应 System.ConsoleColor 枚举中的 Blue
brightPurplestring对应 System.ConsoleColor 枚举中的 Magenta
brightCyanstring对应 System.ConsoleColor 枚举中的 Cyan
brightWhitestring对应 System.ConsoleColor 枚举中的 White

在 PowerShell 中,使用 Write-Host 输出时可以通过 ForegroundColorBackgroundColor 两个属性指定输出的前景色/背景色,这两个属性的数据类型就是 System.ConsoleColor

自带的主题配色之二,“One Half Light” 和 “One Half Dark” 的效果图:

快捷键

名称类型说明
keysarray快捷键的键位,可以是 CtrlShiftAlt 和字母、数字、方向键的结合,例如 ctrl+shift+alt+up。虽然这一项的数据类型是(字符串类型的)数组,但是只能设定一个键位,否则快捷键无效。
commandstring快捷键对应的操作名称。

下面列出快捷键的操作名称,参考了源代码的这一部分。名称中的 * 指的是数字 08

名称说明
newTab以第一个命令行配置打开新的标签页。
newTabProfile*以第 * 个命令行配置打开新的标签页。
closeTab关闭当前标签页。
prevTab显示上一个标签页。
nextTab显示下一个标签页。
scrollUp向上滚动一行。
scrollUpPage向上滚动一页。
scrollDown向下滚动一行。
scrollDownPage向下滚动一页。
switchToTab*显示第 * 个标签页。
increaseFontSize增大字号?此功能未加入。
decreaseFontSize减小字号?此功能未加入。
newWindow打开新的 Windows Terminal 窗口?此功能未加入。
closeWindow关闭当前的 Windows Terminal 窗口?此功能未加入。
openSettings打开设置窗口?此功能未加入。

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
本文链接:https://akarin.dev/2019/05/26/windows-terminal/