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

1winget install JanDeDobbeleer.OhMyPosh -s winget

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

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

进行配置

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

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

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

1 [System.Console]::OutputEncoding=[System.Text.Encoding]::GetEncoding(65001) # 配置默认编码
2 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	"type": "python",
 3	"style": "plain",
 4	"foreground": "#98C379",
 5	"properties": {
 6		"display_virtual_env": true,
 7		"dispplay_default": true,
 8		"display_version": false,
 9		"prefix": "\uE235 ",
10		"postfix": " ",
11		"display_mode": "always"
12	}
13}

或:

 1{
 2          "foreground": "yellow",
 3          "properties": {
 4            "fetch_version": true,
 5            "fetch_virtual_env": true,
 6            "display_mode": "files",
 7            "home_enabled": true,
 8            "display_default": true
 9          },
10          "style": "plain",
11          "template": "[\ue235 {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }}{{ end }}{{ .Full }}{{ end }}]",
12          "type": "python"
13        }

总结

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