Powershell 美化——oh-my-posh

为什么想到干这个事呢?这两天装了 WSL,但是 PowerShell 的配色实在让我无法忍受,有时候甚至到了看不清字的程度。经过一番谷歌,我发现 PowerShell 也是可以变得很好看的。下面我就记录一下我这次美化的过程。

更改脚本执行策略

如果你没有打开运行远程签名的脚本文件则会提示你输入下面的指令:

1
Set-ExecutionPolicy RemoteSigned -scope CurrentUser

concfg

lukesampson/concfg 可以用来导入和导出Windows控制台的设置。

先安装 scoop

1
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

然后安装 concfg

1
scoop install concfg

添加字体

下载并安装字体

我选择 sarasa gothic 系列字体,可以在 sarasa gothic 下载,然后右键安装字体即可。

修改注册表

为了能够在配置里使用,还需要修改注册表。

WIN+R 打开运行,输入 regedit 打开注册表编辑器。

HKEY_LOCAL_MACHINE >> SOFTWARE >> Microsoft >> Windows NT >> CurrentVersion >> Console >> TrueTypeFont 路径下新增一个字符串项目,名称任意,内容为 Sarasa Term SC

应用配置

新建一个 Ttheme.cfg 文件,键入如下内容,也可以根据自身需求自行修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
"cursor_size": "small",
"command_history_length": 50,
"num_history_buffers": 4,
"command_history_no_duplication": false,
"quick_edit": true,
"insert_mode": true,
"load_console_IME": true,
"font_face": "Sarasa Term SC",
"font_true_type": true,
"font_size": "0x18",
"font_weight": 0,
"screen_buffer_size": "80x3000",
"window_size": "80x20",
"fullscreen": false,
"popup_colors": "cyan,white",
"screen_colors": "white,black",
"black": "#1E1E1E",
"dark_blue": "#2472C8",
"dark_green": "#0DBC79",
"dark_cyan": "#11A8CD",
"dark_red": "#CD3131",
"dark_magenta": "#BC3FBC",
"dark_yellow": "#E5E510",
"gray": "#E5E5E5",
"dark_gray": "#666666",
"blue": "#3B8EEA",
"green": "#23D18B",
"cyan": "#29B8DB",
"red": "#F14C4C",
"magenta": "#D670D6",
"yellow": "#F5F543",
"white": "#E5E5E5"
}

在所在文件夹处打开 PowerShell,输入 concfg import Ttheme.cfg -n 后开启新 PowerShell 窗口可以看到显示效果已经改变。

注:使用过程中发现,更新 git for windows 后,字体会出现问题,不知道是什么原因。出现这个问题也不用担心,只需要重新执行一遍上面这个应用配置的过程即可。

oh-my-posh

git for windows

需要安装 git for windows 来在系统环境中添加 git 环境。

在此不多赘述。

允许执行任意脚本

1
Set-ExecutionPolicy Bypass

安装 posh-git

posh-gitoh-my-posh 的依赖。

1
Install-Module posh-git -Scope CurrentUser

安装 oh-my-posh

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

启用 oh-my-posh

启用 oh-my-posh

1
Import-Module oh-my-posh

但这还只是手动启用,所以我们需要设置 profile 文件让它自动启用。

$profile 可以让 PowerShell 告诉我们这个文件的路径是什么。

编辑该文件,如果不存在则手动创建,再其中输入

1
Import-Module oh-my-posh

以后,都将会自动启用 oh-my-posh

设置主题

我选择了 Agnoster 主题。

输入如下命令

1
Set-Theme Agnoster

显示效果如下,我认为是十分美观的。

其他可选主题有 AgnosterAvitDarkbloodFishHonukaiParadoxSorintehrob,可自行选择。

后话

至此,美化完成,相比之前的蓝底 PowerShell,我自认为已经好看了很多。我在 WSL 里也安装了 oh-my-zsh 可以说是完美衔接了。

您的支持将是对我最好的鼓励!