Tutoriel – Configurer une invite personnalisée pour PowerShell ou WSL avec Oh My Posh

Ce tutoriel fournit des ressources et des instructions pour vous aider à personnaliser votre invite de commandes pour PowerShell ou Sous-système Windows pour Linux (WSL) avec Oh My Posh. Oh My Posh fournit une expérience d’invite de commandes entièrement personnalisée qui fournit des invites et des codes de couleurs d’état Git.

Dans ce tutoriel, vous allez découvrir comment :

Windows Terminal Custom Prompt

Installer une police Nerd

Les invites de commandes personnalisées utilisent souvent des glyphes (symboles graphiques) pour appliquer un style à l’invite. Si votre police n’inclut pas les glyphes appropriés, vous pouvez voir différents caractères de remplacement Unicode « ▯ » dans votre invite de commandes. Pour voir tous les glyphes dans votre terminal, nous vous recommandons d’installer une police Nerd.

Si vous souhaitez une police ressemblant à Cascadia Code, la police Caskaydia Cove Nerd a été créée à partir du dépôt Cascadia Code par un membre de la communauté.

Une fois le téléchargement terminé, décompressez la police et installez-la sur votre système. (Comment ajouter une nouvelle police à Windows).

Pour définir une police Nerd à utiliser avec Oh My Posh et Terminal-Icons, ouvrez l’interface utilisateur des paramètres du Terminal Windows en sélectionnant Paramètres (Ctrl+,) dans le menu déroulant Terminal Windows. Sélectionnez le profil auquel vous voulez appliquer la police, par exemple PowerShell, puis l’onglet Apparence. Dans le menu déroulant Type de police, sélectionnez CaskaydiaCove Nerd Font ou la police Nerd que vous souhaitez utiliser avec votre invite de commandes personnalisée.

Notes

Pour utiliser une police de terminal qui ne prend pas en charge les icônes de glyphe, comme Cascadia Code PL, vous pouvez envisager d’utiliser un thème Oh My Posh contenant la fonction minimal, qui indique qu’aucune icône supplémentaire n’est nécessaire.

Personnaliser votre invite PowerShell avec Oh My Posh

Oh My Posh vous permet d’utiliser un jeu de couleurs complet pour définir et afficher votre invite de commandes. Vous pouvez utiliser des thèmes intégrés ou créer votre propre thème.

Installer Oh My Posh pour PowerShell

Pour personnaliser votre invite PowerShell, vous pouvez installer Oh My Posh en utilisant WinGet. Entrez la commande :

winget install JanDeDobbeleer.OhMyPosh

Les éléments suivants sont installés :

Vous devrez accepter les termes sources et pourrez rencontrer des cas où plusieurs packages sont disponibles. Dans ce cas, sélectionnez l’ID de package que vous souhaitez utiliser et entrez à nouveau la commande : winget install <package ID>.

Screenshot of winget install oh my posh packages.

Pour utiliser la version du Microsoft Store de Oh My Posh, qui sera automatiquement mise à jour lorsque de nouvelles versions sont disponibles, utilisez la commande :

winget install XP8K0HKJFRXGCK

Entrez oh-my-posh version pour confirmer le numéro de version de votre installation Oh My Posh. Pour vous assurer que vous disposez des dernières mises à jour, vous pouvez utiliser la commande suivante : winget upgrade oh-my-posh.

Notes

Si vous souhaitez installer la version la plus récente de Oh My Posh dans PowerShell, vous pouvez d’abord supprimer les fichiers mis en cache du module OMP et désinstaller l’ancien module. Il existe des instructions pour ce faire dans la documentation Oh My Posh. Si vous êtes plus familier avec le programme d’installation de Scoop ou une méthode d’installation manuelle qui permet l’automatisation, ceux-ci peuvent également être utilisés pour l’installation sur Windows, suivez simplement les instructions de la documentation Oh My Posh.

Choisir et appliquer un thème d’invite PowerShell

Vous pouvez parcourir la liste complète des thèmes dans la page Oh My Posh themes.

Choisissez un thème et mettez à jour votre profil PowerShell avec cette commande. (Vous pouvez remplacer notepad par l’éditeur de texte de votre choix.)

notepad $PROFILE

Si vous recevez une erreur de chemin d’accès, vous n’avez peut-être pas encore de profil pour PowerShell. Utilisez la commande PowerShell suivante pour créer un profil, puis réessayez de l’ouvrir avec un éditeur de texte.

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

Ajoutez le code suivant à la fin de votre fichier de profil PowerShell pour définir le thème paradox. (Remplacez paradox par le thème de votre choix.)

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

À présent, chaque nouvelle instance de PowerShell démarre en important Oh My Posh et en définissant votre thème de ligne de commande.

