oh-my-posh 配置自定义主题

  1. 效果展示
    展示为:➜ username on  D:/myworkspace/auto-epub ( master) (venv)  3.10.19
  1. 直接在 tokyonight_storm.omp.json 基础上修改

    javascript 复制代码
    {
      "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
      "console_title_template": " {{ .Folder }} :: {{if .Root}}Admin{{end}}",
      "palette": {
        "main-bg": "#24283b",
        "terminal-red": "#f7768e",
        "pistachio-green": "#9ece6a",
        "terminal-green": "#73daca",
        "terminal-yellow": "#e0af68",
        "terminal-blue": "#7aa2f7",
        "celeste-blue": "#b4f9f8",
        "light-sky-blue": "#7dcfff",
        "terminal-white": "#c0caf5",
        "white-blue": "#a9b1d6",
        "blue-bell": "#9aa5ce",
        "pastal-grey": "#cfc9c2",
        "terminal-magenta": "#bb9af7",
        "blue-black": "#565f89",
        "terminal-black": "#414868",
        "t-background": "p:main-bg"
      },
      "blocks": [
        {
          "alignment": "left",
          "segments": [
            {
              "type": "text",
              "style": "plain",
              "background": "transparent",
              "foreground": "p:terminal-blue",
              "template": "\u279c "
            },
            {
              "foreground": "#85b42e",
              "style": "plain",
              "template": "\ueb99 {{ .UserName }} on",
              "type": "session"
            },
            {
              "foreground": "p:terminal-magenta",
              "options": {
              "folder_separator_icon": "/",
              "style": "full"
            },
              "style": "plain",
              "template": " \uf07b {{ .Path }} ",
              "type": "path"
            },
            {
              "type": "git",
              "style": "plain",
              "foreground": "p:light-sky-blue",
              "foreground_templates": [
                "{{ if or (.Working.Changed) (.Staging.Changed) }}p:terminal-red{{ end }}",
                "{{ if and (gt .Ahead 0) (gt .Behind 0)}}p:light-sky-blue {{ end }}",
                "{{ if gt .Ahead 0 }}p:terminal-blue{{ end }}",
                "{{ if gt .Behind 0 }}p:celeste-blue{{ end }}"
              ],
              "template": "({{ .HEAD}})",
              "options": {
                "fetch_status": true,
                "branch_icon": "\ue725 "
              }
            },
            {
              "type": "status",
              "style": "plain",
              "foreground": "p:terminal-red",
              "template": " \uf00d"
            }
          ],
          "type": "prompt"
        },
        {
          "alignment": "right",
          "overflow": "hide",
          "segments": [
            {
              "type": "node",
              "style": "plain",
              "foreground": "p:pistachio-green",
              "template": "\ue718 {{ .Full }} "
            },
            {
              "type": "php",
              "style": "plain",
              "foreground": "p:terminal-yellow",
              "template": "\ue73d {{ .Full }} "
            },
            {
              "type": "python",
              "style": "plain",
              "foreground": "p:terminal-blue",
              "background": "transparent",
              "leading_diamond": "(",
              "trailing_diamond": ")",
              "template": "({{ .Venv }}) \uE235 {{ .Full }} "
            },
            {
              "type": "julia",
              "style": "plain",
              "foreground": "p:terminal-magenta",
              "template": "\uE624 {{ .Full }}"
            },
            {
              "type": "ruby",
              "style": "plain",
              "foreground": "p:terminal-red",
              "template": "\uE791 {{ .Full}}"
            },
            {
              "type": "go",
              "style": "plain",
              "foreground": "p:light-sky-blue",
              "template": "\uFCD1 {{ .Full}}"
            }
          ],
          "type": "prompt"
        },
        {
          "alignment": "left",
          "newline": true,
          "segments": [
            {
              "foreground": "transparent",
              "style": "plain",
              "template": "\u25b6",
              "type": "text"
            }
          ],
          "type": "prompt"
        }
      ],
      "secondary_prompt": {
        "background": "transparent",
        "foreground": "p:terminal-blue",
        "template": "\u279c "
      },
      "transient_prompt": {
        "background": "transparent",
        "foreground": "p:terminal-blue",
        "template": "\u279c "
      },
      "final_space": true,
      "version": 4,
      "terminal_background": "p:t-background"
    }
    1. 修改 Microsoft.PowerShell_profile.ps1

      bash 复制代码
      # 1. 给VSCode终端补全oh-my-posh的环境变量,防止识别不到
      $env:Path += ";$HOME\AppData\Local\Programs\oh-my-posh\bin"
      
      # 2. 避免与 Python 虚拟环境默认提示符冲突的关键设置,确保 oh-my-posh 能够完全控制提示符显示。
      $env:VIRTUAL_ENV_DISABLE_PROMPT = $true
      
      # 3. 加载oh-my-posh主题
      oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/tokyonight_storm.omp.json" | Invoke-Expression
相关推荐
AI探索者11 小时前
LangGraph StateGraph 实战:状态机聊天机器人构建指南
python
AI探索者11 小时前
LangGraph 入门:构建带记忆功能的天气查询 Agent
python
FishCoderh13 小时前
Python自动化办公实战:批量重命名文件,告别手动操作
python
躺平大鹅13 小时前
Python函数入门详解(定义+调用+参数)
python
曲幽14 小时前
我用FastAPI接ollama大模型,差点被asyncio整崩溃(附对话窗口实战)
python·fastapi·web·async·httpx·asyncio·ollama
两万五千个小时17 小时前
落地实现 Anthropic Multi-Agent Research System
人工智能·python·架构
哈里谢顿20 小时前
Python 高并发服务限流终极方案:从原理到生产落地(2026 实战指南)
python
用户8356290780511 天前
无需 Office:Python 批量转换 PPT 为图片
后端·python
markfeng81 天前
Python+Django+H5+MySQL项目搭建
python·django
GinoWi2 天前
Chapter 2 - Python中的变量和简单的数据类型
python