PowerShell 美化

记录新版 PowerShell 美化过程。

可以在微软商店 (Microsoft Store) 搜索 Windows Terminal 安装。

商城搜索结果会有多种版本的Windows Terminal (以下将简称为Terminal),不知选哪个的话,可直接点击此处链接 Windows Terminal - 微软商店,然后点击获取,弹出框中同意打开电脑的微软商城,跳转到软件主页后,直接安装即可。安装过程无需做任何选项与设置,就像在手机上的软件商城中搜索软件进行安装一样简单。

当然,如果想体验最新功能,可以去官方Github发布页获取最新预览版本:Windows Terminal - Github

安装完后的 Windows Terminal,可以在系统开始菜单找到并打开。先看一下美化前的样子。

https://i.loli.net/2021/08/19/bTVWEIBykK74J3Y.png
美化之前的PowerShell

朴实无华,看着其实也还不错。

可以看到Terminal的多窗口是标签化管理的,大为方便软件内的切换。而菜单栏上右侧的 +号可以快速开启一个默认类型的窗口。下拉菜单可以选择各类终端窗口。

然后看一下终端显示的内容。因为要美化的是PowerShell,我便打开了一个Windows PowerShell窗口,键入命令 $PSVersionTable后回车,可以看到当前PowerShell的版本号为5.1,仍然是老版本。之后我们要将其换成 开源跨平台的船新版本。请看下文~

微软商城搜索 PowerShell Preview ,安装即可。官方渠道,可以自动更新,无需重复配置环境。

安装完成后,重新打开 Terminal。

采用此种方式的话,之后需要自己手动下载新版本安装包,并重新进行后续的美化配置。

船新版本在哪里?当然看准官方发布渠道,我选了最新预览版:PowerShell

可以观察到,曾经的PowerShell 全名为 Windows PowerShell,但是现在去掉了前面的Windows,只留PowerShell一词;另外发布页的 Assets中也确实提供了各种平台的版本。这无疑是名副其实的跨平台了。

言归正传,从上面官方发布页中,我选择了 7.2.0-preview-win-x64 版本的msi安装包。下载下来安装包后,直接双击运行,会经历以下步骤,最后还有一个对话框点击install即可。

这个船新版本的船新 Logo 灰常 Cyber 的说。

20210819231541

如果前面从Microsoft Store安装的PowerShell,一般会自动添加到 Temianl 中。如果没有的话,按照下面步骤自行添加即可。

打开 Terminal,点开菜单栏右侧下拉菜单,点击设置;或者直接按快捷键 Ctrl + ,,调出设置界面,按照下图步骤添加我们安装的 PowerShell 到Terminal中:

20210819233300

从 Microsoft Store 安装的 PowerShell,安装目录为:"C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\Microsoft.PowerShellPreview_8wekyb3d8bbwe\pwsh.exe",将此目录添加到上图的命令行位置即可。

注意添加完后,点击保存

Terminal无需重启即可即时更新配置,从下拉菜单中看到 PowerShell 7 已经添加成功。

20210819233953

下面开始我们的美化之路。

方法一:(更新)直接在 Microsoft Store 中搜索 oh-my-posh 并安装。

方法二:打开 Terminal,然后打开一个 PowerShell 窗口。命令行中执行以下命令安装 oh-my-posh 模块:

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

安装完成后,执行 Get-PoshThemes 命令,将以各自主题的样式列出支持的主题。

Snipaste_2021-08-20_00-51-01

其中有一些乱码,这实际是一些图标,需要安装字体包来提供图标支持,具体方法后续给出。

先进行主题设置。选择主题可以从以上命令的返回结果中选择自己中意的,然后执行以下命令就能进行安装:

1
Set-PoshPrompt -Theme 主题名字

我们需要配置 PowerShell 的启动脚本,以使主题永久生效。执行以下命令打开脚本文件。若提示文件不存在,则同意创建。

1
notepad $Profile

然后在打开的脚本文件中输入以下命令:

1
2
Import-Module oh-my-posh
Set-PoshPrompt -Theme agnosterplus # 此处将agnosterplus替换为自己选主题名即可
20210820015214

如果从 Microsoft Store 安装的 oh-my-posh,则在以上脚本文件中输入以下命令:

1
2
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\agnosterplus.omp.json" | Invoke-Expression 
# 此处将agnosterplus替换为自己选的主题即可

之后重启即可看到效果。

为了对主题所需的图标符号提供支持,需要 Nerd Fonts 类字体,可以到字体集合主页Nerd Fonts 挑选喜欢的字体,可以预览字体效果。选好后直接下载字体文件即可。

20210820011124

经过一番查看,我最终凭感觉选择了Go Mono

将下载的压缩包直接解压缩后,是一套字体文件,由于不需要其他用途,此处只安装正体的字体。选择不带Bold(加粗)不带Italic(斜体)的Windows Compatible字体文件,直接双击安装。

20210820011818

弹出的对话窗口,展示了字体样式,直接点击左上角安装即可。

20210820011909

字体已经安装好,接下来在 Terminal 下按Ctrl + ,打开设置,从左侧配置文件中选择到自己新建的PowerShell,我的是 PowerShell 7 ,然后右侧选择外观选项卡,找到字体下拉菜单,选择自己所选的字体名字即可,我的为 GoMono NF

20210820013609

字体名可以从系统字体设置查看到,开始->设置->搜索字体设置->搜索字体关键字’GoMono’。可以看到我的字体名为GoMono NF。记住这个字体名,之后 VS Code 的终端 PowerShell 配置中会再次用到。

20210820013917

只需打开 Terminal 的设置,从左侧配置文件中选择到自己新建的PowerShell,然后右侧选择外观选项卡,找到背景图像设置项,浏览选择图片。选好图片后,下面会多出一些针对背景图的设置,包括模糊、透明、位置等,可以自行调整。

20210820015908

VS Code 内按快捷键 Ctrl + Shift + `,则在编辑窗口下面会打开一个(默认CMD)终端窗口。VS Code中已经自动集成了 CMD 和 Windows PowerShell。但我需要:1. 将新版的 PowerShell Preview 集成进来;2. 将其设置为默认打开;3. 更改终端字体,以提供主题包支持。

首先Ctrl + ,打开设置,然后搜索Terminal,找到Terminal > Integrated > Profiles: Windows的项,点击下面的在settings.json中编辑

20210820202923

之后在打开的settings.json文件下,在terminal.integrated.profiles.windows项内按照以下红色框中代码的格式添加自己的 PowerShell 条目,其中的PowerShell 7 pre替换为自拟名字即可,path项内的路径替换为自己的 PowerShell 安装路径。然后保存并关闭文件。

20210820202519

如果是从Microsoft Store安装的 PowserShell,上图中的 path 字段为:"C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\Microsoft.PowerShellPreview_8wekyb3d8bbwe\pwsh.exe"

通过以上操作,我们已经为终端窗口添加了新的 PowerShell。接下来将其设置为默认打开。

仍然Ctrl + ,打开设置,搜索Terminal,找到Terminal > Integrated > Default Profile: Windows项,下拉选项中选择我们上一步添加的 PowerShell 的名字PowerShell 7 pre

20210820202020

在设置页,搜索Terminal Font,找到Terminal > Integrated > Font Family项,将其值设置为我们前面安装的字体文件名 GoMono NF,由于我选的这款字体本身字号挺大,所以我还将字号改为了 12

20210820200321

经过以上配置,最终的效果如下图。

20210820201644