Windows Terminal/PowerShell 美化手记

物品到手,美化起走。

微软发布了最新的 Windows Terminal 正式版,看着还不错,支持 Windows 命令行、Linux SSH,于是从商店中搜索下载了。随手度娘和知乎了一下,发现可以自由定制一些东西,于是开始乐此不疲的折腾,最终的目的达到类似 Linux 上 oh-my-zsh 的效果。

字体

限于 PowerShell 的渲染机制,要想更好的支持中文字体,一般安装 更纱黑体 或者 Powerline 字体。要注意的是两者都托管在 GitHub 上,网速上有一定的要求,而且 更纱黑体 的压缩包比较大。Powerline 可以通过 gitee 下载或者直接使用命令 git clone https://github.com/powerline/fonts.git --depth=1

安装

oh-my-posh

通过搜索得知,oh-my-posh 能够在 Windows 上实现我们想要的效果,因此运行 Win+X,选择 PowerShell 管理员模式,依次执行每组命令:

1
2
3
4
5
6
7
Set-ExecutionPolicy Bypass

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
notepad $PROFILE

在打开的 .ps1 文件中,加入以下内容:

Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Agnoster

最后一句为设置主题,可以在保存后在 powershell 终端中,键入 Set-Theme,空格后使用 TAB,就可以提示出 oh-my-posh 自带的主题了,回车即可预览,当然也可以去主页看截图。

安装字体

安装字体比较简单,更纱黑体 解压后,直接将 ttf 拷贝到 C:\Windows\Fonts 即可;而 Powerline 可以在 PowerShell 管理员模式 切换到 clone 完成的文件夹中,执行 ./install.ps1 即可。

设置

PowerShell

完成后,我们可以在 PowerShell 的属性中,修改字体,需要注意的是,笔者这里没有看到 Powerline 字体,因此使用了 等距更纱黑体 SC,完美支持 Git 状态显示以及中文字符。

Terminal

在 下拉菜单中,选择 Setting/设置,系统会调用默认的文本编辑器打开配置文件,然后我们可以找资源进行美化了,🎉。如果动手能力强,可以用微软开源发布的 ColorTool 来自己进行配色,点此下载。另一个就是利用在线的主题平台来美化界面,比如windows terminal themesterminalsplash。一般点击 copy 然后添加到 schemes 中即可,有图片的需要添加到对应的目录,注意用 , 隔开:
图片来自少数派

当然也可以针对每个tab自定义背景图片,设置亚克力纹理 useAcrylic,背景透明度等:

tB3DN8.md.png

使用

使用的话,PowerShell 已经在前面提到,用 Win+X 即可;Terminal 的话,使用 Win+R,然后输入 wt 即可呼出。当然,右键菜单或者按 SHIFT 的话,需要对注册表做一下修改,拷贝以下文件另存为 cfz.reg,然后双击执行即可:

1
2
3
4
5
6
7
8
9
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"
Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\你的用户名\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

wt_32.ico 可在这里下载,然后放入路径下即可。另外,需要在 Terminal 的配置文件中(即菜单->设置)的 profiles/defaults 下,加入 startingDirectory 配置,以便于在当前目录打开,而不是默认的启动目录:

1
2
3
4
5
6
7
"profiles": {
"defaults": {
// Put settings here that you want to apply to all profiles.

"startingDirectory": "."
},
}

补充一张效果图,感觉还不错的样子:
cfz

参考

-------------本文结束感谢您的阅读-------------