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.