Tutorial: Einrichten einer benutzerdefinierten Eingabeaufforderung für PowerShell oder WSL mit Oh My Posh

Dieses Tutorial enthält einige Ressourcen und Anweisungen, mit denen Sie Ihre Eingabeaufforderung für PowerShell oder Windows-Subsystem für Linux (WSL) mit Oh My Posh anpassen können. Oh My Posh bietet verschiedene Designfunktionen für die vollständig benutzerdefinierte Anpassung der Eingabeaufforderung mit Git-Status-Farbcodierung und Aufforderungen.

In diesem Tutorial lernen Sie Folgendes:

Windows Terminal Custom Prompt

Installieren einer Nerd-Schriftart

Benutzerdefinierte Eingabeaufforderungen verwenden häufig Glyphen (ein Grafiksymbol), um die Eingabeaufforderung zu formatieren. Wenn Ihre Schriftart nicht die erforderlichen Glyphen enthält, werden in der Eingabeaufforderung möglicherweise mehrere Unicode-Ersetzungszeichen „▯“ angezeigt. Damit Sie alle Glyphen in Ihrem Terminal sehen können, sollten Sie eine Nerd-Schriftart installieren.

Wenn Sie eine Schriftart mögen, die wie Cascadia Code aussieht, sollten Sie die Schriftart „Caskaydia Cove Nerd“ verwenden, die von einem Community-Mitglied aus dem Cascadia Code-Repository erstellt wurde.)

Nach dem Herunterladen müssen Sie die Schriftart entzippen und auf Ihrem System installieren. (Hinzufügen einer neuen Schriftart zu Windows).

Um für Oh My Posh und Terminal-Icons eine Nerd-Schriftart einzustellen, müssen Sie die Benutzeroberfläche der Windows-Terminal-Einstellungen öffnen, indem Sie im Dropdownmenü Ihres Windows-Terminals Einstellungen (Strg+) auswählen. Wählen Sie das Profil, in dem Sie die Schriftart anwenden möchten, z. B. PowerShell, und dann die Registerkarte Darstellung aus. Wählen Sie im Dropdownmenü Schriftart entweder die Option CaskaydiaCove Nerd Font oder die Nerd-Schriftart aus, die Sie für Ihre benutzerdefinierte Eingabeaufforderung verwenden möchten.

Hinweis

Wenn Sie eine Terminalschriftart verwenden möchten, die keine Glyphsymbole unterstützt, wie etwa Cascadia Code PL, sollten Sie ein Oh My Posh-Design auswählen, das die Funktion minimal enthält. Dies weist darauf hin, dass keine zusätzlichen Symbole erforderlich sind.

Anpassen der PowerShell-Eingabeaufforderung mit Oh My Posh

Durch Oh My Posh steht Ihnen ein vollständiger Farbsatz für die Definition und das Rendering Ihrer Terminaleingabeaufforderung zur Verfügung. Außerdem haben Sie die Möglichkeit, integrierte Designs zu verwenden oder ein eigenes benutzerdefiniertes Design zu erstellen.

Installieren von Oh My Posh für PowerShell

Um Ihre PowerShell-Eingabeaufforderung anzupassen, können Sie Oh My Posh mithilfe von WinGet installieren. Geben Sie den folgenden Befehl ein:

winget install JanDeDobbeleer.OhMyPosh

Hierdurch wird Folgendes installiert:

Sie müssen den Quellbedingungen zustimmen. Es kann der Fall auftreten, dass mehr als ein Paket verfügbar ist. Wählen Sie in diesem Fall die Paket-ID aus, die Sie verwenden möchten, und geben Sie den Befehl erneut ein: winget install <package ID>.

Screenshot of winget install oh my posh packages.

Um die Microsoft Store-Version von Oh My Posh zu verwenden, die automatisch aktualisiert wird, wenn neue Versionen verfügbar sind, verwenden Sie den Befehl:

winget install XP8K0HKJFRXGCK

Geben Sie oh-my-posh version ein, um die Versionsnummer Ihrer Oh My Posh-Installation zu bestätigen. Sie können den folgenden Befehl verwenden, um sicherzustellen, dass Sie über die neuesten Updates verfügen: winget upgrade oh-my-posh.

Hinweis

Wenn Sie die neueste Version von Oh My Posh in PowerShell installieren möchten, ist es sinnvoll, zuerst die zwischengespeicherten Dateien des OMP-Moduls zu entfernen und das alte Modul zu deinstallieren. Anweisungen dazu finden Sie in der Oh My Posh-Dokumentation. Wenn Sie besser mit dem Scoop-Installationsprogramm oder einer manuellen Installationsmethode, die Automatisierung ermöglicht, vertraut sind, können Sie auch diese für die Installation unter Windows verwenden. Befolgen Sie dazu einfach die Anweisungen in der Oh My Posh Dokumentation.

Auswählen und Anwenden eines PowerShell-Eingabeaufforderungsdesigns

Sie können die vollständige Liste der Designs auf der Seite Oh My Posh-Designs durchsuchen.

Wählen Sie ein Design aus und aktualisieren Sie Ihr PowerShell-Profil mit diesem Befehl. (Sie können notepad mit einem Text-Editor Ihrer Wahl ersetzen.)

notepad $PROFILE

Wenn Sie eine Pfadfehlermeldung erhalten, haben Sie möglicherweise noch kein Profil für PowerShell. Erstellen Sie ein Profil mit dem folgenden PowerShell-Befehl, und versuchen Sie dann, es mit einem Text-Editor zu öffnen.

new-item -type file -path $profile -force

Fügen Sie in Ihrem PowerShell-Profil am Ende der Datei Folgendes hinzu, um das Design paradox festzulegen: (Ersetzen Sie paradox durch das Design Ihrer Wahl.)

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression

