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 标签模式,无需新建多个终端
先看张效果图:

preview.png

下载地址

https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701?rtc=1&activetab=pivot:overviewtab

开始整活

Windows Terminal 和 VS Code 一样,使用 JSON 文件配置相关选项,然后又分为两个文件:默认配置文件和自定义配置文件。只需要参考默认配置,修改自定义配置文件就好。

开始前须知:
  1. 由于 Windows 默认使用记事本打开 JSON 文件,在这之前,需要修改打开方式为编辑器。新建一个文本文件,修改后缀为 .json,然后右键-打开方式-xxx编辑器。
  1. JSON里的文件路径的反斜杠 '\' 需要被转义才能被识别,因此,需要换成 '\\'
  1. 后续部分操作需要修改文件后缀。如果电脑文件后缀被隐藏了,可以通过 任意文件夹 -> 顶部“查看” -> 勾选“文件扩展名” 显示

打开终端,点击顶部 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 里的效果如下(左侧效果):

亚克力.png

设置如下:

// 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"

image

怀旧风格

这是一个很复古的风格,模拟以前那种大块头电脑的 CRT 显示器的的效果,文字具有扫描线和模糊文本边缘。这是一个试验性功能,后续不保证它会持续存在。

// profiles 里的 defaults:
"experimental.retroTerminalEffect": true  

image

更换颜色主题

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"
      }
  ]
}

image

添加 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

clipboard.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"

将臣
2.3k 声望107 粉丝

学习、分享技术