2020 年了,还没用上最新最炫酷的终端模拟器 Windows Terminal 吗?
简介
Windows Terminal是微软于 Build 2019 大会上所公布的面向Windows10的新命令行程序。用户可以通过Microsoft应用商店安装,或从Github下载源码自行编译安装,最低系统要求为Windows 10 Build 18362版本。这一程序把目前 Windows 上的 PowerShell、CMD 以及 Windows Linux 子系统(WSL)三大环境实现了统一。
优势
- 现代化
可DIY
的界面,抛弃一成不变的终端样式 - 完整的字体字符渲染机制(包括 Emoji、中文)
- 和 Windows 统一的 Fluent 设计风格
- GPU 加速
- 同时支持 PowerShell、CMD 以及 Windows Linux 子系统(WSL)
- 默认 Tab 标签模式,无需新建多个终端
先看张效果图:
下载地址
https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701?rtc=1&activetab=pivot:overviewtab
开始整活
Windows Terminal 和 VS Code 一样,使用 JSON 文件配置相关选项,然后又分为两个文件:默认配置文件和自定义配置文件。只需要参考默认配置,修改自定义配置文件就好。
开始前须知:
- 由于 Windows 默认使用记事本打开 JSON 文件,在这之前,需要修改打开方式为编辑器。新建一个文本文件,修改后缀为 .json,然后右键-打开方式-xxx编辑器。
- JSON里的文件路径的反斜杠 '\' 需要被转义才能被识别,因此,需要换成 '\\'
- 后续部分操作需要修改文件后缀。如果电脑文件后缀被隐藏了,可以通过 任意文件夹 -> 顶部“查看” -> 勾选“文件扩展名” 显示
打开终端,点击顶部 tab 旁边的向下箭头,会看到“设置”选项,使用 alt + 左键 打开默认配置文件,再次点击箭头,直接左键“设置”,就会打开自定义配置文件。
默认配置文件是自动生成的只读文件,对其修改不会生效
先来看看默认配置文件框架:
{
"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
// 启动设置,宽高模式
"initialCols": 120,
"initialRows": 30,
"launchMode": "default",
// Selection,更换复制模式
"copyOnSelect": false,
"copyFormatting": true,
"wordDelimiters": " /\\()\"'-.,:;<>~!@#$%^&*|+=[]{}~?\u2502",
// Tab UI
"alwaysShowTabs": true,
"showTabsInTitlebar": true,
"showTerminalTitleInTitlebar": true,
"tabWidthMode": "equal",
// Miscellaneous,杂项
"confirmCloseAllTabs": true,
"theme": "system",
"rowsToScroll": "system",
"snapToGridOnResize": true,
// 可以启动哪些终端
"profiles": [],
// 可选样式列表
"schemes": [],
// 快捷键列表
"keybindings": []
}
自定义配置文件相比之下,在 profiles 里多了 defaults 对象字段,里面放置影响所有终端的设置
"defaults":
{
// Put settings here that you want to apply to all profiles.
}
亚克力效果
首先,是实现亚克力效果。所谓的亚克力,是 win10 的 Fluent Design 设计语言里的一种效果,个人感觉就是一种控制透明度的纯色背景,其主要目的是增加层次感。在 win10 里的效果如下(左侧效果):
设置如下:
// profiles 里的 defaults:
"useAcrylic": true,
// 默认 0.5,接收浮点值为 0-1
"acrylicOpacity": 0.5
自定义背景
可以配置背景颜色、图片、透明度等
// profiles 里的 defaults:
// 如果配置了背景图片,背景颜色将会被覆盖
"background": "#000",
// 背景图片可以是 .jpg、.png 或 .gif 文件
// 是的,背景图片可以是动图!
"backgroundImage": "D:\\ASUS\\Pictures\\ABT40A3B7B4954CF482CA868687C09348666E27CEF9726FDABBF98F54352EB8EAE1.jpg",
// 背景图片透明度
"backgroundImageOpacity": 0.7,
// 背景图片拉伸模式,接受 "none"、"fill"、"uniform"、"uniformToFill",默认"uniformToFill"
"backgroundImageStretchMode": "uniformToFill"
// 背景图片位置,接受 "center"、"left"、"top"、"right"、"bottom"、"topLeft"、"topRight"、"bottomLeft"、"bottomRight",默认"center"
"backgroundImageAlignment": "center"
怀旧风格
这是一个很复古的风格,模拟以前那种大块头电脑的 CRT 显示器的的效果,文字具有扫描线和模糊文本边缘。这是一个试验性功能,后续不保证它会持续存在。
// profiles 里的 defaults:
"experimental.retroTerminalEffect": true
更换颜色主题
Windows Terminal 内置了几套主题,即 schemes 里的对象,我们可以直接使用,也可以自定义主题,或者从 https://iterm2colorschemes.com/ 里挑选效果(可能需要科学冲浪),从https://github.com/mbadolato/iTerm2-Color-Schemes 里的 windowsterminal 文件夹找到对应的内容复制到 schemes 里
例子:
// 给每种终端分别设置主题
// profiles 里的 lists:
lists: [
{
// Make changes here to the powershell.exe profile.
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
// 默认配置里的主题
"colorScheme": "Campbell",
"hidden": false
},
{
// Make changes here to the cmd.exe profile.
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "命令提示符",
"commandline": "cmd.exe",
// 自定义主题
"colorScheme": "3024 Day",
"hidden": false
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": true,
"name": "Azure Cloud Shell",
// 自定义主题
"colorScheme": "3024 Night",
"source": "Windows.Terminal.Azure"
}
]
"schemes": [
{
"name": "3024 Day",
"black": "#090300",
"red": "#db2d20",
"green": "#01a252",
"yellow": "#fded02",
"blue": "#01a0e4",
"purple": "#a16a94",
"cyan": "#b5e4f4",
"white": "#a5a2a2",
"brightBlack": "#5c5855",
"brightRed": "#e8bbd0",
"brightGreen": "#3a3432",
"brightYellow": "#4a4543",
"brightBlue": "#807d7c",
"brightPurple": "#d6d5d4",
"brightCyan": "#cdab53",
"brightWhite": "#f7f7f7",
"background": "#f7f7f7",
"foreground": "#4a4543"
},
{
"name": "3024 Night",
"black": "#090300",
"red": "#db2d20",
"green": "#01a252",
"yellow": "#fded02",
"blue": "#01a0e4",
"purple": "#a16a94",
"cyan": "#b5e4f4",
"white": "#a5a2a2",
"brightBlack": "#5c5855",
"brightRed": "#e8bbd0",
"brightGreen": "#3a3432",
"brightYellow": "#4a4543",
"brightBlue": "#807d7c",
"brightPurple": "#d6d5d4",
"brightCyan": "#cdab53",
"brightWhite": "#f7f7f7",
"background": "#090300",
"foreground": "#a5a2a2"
}
]
毛玻璃效果
如果怀念 win7 时代的毛玻璃效果,看看微软专门放出的毛玻璃主题配置吧:
注意:需要先去掉全局那些冲突的效果,例如 dark 主题、黑色背景、背景图片等
{
"theme": "light",
"profiles": [
{
"name" : "PowerShell",
"source" : "Windows.Terminal.PowershellCore",
"acrylicOpacity": 0.7,
"colorScheme" : "Frost",
"cursorColor" : "#000000",
"fontFace" : "Cascadia Code PL",
"useAcrylic": true
}
],
"schemes": [
{
"name" : "Frost",
"background" : "#FFFFFF",
"black" : "#3C5712",
"blue" : "#17b2ff",
"brightBlack" : "#749B36",
"brightBlue" : "#27B2F6",
"brightCyan" : "#13A8C0",
"brightGreen" : "#89AF50",
"brightPurple" : "#F2A20A",
"brightRed" : "#F49B36",
"brightWhite" : "#741274",
"brightYellow" : "#991070",
"cyan" : "#3C96A6",
"foreground" : "#000000",
"green" : "#6AAE08",
"purple" : "#991070",
"red" : "#8D0C0C",
"white" : "#6E386E",
"yellow" : "#991070"
}
]
}
添加 Git Bash 终端
要在 Windows Terminal 里打开 Git 终端,可以将 Git Bash 添加到 list 配置里
还可以添加 SSH 内置客户端,需要的可以自行搜索相关内容
"list": [
{
// guid 要唯一,这里略微改了一下最后的值
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6102}",
// 显示的终端名称
"name": "Git Bash",
// 终端地址
"commandline": "C:\\Program Files\\Git\\bin\\bash.exe",
// 终端图标
"icon": "C:\\Program Files\\Git\\git.png",
// 是否隐藏
"hidden": false
}
]
Git 图标地址: https://raw.githubusercontent.com/Jioho/img/master/ubuntu/git-icon.png
添加 Windows Terminal 到右键菜单
说了这么多,我们会发现,现在我们在目标文件夹右键,看不到 Windows Terminal 选项,不太方便。
要将其添加到右键菜单,需要修改 Windows 注册表
1、下载 Windows Terminal 图标并保存
地址: https://gitee.com/Jioho/img/r...
2、新建一个文本文件,粘贴这段内容:
注意:里面的图标和程序路径要换成本地电脑的实际路径
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="open with Windows terminal"
"Icon"="C:\\Users\\ASUS\\AppData\\Local\\Terminal\\terminal.ico"
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\ASUS\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"
3、保存并退出,修改文本文件后缀为 .reg ,双击执行
4、在自定义配置文件中, profiles -> defaults 里,添加
"startingDirectory": "./"
并保存
5、在任意文件夹右键测试
其他小技巧:
(1)更改复制方式
Windows Terminal 选择文本后,任意地方点击右键即可复制。如果已复制,右键则是粘贴。
通过如下修改,可以在选择文本后,就自动复制:
{
"copyOnSelect": true
}
(2)隐藏 Azure Clund Shell
Windows Terminal 默认的终端之一 Azure Clund Shell 对我们来说并不常用,可以将其隐藏,设置 profiles -> list 里的对应对象的 hidden 为 true 即可
(3)自定义 Tab 标题
Tab 标签默认显示终端名称,我们可以自定义显示标题
// profiles 的 defaults 或者 list 里:
"tabTitle": "Jerry's terminal"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。