On My Posh 的使用

Posted by Luxe7 on Sat, Mar 2, 2024

本文基于Windows 11 Professional 22H2,低于这个版本的Windows可能需要对Terminal进行额外的更新操作

前言

在用Helix的时候,突然感觉Windows的终端看起来有点emm..所以就想改变一下外观

On My Posh是一款全平台终端提示符个性化工具,简要地讲,它可以让你的终端(那个黑框框,或者蓝框框)变得稍微好看一点

配置

下载与安装

(建议使用网络工具进行以下操作)

方法一:使用winget进行安装

Windows一直缺乏一个完善的官方包管理系统,微软商店也因为一些众所周知的原因不是很好用,不过2020年微软推出了winget,也算是填补了这一点

使用Power Shell 运行以下命令安装Oh My Posh

1
2winget install JanDeDobbeleer.OhMyPosh -s winget

方法二:进入微软商店搜索On My Posh进行下载

然后下载作者推荐的MesloLGM NF字体,下载后解压,全选右键点击安装即可自动安装

进行配置

在Terminal中按ctrl + ,打开配置文件,点击左下角打开JSON文件,找到profiles-defaults,修改为如下代码:

 1
 2"defaults": {
 3
 4            "colorScheme": "Campbell", //颜色方案
 5
 6            "font": {
 7
 8                "face": "MesloLGM NF" //字体
 9
10            },
11
12            "opacity": 100 //不透明度
13
14        },

新建Terminal,输入notepad $profile使用笔记本打开配置文件,输入以下配置信息,并保存

1
2 [System.Console]::OutputEncoding=[System.Text.Encoding]::GetEncoding(65001) # 配置默认编码
3
4 oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\material.omp.json" | Invoke-Expression # 配置oh-my-posh的theme

完成后新建Terminal即可看到焕然一新的终端

修改主题

On My Posh官网查看主题介绍,找到自己喜欢的主题yyy

输入notepad $profile使用笔记本打开配置文件,将xxx.omp.json替换为yyy.omp.json,打开一个新终端即可看到新主题

可能遇到的问题

配置VSCode中的终端

进入VSCode,按下ctrl + ,打开设置

找到Features > Terminal › Integrated › Default Profile: Windows设置,设置为Power Shell

重启VSCode后新建终端查看效果

无法显示conda环境

这个问题是因为主题文件中segmentstypepython部分没有配置或默认配置为false

手动修改为自己喜欢的样式即可,可参考这个帖子,评论区也给出了相关的官方文档

可参考:

 1
 2{
 3
 4	"type": "python",
 5
 6	"style": "plain",
 7
 8	"foreground": "#98C379",
 9
10	"properties": {
11
12		"display_virtual_env": true,
13
14		"dispplay_default": true,
15
16		"display_version": false,
17
18		"prefix": "\uE235 ",
19
20		"postfix": " ",
21
22		"display_mode": "always"
23
24	}
25
26}

或:

 1
 2{
 3
 4          "foreground": "yellow",
 5
 6          "properties": {
 7
 8            "fetch_version": true,
 9
10            "fetch_virtual_env": true,
11
12            "display_mode": "files",
13
14            "home_enabled": true,
15
16            "display_default": true
17
18          },
19
20          "style": "plain",
21
22          "template": "[\ue235 {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }}{{ end }}{{ .Full }}{{ end }}]",
23
24          "type": "python"
25
26        }

总结

On My Posh可自定义范围非常广,如果你有时间,完全可以将终端设置成自己想要的样子,但一般情况下主题也就够用了