欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows Terminal添加、使用主题

程序员文章站 2022-07-02 22:31:55
...

此方法在Windows 10 版本1909上通过Microsoft Store中安装的Windows Terminal测试通过,其它版本可能有些许区别。

添加主题

Windows Terminalprofiles.json中读取配置,初始状态下配置文件很“简陋”:

// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{XXX}",
    "profiles": [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{XXX}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{XXX}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{XXX}",
            "hidden": false,
            "name": "Debian",
            "source": "Windows.Terminal.Wsl",
            "colorScheme": "Builtin Solarized Light"
        },
        {
            "guid": "{XXX}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        }
    ],
    // Add custom color schemes to this array
    "schemes": [],
    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

我的配置文件的路径在~\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\profiles.json,或者也可以通过Windows Terminal页面上点击下拉箭头内的Settings打开配置文件(也可以通过快捷键Ctrl+,打开配置文件)。

可以看到,如果想要添加主题,只需要在schemes数组内添加相应主题即可,主题的格式如下:

{
    "name": "Builtin Solarized Light",
    "black": "#073642",
    "red": "#dc322f",
    "green": "#859900",
    "yellow": "#b58900",
    "blue": "#268bd2",
    "purple": "#d33682",
    "cyan": "#2aa198",
    "white": "#eee8d5",
    "brightBlack": "#002b36",
    "brightRed": "#cb4b16",
    "brightGreen": "#586e75",
    "brightYellow": "#657b83",
    "brightBlue": "#839496",
    "brightPurple": "#6c71c4",
    "brightCyan": "#93a1a1",
    "brightWhite": "#fdf6e3",
    "background": "#fdf6e3",
    "foreground": "#657b83"
}

更改主题只需将上面对应的颜色更改掉即可,添加多个主题注意将名字替换一下。

使用主题

使用主题非常方便,只要在profiles数组对应项中添加一行colorScheme,其值是上面添加主题的name字段值:

"profiles": [
    {
        "guid": "{XXX}",
        "name": "Windows PowerShell",
        "commandline": "powershell.exe",
        "hidden": false,
        "colorScheme": "Builtin Solarized Light"
    }
]

(自动)获取主题

上面提到如何添加主题,那对于我们这些不懂配色的怎么办呢?我们可以在https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/windowsterminal中找到超多主题,我们可以将相应的主题文件内容按照上文添加主题所述添加进入配置文件内即可。

当然你也可以通过脚本将这些主题获取到,然后写入配置文件内,如https://andrewpla.dev/Adding-New-Color-Schemes-To-Windows-Terminal/一文就提供了一个PowerShell脚本来做这个工作,不过他的脚本有些小问题:读取配置文件时没有将注释过滤掉,所以大家在复制其脚本时,可能需要将

$profile = Get-Content $ProfilePath | ConvertFrom-Json

替换为:

$profile = (Get-Content $ProfilePath) -replace '(?m)(?<=^([^"]|"[^"]*")*)//.*' -replace '(?ms)/\*.*?\*/' | Out-String | ConvertFrom-Json

如果在PowerShell内执行脚本时出现不允许执行脚本的错误,可以通过管理员权限打开PowerShell窗口执行:

PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned

然后在执行策略更改提示询问处输入A即可启用PowerShell执行脚本的能力,然后重开一个PowerShell窗口再次执行上面的PowerShell脚本。

更改光标颜色

如果发现主题更改之后,光标消失了,这是因为默认光标颜色和主题背景颜色很接近,这时候可以通过修改光标颜色解决:

"profiles": [
    {
        "guid": "{XXX}",
        "name": "Windows PowerShell",
        "commandline": "powershell.exe",
        "hidden": false,
        "colorScheme": "Builtin Solarized Light",
        "cursorColor": "#073642"  // 更改一个和背景色对比度比较高的颜色
    }
]