Si vous recevez une erreur de script lors de la tentative d’ouverture d’une nouvelle instance PowerShell, votre stratégie d’exécution pour PowerShell peut être restreinte. Pour définir une stratégie d’exécution PowerShell sans restriction, vous devez lancer PowerShell en tant qu’administrateur, puis utiliser la commande suivante :

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Remarque

Il ne s’agit pas de votre profil Terminal Windows. Votre profil PowerShell est un script qui s’exécute chaque fois que PowerShell démarre. En savoir plus sur les profils PowerShell.

Conseil

Pour obtenir des réponses aux questions fréquentes ou aux problèmes courants, consultez le FAQ Oh My Posh. Pour en savoir plus sur la configuration et les paramètres généraux, notamment la restauration du répertoire de travail actuel, consultez la documentation Oh My Posh.

Personnaliser votre invite WSL avec Oh My Posh

Oh My Posh vous permet à présent de personnaliser des invites WSL, comme vous le feriez pour une invite PowerShell à l’aide de thèmes intégrés.

Installer Oh My Posh pour WSL

Nous vous recommandons d’installer Oh My Posh pour WSL, que vous utilisiez Bash, Zsh ou autre chose, en suivant le guide d’installation Linux dans la documentation Oh My Posh.

Actuellement, le chemin recommandé pour la personnalisation des invites WSL avec Oh My Posh utilise le gestionnaire de package Homebrew pour l’installation. (Homebrew fonctionne maintenant avec WSL) Lors de l’installation de Homebrew pour Linux, veillez à suivre les instructions des étapes suivantes pour ajouter Homebrew à votre CHEMIN et à votre script de profil d’interpréteur de commandes bash.

Homebrew va installer :

  • oh-my-posh : un executable, ajouté à /usr/local/bin
  • themes : les derniers thèmes Oh My Posh

Choisir et appliquer un thème d’invite WSL

Les thèmes Oh My Posh se trouvent dans le répertoire oh-my-posh sous forme de fichiers JSON. Pour trouver ce dernier, entrez cd $(brew --prefix oh-my-posh), puis simplement cd themes et ls pour obtenir la liste. Pour Ubuntu-20.04 exécuté par le biais de WSL, le chemin ressemble probablement à celui-ci : \\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes. Vous pouvez également voir à quoi ressemblent les thèmes dans la documentation Oh My Posh sur les thèmes.

Pour utiliser un thème, copiez-le à partir du dossier themes vers votre dossier $Home, puis ajoutez cette ligne au bas du fichier .profile qui se trouve dans votre dossier $Home :

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

Vous pouvez remplacer jandedobbeleer.omp.json par le nom du thème que vous préférez utiliser tant qu’il est copié dans votre dossier $Home.

Si vous utilisez oh-my-posh à la fois dans Windows avec PowerShell et avec WSL, vous pouvez également partager votre thème PowerShell avec WSL en pointant sur un thème dans le dossier de base de votre utilisateur Windows. Dans le chemin .profile de votre distribution WSL, remplacez ~ par le chemin : /mnt/c/Users/<WINDOWSUSERNAME>. Remplacement de <WINDOWSUSERNAME> par votre propre nom d’utilisateur Windows.

Si vous le souhaitez, vous pouvez personnaliser les thèmes Oh My Posh.

Utiliser Terminal-Icons pour ajouter des icônes de fichier ou dossier manquantes

Terminal-icons est un module PowerShell qui permet d’ajouter des icônes de fichier et dossier susceptibles d’être manquantes lors de l’affichage de fichiers ou dossiers dans Terminal Windows, en recherchant leur icône appropriée en fonction de leur nom ou extension. Le module tente d’utiliser des icônes pour les fichiers/dossiers connus, mais revient à une icône de fichier ou dossier générique si aucune icône n’est trouvée.

Pour installer Terminal-Icons avec PowerShell, utilisez la commande suivante :

Install-Module -Name Terminal-Icons -Repository PSGallery

Pour plus d’informations, notamment sur l’utilisation et les commandes, consultez le dépôt Terminal-Icons sur GitHub.

Ressources supplémentaires

  • Documentation Oh My Posh
  • Dépôt Terminal-Icons
  • Documentation Posh-Git : Posh-Git est un module PowerShell qui intègre Git et PowerShell en fournissant des informations récapitulatives de l’état Git affichables dans l’invite PowerShell.
  • Documentation PowerLine : PowerLine est un plug-in de ligne d’état pour vim qui fournit des lignes d’état et des invites pour plusieurs autres applications, notamment zsh, bash, tmux, IPython, Awesome, i3 et Qtile.