tags: 软件配置/oh-my-posh windows/oh-my-posh

1. 前言

在Windows下,实现对powershell的美化,一般都使用oh-my-posh实现,类似于Linux和Mac下[[安装oh-my-zsh]]。

2. 安装

根据个人习惯,本安装教程为使用scoop安装。

1
scoop install oh-my-posh

或者

1
scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json

若未安装scoop,请移步 [[Windows下scoop的安装与配置]]

3. 激活 oh-my-posh

可以通过 $PROFILE 来获取 powershell 配置文件所在的位置。因此可以编辑此配置文件以激活 oh-my-posh。

1
notepad $PROFILE 

注意:
当以上语句报错时,说明不存在此配置文件,可以通过一下命令创建:

1
New-Item -Path $PROFILE -Type File -Force

此时,powershell 也可能会阻止本地脚本的运行。要解决这个问题,可以将powershell设置为只要求使用Set-ExecutionPolicy RemoteSigned远程签名对远程脚本进行签名,或者对配置文件进行签名。

然后在配置文件中,加上这句语句,然后重启:

1
oh-my-posh init pwsh | Invoke-Expression

若加上这句后,若依然没有生效,可以使用一下语句代替上面这句:

1
& ([ScriptBlock]::Create((oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" --print) -join "`n"))

接下来重启即可。

4. 处理乱码问题

当以上步骤全部完成,可能会出现大量乱码或者框框的问题。这种情况是由于电脑中没有安装相应的字体造成的。此时可以安装和配置相关的字体即可。

1
sudo oh-my-posh font install

若没有安装sudo会报错,可以使用 scoop install sudo。如果不愿意安装,也可以使用管理员身份打开powershell,运行 oh-my-posh font install即可。

然后会出现选择的列表,可以选择需要安装的字体。建议安装 MesloLGM 字体。

安装成功后,对Windows的终端(terminal)的配置文件进行编辑(快捷键为 CTRL + SHIFT + ,)。

1
2
3
4
5
6
7
8
9
10
11
12
{
"profiles":
{
"defaults":
{
"font":
{
"face": "MesloLGM Nerd Font"
}
}
}
}

并在 终端设置中,将 设置 -> 呈现 -> 使用新的文本呈现器("AtlasEngine") 选项打开。

然后保存,重启终端。

5. 选择其他主题

在终端中输入一下命令即可预览内置的所有主题的样式:

1
Get-PoshThemes

然后会在最后显示一行配置的提示,如下:

1
2
3
4
5
Themes location: D:\scoop\apps\oh-my-posh\current\themes

To change your theme, adjust the init script in E:\LibraryFile\Document\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.
Example:
oh-my-posh init pwsh --config 'D:\scoop\apps\oh-my-posh\current\themes\jandedobbeleer.omp.json' | Invoke-Expression

显示了theme文件夹所在位置,以及如何初始化 oh-my-posh 的主题。可以将此语句在 $PROFILE 中将之前的激活语句替换掉。

仔细观察,不难发现,仅仅是假了一个 --config 的参数。将主题文件替换为自己喜欢的主题文件名即可。

比如,此时我要替换为名为 ys的主题,则运行 notepad $PROFIEL,然后替换为一下内容:

1
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\ys.omp.json" | Invoke-Expression

6. 其他

更多详细定制化可以参考 oh-my-posh官网