Nun wird von jeder neuen PowerShell-Instanz zuerst Oh My Posh importiert und dann das Befehlszeilendesign festgelegt.

Wenn beim Versuch, eine neue PowerShell-Instanz zu öffnen, ein Skriptfehler gemeldet wird, ist ihre Ausführungsrichtlinie für PowerShell möglicherweise eingeschränkt. Um die PowerShell-Ausführungsrichtlinie auf uneingeschränkt festzulegen, müssen Sie PowerShell als Administrator starten und dann den folgenden Befehl verwenden:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Hinweis

Dabei handelt es sich nicht um Ihr Windows Terminal-Profil. Ihr PowerShell-Profil ist ein Skript, das bei jedem Start von PowerShell ausgeführt wird. Weitere Informationen zu PowerShell-Profilen.

Tipp

Antworten auf häufig gestellte Fragen oder Probleme finden Sie unter Oh My Posh. Weitere Informationen zu Konfiguration und allgemeinen Einstellungen, z. B. zum Wiederherstellen des aktuellen Arbeitsverzeichnisses, finden Sie in der „Oh My Posh“-Dokumentation.

Anpassen der WSL-Eingabeaufforderung mit Oh My Posh

Oh My Posh ermöglicht Ihnen jetzt das Anpassen von WSL-Eingabeaufforderungen, genau wie bei einer PowerShell-Eingabeaufforderung mit integrierten Designs.

Installieren von Oh My Posh für WSL

Es wird empfohlen, Oh My Posh für WSL anhand des Linux-Installationsleitfadens in der Oh My Posh-Dokumentation zu installieren, unabhängig davon, ob Bash, Zsh oder etwa anderes zum Einsatz kommt.

Aktuell verwendet der empfohlene Pfad zum Anpassen von WSL-Eingabeaufforderungen mit Oh My Posh den Homebrew-Paket-Manager für die Installation. (Homebrew funktioniert jetzt mit WSL!) Befolgen Sie beim Installieren von Homebrew für Linux unbedingt die Anweisungen unter Nächste Schritte, um Homebrew Ihrer PATH-Umgebungsvariablen und Ihrem Bash-Shellprofilskript hinzuzufügen.

Homebrew installiert Folgendes:

  • oh-my-posh: Ausführbare Datei, hinzugefügt unter /usr/local/bin
  • themes: Die aktuellsten Oh My Posh-Designs

Auswählen und Anwenden eines WSL-Eingabeaufforderungsdesigns

Die Oh My Posh-Designs befinden sich im Verzeichnis „oh-my-posh“ in Form von JSON-Dateien. Sie finden sie, indem Sie cd $(brew --prefix oh-my-posh), dann einfach cd themes und für die Liste ls eingeben. Für Ubuntu-20.04, wenn es unter WSL ausgeführt wird, lautet der Pfad wahrscheinlich so ähnlich: \\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes. Sie können die Designs auch in der Oh My Posh-Dokumentation anzeigen: Designs.

Wenn Sie ein Design verwenden möchten, kopieren Sie es aus dem themes-Ordner in Ihren $Home-Ordner, und fügen Sie dann diese Zeile am Ende der Datei .profile in Ihrem $Home-Ordner hinzu:

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

Sie können jandedobbeleer.omp.json durch den Namen des gewünschten Designs ersetzen, sofern es in Ihren $Home-Ordner kopiert wurde.

Wenn Sie oh-my-posh sowohl unter Windows mit PowerShell als auch mit WSL verwenden, können Sie alternativ Ihr PowerShell-Design für WSL freigeben, indem Sie auf ein Design in Ihrem Benutzer-Basisordner verweisen. Ersetzen Sie im .profile-Pfad Ihrer WSL-Distribution „~“ durch den Pfad /mnt/c/Users/<WINDOWSUSERNAME>. Ersetzen Sie <WINDOWSUSERNAME> durch Ihren eigenen Windows-Benutzernamen.

Bei Bedarf können Sie die Oh My Posh-Designs anpassen.

Verwenden von Terminal-Icons zum Hinzufügen fehlender Ordner- oder Dateisymbole

Terminal-Icons ist ein PowerShell-Modul, das Datei- und Ordnersymbole hinzufügt, die beim Anzeigen von Dateien oder Ordnern in Windows-Terminal möglicherweise fehlen. Dabei wird anhand des Namens oder der Erweiterung nach dem entsprechenden Symbol gesucht. Es wird versucht, Symbole für bekannte Dateien/Ordner zu verwenden, wenn aber keines gefunden wird, erfolgt der Rückgriff auf ein generisches Datei- oder Ordnersymbol.

Verwenden Sie den folgenden Befehl, um Terminal-Icons in PowerShell zu installieren:

Install-Module -Name Terminal-Icons -Repository PSGallery

Weitere Informationen, einschließlich Verwendung und Befehlen, finden Sie im Terminal-Icons-Repository auf GitHub.

Zusätzliche Ressourcen

  • Oh My Posh-Dokumentation
  • Terminal-Icons-Repository
  • Posh-Git-Dokumentation: Posh-Git ist ein PowerShell-Modul, das Git und PowerShell integriert, indem Git-Statusübersichtsinformationen zur Verfügung gestellt werden, die in der PowerShell-Eingabeaufforderung angezeigt werden können.
  • PowerLine-Dokumentation: Powerline ist ein Statusline-Plug-In für vim und stellt Statuslinien und Eingabeaufforderungen für verschiedene andere Anwendungen bereit, einschließlich zsh, bash, tmux, IPython, Awesome, i3 und Qtile.