Oh mein Posh - Cross-Platform Antriebsmaschine
Oh My Posh ist eine benutzerdefinierte Eingabeaufforderung Motor für jede Shell, die die Möglichkeit hat, die Eingabeaufforderung String mit einer Funktion oder Variable anzupassen. Es wurde entwickelt, um schnell, erweiterbar, und Cross-Plattform, mit besonderer Stärke auf Windows PowerShell und Windows Terminal. Oh My Posh bietet schöne Themen, umfangreiche Anpassungsmöglichkeiten und nahtlose Integration über verschiedene Betriebssysteme und Shells.
Installation
Windows Installation
PowerShell (empfohlen)
```powershell
Install via PowerShell Gallery
Install-Module oh-my-posh -Scope CurrentUser
Install via Winget
winget install JanDeDobbeleer.OhMyPosh
Install via Chocolatey
choco install oh-my-posh
Install via Scoop
scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json ```_
Manuelle Installation
```powershell
Download and install manually
Invoke-WebRequest -Uri "https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-windows-amd64.exe" -OutFile "$env:USERPROFILE\oh-my-posh.exe"
Add to PATH
$env:PATH += ";$env:USERPROFILE" ```_
macOS Installation
```bash
Homebrew
brew install jandedobbeleer/oh-my-posh/oh-my-posh
Manual installation
curl -s https://ohmyposh.dev/install.sh|bash -s
Add to PATH
export PATH=$PATH:/usr/local/bin ```_
Linux Installation
```bash
Install script
curl -s https://ohmyposh.dev/install.sh|bash -s
Manual download
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh chmod +x /usr/local/bin/oh-my-posh
Package managers
Arch Linux
yay -S oh-my-posh
Ubuntu/Debian (via .deb package)
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64.deb sudo dpkg -i posh-linux-amd64.deb ```_
Schriftart Installation
```bash
Install Nerd Fonts (required for icons)
oh-my-posh font install
Install specific font
oh-my-posh font install meslo
List available fonts
oh-my-posh font list
Manual font installation
Download from https://www.nerdfonts.com/
Install CascadiaCode, FiraCode, or Meslo LG fonts
```_
Shell Konfiguration
PowerShell Setup
```powershell
Add to PowerShell profile
Check profile location
$PROFILE
Create profile if it doesn't exist
if (!(Test-Path -Path $PROFILE)) \\{ New-Item -ItemType File -Path $PROFILE -Force \\}
Add Oh My Posh initialization
Add-Content -Path $PROFILE -Value 'oh-my-posh init pwsh|Invoke-Expression'
With custom theme
Add-Content -Path $PROFILE -Value 'oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"|Invoke-Expression'
Reload profile
. $PROFILE ```_
Bash Setup
```bash
Add to ~/.bashrc
echo 'eval "$(oh-my-posh init bash)"' >> ~/.bashrc
With custom theme
echo 'eval "$(oh-my-posh init bash --config ~/.poshthemes/jandedobbeleer.omp.json)"' >> ~/.bashrc
Reload configuration
source ~/.bashrc ```_
Zsh Setup
```bash
Add to ~/.zshrc
echo 'eval "$(oh-my-posh init zsh)"' >> ~/.zshrc
With custom theme
echo 'eval "$(oh-my-posh init zsh --config ~/.poshthemes/jandedobbeleer.omp.json)"' >> ~/.zshrc
Reload configuration
source ~/.zshrc ```_
Fisch Setup
```bash
Add to ~/.config/fish/config.fish
echo 'oh-my-posh init fish|source' >> ~/.config/fish/config.fish
With custom theme
echo 'oh-my-posh init fish --config ~/.poshthemes/jandedobbeleer.omp.json|source' >> ~/.config/fish/config.fish
Reload configuration
source ~/.config/fish/config.fish ```_
Command Prompt (CMD) Setup
```cmd
Install Clink first
Download from: https://chrisant996.github.io/clink/
Create oh-my-posh.lua in Clink scripts directory
%LOCALAPPDATA%\clink\oh-my-posh.lua
load(io.popen('oh-my-posh init cmd'):read("*a"))() ```_
Thema Management
Eingebaute Themen
```bash
List all available themes
oh-my-posh get themes
Preview themes
oh-my-posh get themes --list
Set theme
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\agnoster.omp.json"|Invoke-Expression
Popular themes
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"|Invoke-Expression oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json"|Invoke-Expression oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\powerlevel10k_rainbow.omp.json"|Invoke-Expression oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\atomic.omp.json"|Invoke-Expression oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\blue-owl.omp.json"|Invoke-Expression ```_
Themenorte
```bash
Windows theme location
$env:POSH_THEMES_PATH
macOS/Linux theme location
$(oh-my-posh get themes-path)
List theme files
Windows
Get-ChildItem -Path "$env:POSH_THEMES_PATH" -Filter "*.omp.json"
macOS/Linux
ls $(oh-my-posh get themes-path)/*.omp.json ```_
Benutzerdefinierte Thema Schöpfung
json
\\\\{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"version": 2,
"final_space": true,
"console_title_template": "\\\\{\\\\{ .Shell \\\\}\\\\} in \\\\{\\\\{ .Folder \\\\}\\\\}",
"blocks": [
\\\\{
"type": "prompt",
"alignment": "left",
"segments": [
\\\\{
"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#61AFEF",
"template": " \uF07C \\\\{\\\\{ .Path \\\\}\\\\} ",
"properties": \\\\{
"style": "folder"
\\\\}
\\\\},
\\\\{
"type": "git",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#193549",
"background": "#95ffa4",
"template": " \\\\{\\\\{ .HEAD \\\\}\\\\}\\\\{\\\\{if .BranchStatus \\\\}\\\\} \\\\{\\\\{ .BranchStatus \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if .Working.Changed \\\\}\\\\} \uF044 \\\\{\\\\{ .Working.String \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if and (.Staging.Changed) (.Working.Changed) \\\\}\\\\}|\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if .Staging.Changed \\\\}\\\\} \uF046 \\\\{\\\\{ .Staging.String \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\} "
\\\\}
]
\\\\},
\\\\{
"type": "prompt",
"alignment": "right",
"segments": [
\\\\{
"type": "node",
"style": "plain",
"foreground": "#6CA35E",
"template": "\uF898 \\\\{\\\\{ .Full \\\\}\\\\} "
\\\\},
\\\\{
"type": "time",
"style": "plain",
"foreground": "#007ACC",
"template": "\\\\{\\\\{ .CurrentDate|date .Format \\\\}\\\\} "
\\\\}
]
\\\\},
\\\\{
"type": "prompt",
"alignment": "left",
"newline": true,
"segments": [
\\\\{
"type": "text",
"style": "plain",
"foreground": "#007ACC",
"template": "❯ "
\\\\}
]
\\\\}
]
\\\\}
_
Konfigurationsstruktur
Grundkonfiguration
json
\\\\{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"version": 2,
"final_space": true,
"console_title_template": "\\\\{\\\\{ .Shell \\\\}\\\\} in \\\\{\\\\{ .Folder \\\\}\\\\}",
"blocks": []
\\\\}
_
Blockkonfiguration
json
\\\\{
"type": "prompt",
"alignment": "left",
"newline": false,
"segments": []
\\\\}
_
Segmentkonfiguration
json
\\\\{
"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#61AFEF",
"template": " \uF07C \\\\{\\\\{ .Path \\\\}\\\\} ",
"properties": \\\\{\\\\}
\\\\}
_
Kernsegmente
Pfadsegment
json
\\\\{
"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#61AFEF",
"template": " \uF07C \\\\{\\\\{ .Path \\\\}\\\\} ",
"properties": \\\\{
"style": "folder",
"max_depth": 3,
"folder_separator_icon": " \uE0B1 ",
"home_icon": "~",
"folder_icon": "\uF07C",
"windows_registry_icon": "\uE0B1",
"mapped_locations": \\\\{
"C:\\temp": "\uF0E7",
"C:\\Users": "\uF007"
\\\\}
\\\\}
\\\\}
_
Segment Git
json
\\\\{
"type": "git",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#193549",
"background": "#95ffa4",
"background_templates": [
"\\\\{\\\\{ if or (.Working.Changed) (.Staging.Changed) \\\\}\\\\}#FF9248\\\\{\\\\{ end \\\\}\\\\}",
"\\\\{\\\\{ if and (gt .Ahead 0) (gt .Behind 0) \\\\}\\\\}#ff4500\\\\{\\\\{ end \\\\}\\\\}",
"\\\\{\\\\{ if gt .Ahead 0 \\\\}\\\\}#B388FF\\\\{\\\\{ end \\\\}\\\\}",
"\\\\{\\\\{ if gt .Behind 0 \\\\}\\\\}#B388FF\\\\{\\\\{ end \\\\}\\\\}"
],
"template": " \\\\{\\\\{ .UpstreamIcon \\\\}\\\\}\\\\{\\\\{ .HEAD \\\\}\\\\}\\\\{\\\\{if .BranchStatus \\\\}\\\\} \\\\{\\\\{ .BranchStatus \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if .Working.Changed \\\\}\\\\} \uF044 \\\\{\\\\{ .Working.String \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if and (.Staging.Changed) (.Working.Changed) \\\\}\\\\}|\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if .Staging.Changed \\\\}\\\\} \uF046 \\\\{\\\\{ .Staging.String \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if gt .StashCount 0 \\\\}\\\\} \uF692 \\\\{\\\\{ .StashCount \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\} ",
"properties": \\\\{
"branch_max_length": 25,
"fetch_status": true,
"fetch_upstream_icon": true
\\\\}
\\\\}
_
Statussegment
json
\\\\{
"type": "status",
"style": "diamond",
"foreground": "#ffffff",
"background": "#00897b",
"background_templates": [
"\\\\{\\\\{ if gt .Code 0 \\\\}\\\\}#e91e63\\\\{\\\\{ end \\\\}\\\\}"
],
"leading_diamond": "<transparent,background>\uE0B0",
"trailing_diamond": "\uE0B4",
"template": " \\\\{\\\\{ if gt .Code 0 \\\\}\\\\}\uF00D\\\\{\\\\{ else \\\\}\\\\}\uF00C\\\\{\\\\{ end \\\\}\\\\} ",
"properties": \\\\{
"always_enabled": true
\\\\}
\\\\}
_
Zeitsegment
json
\\\\{
"type": "time",
"style": "plain",
"foreground": "#007ACC",
"template": "\\\\{\\\\{ .CurrentDate|date .Format \\\\}\\\\}",
"properties": \\\\{
"time_format": "15:04:05"
\\\\}
\\\\}
_
Sprach- und Laufzeitsegmente
Segment Node.js
json
\\\\{
"type": "node",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#6CA35E",
"template": " \uF898 \\\\{\\\\{ .Full \\\\}\\\\} ",
"properties": \\\\{
"fetch_version": true,
"missing_command_text": "",
"display_mode": "files",
"version_url_template": "https://nodejs.org/en/download/releases/",
"extensions": ["js", "ts"],
"folders": ["node_modules", ".nvmrc"],
"files": ["package.json", ".node-version", ".nvmrc"]
\\\\}
\\\\}
_
Segment Python
json
\\\\{
"type": "python",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#111111",
"background": "#FFDE57",
"template": " \uF81F \\\\{\\\\{ .Full \\\\}\\\\} ",
"properties": \\\\{
"display_mode": "files",
"fetch_virtual_env": false
\\\\}
\\\\}
_
Zum Segment
json
\\\\{
"type": "go",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#111111",
"background": "#8ED1F7",
"template": " \uFCD1 \\\\{\\\\{ .Full \\\\}\\\\} ",
"properties": \\\\{
"fetch_version": true
\\\\}
\\\\}
_
Segment Rust
json
\\\\{
"type": "rust",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#193549",
"background": "#99908a",
"template": " \uE7a8 \\\\{\\\\{ .Full \\\\}\\\\} ",
"properties": \\\\{
"fetch_version": true
\\\\}
\\\\}
_
Java Segment
json
\\\\{
"type": "java",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#4063D8",
"template": " \uF675 \\\\{\\\\{ .Full \\\\}\\\\} ",
"properties": \\\\{
"fetch_version": true
\\\\}
\\\\}
_
Docker Segment
json
\\\\{
"type": "docker",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#000000",
"background": "#0B59E7",
"template": " \uF308 \\\\{\\\\{ .Context \\\\}\\\\} ",
"properties": \\\\{
"display_mode": "files"
\\\\}
\\\\}
_
System Information Segmente
OS Segment
json
\\\\{
"type": "os",
"style": "diamond",
"foreground": "#26C6DA",
"background": "#546E7A",
"leading_diamond": "\uE0B6",
"trailing_diamond": "<transparent,background>\uE0B0",
"template": " \\\\{\\\\{ if .WSL \\\\}\\\\}WSL at \\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{.Icon\\\\}\\\\} ",
"properties": \\\\{
"macos": "\uF179",
"ubuntu": "\uF31b",
"windows": "\uF17a"
\\\\}
\\\\}
_
Sitzungssegment
json
\\\\{
"type": "session",
"style": "diamond",
"foreground": "#ffffff",
"background": "#c386f1",
"leading_diamond": "\uE0B6",
"trailing_diamond": "\uE0B0",
"template": " \\\\{\\\\{ .UserName \\\\}\\\\} ",
"properties": \\\\{
"display_host": false
\\\\}
\\\\}
_
Batteriesegment
json
\\\\{
"type": "battery",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#193549",
"background": "#f36943",
"background_templates": [
"\\\\{\\\\{if eq \"Charging\" .State.String\\\\}\\\\}#40c4ff\\\\{\\\\{end\\\\}\\\\}",
"\\\\{\\\\{if eq \"Discharging\" .State.String\\\\}\\\\}#ff5722\\\\{\\\\{end\\\\}\\\\}",
"\\\\{\\\\{if eq \"Full\" .State.String\\\\}\\\\}#4caf50\\\\{\\\\{end\\\\}\\\\}"
],
"template": " \\\\{\\\\{ if not .Error \\\\}\\\\}\\\\{\\\\{ .Icon \\\\}\\\\}\\\\{\\\\{ .Percentage \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ .Error \\\\}\\\\}\uF295 ",
"properties": \\\\{
"discharging_icon": "\uE231 ",
"charging_icon": "\uE234 ",
"charged_icon": "\uE22F "
\\\\}
\\\\}
_
Speichersegment
json
\\\\{
"type": "sysinfo",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#8f43f3",
"template": " \uF85A \\\\{\\\\{ round .PhysicalPercentUsed .Precision \\\\}\\\\}% ",
"properties": \\\\{
"precision": 2
\\\\}
\\\\}
_
Cloud und DevOps Segmente
AWS Segment
json
\\\\{
"type": "aws",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#FFA400",
"template": " \uF270 \\\\{\\\\{.Profile\\\\}\\\\}\\\\{\\\\{if .Region\\\\}\\\\}@\\\\{\\\\{.Region\\\\}\\\\}\\\\{\\\\{end\\\\}\\\\} ",
"properties": \\\\{
"display_default": false
\\\\}
\\\\}
_
Segment Azure
json
\\\\{
"type": "az",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#000000",
"background": "#9ec3f0",
"template": " \uFD03 \\\\{\\\\{ .Name \\\\}\\\\} ",
"properties": \\\\{
"display_default": true
\\\\}
\\\\}
_
Segment Kubernets
json
\\\\{
"type": "kubectl",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#000000",
"background": "#ebcc34",
"template": " \uFD31 \\\\{\\\\{.Context\\\\}\\\\}\\\\{\\\\{if .Namespace\\\\}\\\\} :: \\\\{\\\\{.Namespace\\\\}\\\\}\\\\{\\\\{end\\\\}\\\\} ",
"properties": \\\\{
"display_error": false
\\\\}
\\\\}
_
Segment Terrain
json
\\\\{
"type": "terraform",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#000000",
"background": "#ebcc34",
"template": " \uF1BB \\\\{\\\\{.WorkspaceName\\\\}\\\\} "
\\\\}
_
Erweiterte Funktionen
Bedingte Vorlagen
json
\\\\{
"type": "git",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#193549",
"background": "#95ffa4",
"background_templates": [
"\\\\{\\\\{ if or (.Working.Changed) (.Staging.Changed) \\\\}\\\\}#FF9248\\\\{\\\\{ end \\\\}\\\\}",
"\\\\{\\\\{ if and (gt .Ahead 0) (gt .Behind 0) \\\\}\\\\}#ff4500\\\\{\\\\{ end \\\\}\\\\}",
"\\\\{\\\\{ if gt .Ahead 0 \\\\}\\\\}#B388FF\\\\{\\\\{ end \\\\}\\\\}",
"\\\\{\\\\{ if gt .Behind 0 \\\\}\\\\}#B388FF\\\\{\\\\{ end \\\\}\\\\}"
],
"foreground_templates": [
"\\\\{\\\\{ if or (.Working.Changed) (.Staging.Changed) \\\\}\\\\}#E3F2FD\\\\{\\\\{ end \\\\}\\\\}"
],
"template": " \\\\{\\\\{ .UpstreamIcon \\\\}\\\\}\\\\{\\\\{ .HEAD \\\\}\\\\}\\\\{\\\\{if .BranchStatus \\\\}\\\\} \\\\{\\\\{ .BranchStatus \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if .Working.Changed \\\\}\\\\} \uF044 \\\\{\\\\{ .Working.String \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if and (.Staging.Changed) (.Working.Changed) \\\\}\\\\}|\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if .Staging.Changed \\\\}\\\\} \uF046 \\\\{\\\\{ .Staging.String \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\}\\\\{\\\\{ if gt .StashCount 0 \\\\}\\\\} \uF692 \\\\{\\\\{ .StashCount \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\} "
\\\\}
_
Kundenspezifische Variablen
json
\\\\{
"type": "text",
"style": "plain",
"foreground": "#E06C75",
"template": "\\\\{\\\\{ .Env.CUSTOM_VAR \\\\}\\\\} "
\\\\}
_
Cross-Platform Konfiguration
json
\\\\{
"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#61AFEF",
"template": " \\\\{\\\\{ if .WSL \\\\}\\\\}\uF17a \\\\{\\\\{ end \\\\}\\\\}\uF07C \\\\{\\\\{ .Path \\\\}\\\\} ",
"properties": \\\\{
"style": "folder",
"mapped_locations": \\\\{
"C:\\temp": "\uF0E7",
"/tmp": "\uF0E7",
"~": "\uF015"
\\\\}
\\\\}
\\\\}
_
Multi-line-Prompts
json
\\\\{
"blocks": [
\\\\{
"type": "prompt",
"alignment": "left",
"segments": [
\\\\{
"type": "path",
"style": "plain",
"foreground": "#61AFEF",
"template": "\uF07C \\\\{\\\\{ .Path \\\\}\\\\}"
\\\\}
]
\\\\},
\\\\{
"type": "prompt",
"alignment": "right",
"segments": [
\\\\{
"type": "time",
"style": "plain",
"foreground": "#007ACC",
"template": "\\\\{\\\\{ .CurrentDate|date .Format \\\\}\\\\}"
\\\\}
]
\\\\},
\\\\{
"type": "prompt",
"alignment": "left",
"newline": true,
"segments": [
\\\\{
"type": "text",
"style": "plain",
"foreground": "#007ACC",
"template": "❯ "
\\\\}
]
\\\\}
]
\\\\}
_
Anpassung und Styling
Farbschemata
json
\\\\{
"palette": \\\\{
"os-color": "#ACB0BE",
"closer-color": "#575656",
"pink": "#F25D94",
"lavender": "#LAVENDER",
"blue": "#06BCE4"
\\\\},
"blocks": [
\\\\{
"type": "prompt",
"alignment": "left",
"segments": [
\\\\{
"type": "os",
"style": "diamond",
"foreground": "p:os-color",
"background": "p:closer-color",
"leading_diamond": "\uE0B6",
"trailing_diamond": "\uE0B0",
"template": " \\\\{\\\\{ .Icon \\\\}\\\\} "
\\\\}
]
\\\\}
]
\\\\}
_
Symbole und Symbole
json
\\\\{
"type": "git",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"template": " \\\\{\\\\{ .UpstreamIcon \\\\}\\\\}\\\\{\\\\{ .HEAD \\\\}\\\\}\\\\{\\\\{ if .Working.Changed \\\\}\\\\} \uF044 \\\\{\\\\{ .Working.String \\\\}\\\\}\\\\{\\\\{ end \\\\}\\\\} ",
"properties": \\\\{
"branch_icon": "\uF126 ",
"commit_icon": "\uF417 ",
"fetch_status": true,
"fetch_upstream_icon": true,
"untracked_modes": \\\\{
"no": "\uF059",
"normal": "\uF059",
"all": "\uF059"
\\\\},
"status_formats": \\\\{
"added": "\uF457",
"copied": "\uF4A5",
"deleted": "\uF458",
"modified": "\uF459",
"renamed": "\uF45A",
"unmerged": "\uF426",
"untracked": "\uF059"
\\\\}
\\\\}
\\\\}
_
Powerline Symbole
json
\\\\{
"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"inverse_powerline": false,
"foreground": "#ffffff",
"background": "#61AFEF",
"template": " \uF07C \\\\{\\\\{ .Path \\\\}\\\\} "
\\\\}
_
Diamant-Stil
json
\\\\{
"type": "os",
"style": "diamond",
"foreground": "#26C6DA",
"background": "#546E7A",
"leading_diamond": "\uE0B6",
"trailing_diamond": "\uE0B4",
"template": " \\\\{\\\\{ .Icon \\\\}\\\\} "
\\\\}
_
Leistung und Optimierung
Caching
json
\\\\{
"type": "git",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"template": " \\\\{\\\\{ .HEAD \\\\}\\\\} ",
"properties": \\\\{
"fetch_status": false,
"fetch_upstream_icon": false
\\\\}
\\\\}
_
Zustandsanzeige
json
\\\\{
"type": "node",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"template": " \uF898 \\\\{\\\\{ .Full \\\\}\\\\} ",
"properties": \\\\{
"display_mode": "files",
"fetch_version": true
\\\\}
\\\\}
_
Timeout Konfiguration
json
\\\\{
"type": "kubectl",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"template": " \uFD31 \\\\{\\\\{.Context\\\\}\\\\} ",
"properties": \\\\{
"parse_kubeconfig": false,
"timeout": 2000
\\\\}
\\\\}
_
Verwendung der Befehlszeile
Thema Management
```bash
Get current theme
oh-my-posh get theme
Set theme
oh-my-posh init pwsh --config "~/.mytheme.omp.json"|Invoke-Expression
Export current theme
oh-my-posh config export --output ~/.mytheme.omp.json
Validate theme
oh-my-posh config validate --config ~/.mytheme.omp.json
Migrate theme from v2 to v3
oh-my-posh config migrate --config ~/.mytheme.omp.json ```_
Debugging
```bash
Debug mode
oh-my-posh init pwsh --config ~/.mytheme.omp.json --debug|Invoke-Expression
Print configuration
oh-my-posh config get --config ~/.mytheme.omp.json
Test segment
oh-my-posh debug segment --config ~/.mytheme.omp.json --segment git
Performance profiling
oh-my-posh init pwsh --config ~/.mytheme.omp.json --profile|Invoke-Expression ```_
Cache Management
```bash
Clear cache
oh-my-posh cache clear
Cache path
oh-my-posh cache path
Cache statistics
oh-my-posh cache get --key git ```_
Integrationsbeispiele
Windows Terminal Integration
json
\\\\{
"profiles": \\\\{
"defaults": \\\\{
"font": \\\\{
"face": "CascadiaCode Nerd Font"
\\\\}
\\\\},
"list": [
\\\\{
"name": "PowerShell",
"source": "Windows.Terminal.PowershellCore",
"startingDirectory": "%USERPROFILE%"
\\\\}
]
\\\\}
\\\\}
_
VS Code Integration
json
\\\\{
"terminal.integrated.fontFamily": "CascadiaCode Nerd Font",
"terminal.integrated.fontSize": 12,
"terminal.integrated.profiles.windows": \\\\{
"PowerShell": \\\\{
"source": "PowerShell",
"icon": "terminal-powershell"
\\\\}
\\\\}
\\\\}
_
Azure Cloud Shell
```bash
Install in Azure Cloud Shell
curl -s https://ohmyposh.dev/install.sh|bash -s -- -d ~/bin echo 'export PATH=$PATH:~/bin' >> ~/.bashrc echo 'eval "$(oh-my-posh init bash)"' >> ~/.bashrc ```_
Fehlerbehebung
Gemeinsame Themen
```powershell
Font rendering issues
Install Nerd Font and configure terminal
PowerShell execution policy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Module import issues
Import-Module oh-my-posh -Force
Theme not loading
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"|Invoke-Expression
Performance issues
oh-my-posh init pwsh --config ~/.mytheme.omp.json --profile|Invoke-Expression ```_
Debug Befehle
```bash
Check installation
oh-my-posh --version
Validate configuration
oh-my-posh config validate --config ~/.mytheme.omp.json
Test specific segment
oh-my-posh debug segment --config ~/.mytheme.omp.json --segment path
Environment information
oh-my-posh debug environment ```_
Konfigurationsvalidierung
```bash
Schema validation
oh-my-posh config validate --config ~/.mytheme.omp.json
Export for sharing
oh-my-posh config export --output ~/.mytheme.omp.json
Migrate old configuration
oh-my-posh config migrate --config ~/.old-theme.json ```_
Oh My Posh bietet eine leistungsstarke, plattformübergreifende Lösung für eine schnelle Anpassung, die sich besonders in Windows-Umgebungen auszeichnet und gleichzeitig die volle Kompatibilität mit Unix-ähnlichen Systemen gewährleistet. Das JSON-basierte Konfigurationssystem, die umfangreichen Funktionalitäten und die starke Windows-Terminal-Integration machen es zu einer exzellenten Wahl für Entwickler, die über mehrere Plattformen arbeiten. Ob Sie PowerShell unter Windows, Bash auf Linux oder irgendeine Shell dazwischen verwenden, Oh My Posh liefert konsistente, schöne und informative Aufforderungen, die Ihr Kommandozeilenerlebnis verbessern.