Windows WSL2 中安装

  1. 先安装控制台工具: Windows Terminal
  2. 安装字体:Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
  3. 安装 oh-my-posh : Linux | Oh My Posh
  4. 配置启动脚本,启用 oh-my-posh 主题: Themes | Oh My Posh

安装控制台工具

微软商店中搜索 terminal 然后安装即可

安装字体

下载字体

打开 Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher ,然后下载任意一款喜欢的字体

安装字体

  1. 按下 Win+Q 搜索 字体,或者直接打开控制面板,然后打开字体页面

  1. 把下载解压后的字体拖进去

  1. 在terminal设置中,选择 Ubuntu 或者默认的shell界面配置,选择显示配置,然后选中字体,在字体中选择刚刚安装的字体即可。

安装 oh-my-posh

参考 Oh My Posh

执行以下命令进行安装

curl -s https://ohmyposh.dev/install.sh | bash -s

或者如果有 brew 也可以用如下命令

brew install jandedobbeleer/oh-my-posh/oh-my-posh

使用主题

  1. 下载主题

以下命令将把 *.omp.json 主题文件下载到 ~/.poshthemes/ 中

git clone https://github.com/JanDeDobbeleer/oh-my-posh.git /tmp/oh-my-posh
mkdir -p ~/.poshthemes/
cp -f /tmp/oh-my-posh/themes/*.json ~/.poshthemes/
  1. 使用主题

官方有主题预览,看到喜欢的主题把名字复制下来, 在刚下载的文件夹 ~/.poshthemes/ 中找相同名字的即可

假设想使用 ~/.poshthemes/my.omp.json 主题, 则执行以下命令

 eval "$(oh-my-posh --init --shell bash --config ~/.poshthemes/my.omp.json)" 
  1. 自动启用主题

编辑 shell 启动脚本

vi ~/.bashrc

在脚本后面加一行后保存即可:

 eval "$(oh-my-posh --init --shell bash --config ~/.poshthemes/my.omp.json)" 

Windows PowerShell 中安装

  1. 安装 oh-my-posh PowerShell .exe 版本: Releases · JanDeDobbeleer/oh-my-posh
  2. 配置PowerShell环境变量,启用主题

安装 .exe 版本

Releases · JanDeDobbeleer/oh-my-posh 中选择最新版,下载后安装,一切保持默认即可

然后打开 PowerShell ,输入 oh-my-posh 查看帮助信息,确保程序成功安装,如果没有出现说明文字,则可能需要配置下 环境变量

启用主题

主题在 这里 下载,找 .json格式后缀的即可,具体参考 使用主题 中的说明

临时启用主题

假设主题下载到了 C:\Users\myname\Downloads\my.omp.json , 执行以下命令启用主题:

oh-my-posh --init --shell pwsh --config C:\Users\myname\Downloads\my.omp.json | Invoke-Expression 

自动启用主题

按照目录创建文件夹 C:\Users\{你的用户名}\Documents\WindowsPowerShell ,其中 {你的用户名} 对应的是自己计算机登录的时候配置的用户名。

然后新建文件 Microsoft.PowerShell_profile.ps1 , 如果文件已存在就打开文件。 往文件中写入以下内容然后保存,其中 C:\Users\myname\Downloads\my.omp.json 是要应用的 oh-my-posh 主题文件。

oh-my-posh --init --shell pwsh --config C:\Users\myname\Downloads\my.omp.json | Invoke-Expression 

新开PowerShell 终端即可看到自动启用主题

Termux 中安装

  1. 安装 oh-my-posh linux版本: Releases · JanDeDobbeleer/oh-my-posh
  2. 配置 Termux 环境变量, 启用主题

安装Termux版本的程序

在这里找到自己系统的版本:Releases · JanDeDobbeleer/oh-my-posh 比如我设备是 aarch64 则对应选择 android arm64 版本的 oh-my-posh 进行安装

安装下载工具

pkg install wget

下载对应版本,比如我这里随便选择了一个适合自己系统的版本,或者你也可以自己编译一个。

cd /data/data/com.termux/files/usr/bin
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v19.18.1/posh-android-arm -O oh-my-posh
chmod +x oh-my-posh

❗❓ 如果你想自己编译…

下载项目

mkdir -p ~/tmp
rm -rf ~/tmp/oh-my-posh
cd ~/tmp
git clone https://github.com/JanDeDobbeleer/oh-my-posh.git oh-my-posh

安装依赖

pkg install golang

编译 oh-my-posh , 如果需要编译特定版本, 需要先切换到对应版本的分支

cd ~/tmp/oh-my-posh
go mod init example.com/m
cd ~/tmp/oh-my-posh/src
go build -o /data/data/com.termux/files/usr/bin/oh-my-posh

查看编译是否成功

oh-my-posh

下载主题

oh-my-posh/themes at main · JanDeDobbeleer/oh-my-posh · GitHub 下载主题, 主题预览参考这里: 启用主题

mkdir -p ~/tmp/
cd ~/tmp/
git clone [email protected]:JanDeDobbeleer/oh-my-posh.git oh-my-posh
mkdir -p ~/.poshthemes/ 
cp -f ~/tmp/oh-my-posh/themes/*.json ~/.poshthemes/

安装字体

  • 下载 Termux:Styling 后安装
  • 进入 Termux 长按终端空白处,点击 More... - Style - CHOOSE FONT 选择一个字体

启用主题

临时启用

~/.poshthemes/my.omp.json 换成想用的主题,参考这里看主题预览: 使用主题

eval "$(oh-my-posh --init --shell bash --config ~/.poshthemes/my.omp.json)" 

自动启用

同样将 以下命令放入 ~/.bashrc 即可(没有就创建一个文件写入), 其中 ~/.poshthemes/my.omp.json 为要应用的主题。

eval "$(oh-my-posh --init --shell bash --config ~/.poshthemes/my.omp.json)" 

分享一个自用 coral_lean 主题

预览

将内容保存到 coral_lean.omp.json 文件 , 然后启用即可
如果是 Termux 使用觉得太长,可以删除 type : os / root / session 三项

{
  "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
  "blocks": [
    {
      "alignment": "left",
      "segments": [
        {
          "foreground": "#ffffff",
          "style": "powerline",
          "template": "{{.Icon}} ",
          "type": "os"
        },
        {
          "foreground": "#CECE04",
          "style": "plain",
          "template": " \uf0e7 ",
          "type": "root"
        },
        {
          "foreground": "#FFFFFF",
          "style": "plain",
          "template": "{{ .UserName }}@{{ .HostName }} ",
          "type": "session"
        },
        {
          "foreground": "#77E4F7",
          "properties": {
            "style": "full"
          },
          "style": "plain",
          "template": "{{ .Path }} ",
          "type": "path"
        },
        {
          "foreground": "#cccccc",
          "style": "plain",
          "properties": {
            "fetch_upstream_icon": true
          },
          "template": "{{ .UpstreamIcon }}",
          "type": "git"
        },
        {
          "foreground": "#100e23",
          "style": "plain",
          "template": " \ue235 {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }} {{ end }}{{ .Full }}{{ end }} ",
          "type": "python"
        },
        {
          "foreground": "#FF3B16",
          "style": "plain",
          "template": "{{ reason .Code }} ",
          "type": "status"
        },
        {
          "foreground": "#cccccc",
          "properties": {
            "style": "austin",
            "threshold": 1
          },
          "invert_powerline": true,
          "style": "powerline",
          "template": "{{ .FormattedMs }} ",
          "type": "executiontime"
        },
        {
          "foreground": "#ffffff",
          "style": "plain",
          "template": "<#FFFFFF>\u276f</> ",
          "type": "text"
        }
      ],
      "type": "prompt"
    }
  ],
  "version": 2
}
 

*****