fedora 下使用 oh-my-posh 美化 bash

fedora 下使用 oh-my-posh 美化 bash

一、为什么选择 oh-my-posh

oh-my-posh 有着跨平台统一主题,Windows PowerShell 和 Linux Bash 用同一套 .omp.json 配置。而且配置简单,一个 JSON 文件搞定一切。

二、安装 oh-my-posh

bash 复制代码
sudo dnf install oh-my-posh

检查是否安装成功:

bash 复制代码
# 查看版本
oh-my-posh --version
# 示例输出为
28.10.0

完成安装。

三、安装 Nerd Fonts

oh-my-posh 的箭头、Git 图标等依赖 Nerd Fonts。可以用 oh-my-posh 内置命令安装:

bash 复制代码
oh-my-posh font install Meslo

它会自动下载并安装 MesloLGM Nerd Font(最兼容的主题字体)。

然后在终端上设置字体即可。

四、配置 oh-my-posh 到 Bash

编辑 bash 配置文件:

bash 复制代码
nano ~/.bashrc

在文件末尾添加:

bash 复制代码
# 启用 oh-my-posh(使用默认主题)
eval "$(oh-my-posh init bash)"

保存退出后,重载配置:

bash 复制代码
source ~/.bashrc

五、使用自定义主题

bash 复制代码
# 创建主题目录
mkdir -p ~/.config/oh-my-posh/themes
# 进入主题目录
cd ~/.config/oh-my-posh/themes

在官网(oh-my-posh themes)上选择自己喜欢的主题并下载:

bash 复制代码
# 以 powerlevel10k_rainbow 主题为例
wget https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/powerlevel10k_rainbow.omp.json

修改 ~/.bashrc 使用自定义主题:

bash 复制代码
eval "$(oh-my-posh init bash --config ~/.config/oh-my-posh/themes/powerlevel10k_rainbow.omp.json)"

重载配置即可:

bash 复制代码
source ~/.bashrc

六、修改主题使 conda 环境可见

powerlevel10k_rainbow 这一主题为例,当激活 conda 环境之后 bash 并不会显示环境。所以需要对该主题的 .json 文件做一定修改以适配 conda 的显示。

首先复制一份文件到 powerlevel10k_rainbow_with-conda.omp.json 再进行修改,避免污染原文件:

bash 复制代码
cp ~/.config/oh-my-posh/themes/powerlevel10k_rainbow.omp.json ~/.config/oh-my-posh/themes/powerlevel10k_rainbow_with-conda.omp.json

修改:

bash 复制代码
nano .config/oh-my-posh/themes/powerlevel10k_rainbow_with-conda.omp.json

找到 python 的 segment :

将这一块替换为下面的段落(也可以按照自己需求编写):

bash 复制代码
	{
	"type": "python",
	"style": "powerline",
	"powerline_symbol": "\ue0b2",
	"foreground": "#111111",
	"background": "#FFDE57",
	"invert_powerline": true,
	"properties": {
		"display_mode": "environment",
		"fetch_virtual_env": true,
		"display_version": true,
		"home_enabled": true,
		"prefix": " \ue235 ",
		"postfix": ""
	},
	"template": "{{ if .Venv }}\ue73f{{ .Venv }}{{ else if .Version }}\ue73f{{ .Version }}{{ end }}"
	},

编辑 ~/.bashrc, 将 eval "$(oh-my-posh init bash --config ~/.config/oh-my-posh/themes/powerlevel10k_rainbow.omp.json)" 修改为:

bash 复制代码
eval "$(oh-my-posh init bash --config ~/.config/oh-my-posh/themes/powerlevel10k_rainbow_with-conda.omp.json)"

重载配置即可:

bash 复制代码
source ~/.bashrc

效果:


版权声明: 本文为博主「张火火isgudi」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接: https://www.cnblogs.com/zbyisgudi/p/19507440

相关推荐
xexpertS9 小时前
CI/CD 熔断机制:如何通过编排级熔断器提升开发者效率
java·linux·运维
带娃的IT创业者9 小时前
突破内存瓶颈:利用 Nvidia GPU 显存作为 Linux Swap 空间的深度实践
linux·运维·服务器·nvidia·swap·gpu显存
zy happy10 小时前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker
LCG元10 小时前
嵌入式开发踩坑排查实战:从 STM32 外设初始化到 Linux SPI 驱动的 15 类硬件疑难故障深度复盘
linux·stm32·单片机
代码AC不AC10 小时前
【Linux】Socket编程TCP
linux·tcp·socket编程
扛枪的书生10 小时前
SeaweedFS 学习总结
linux
德福危险10 小时前
从目录枚举到bash破壳漏洞、从流量抓包到组权限提权:靶机练习之symfonos3
开发语言·bash
minglie110 小时前
香橙派zero3配个iic屏显示ip
linux·学习
edwarddamon11 小时前
SSH 指定端口建立隧道:打通内网访问完整教程
linux·命令行
ShirleyWang01211 小时前
Day02 K3s NGF(Nginx Gateway Fabric)单 Worker 环境网关更新与故障处置 SOP
linux·服务器·python·k8s·k3s