Ce post traite de la configuration d’un thème pour le prompt de la ligne de commande de PowerShell et WSL (Ubuntu) dans Windows Terminal. Le thème permet d’obtenir:
- affichage d’indications concernant le status des repositories Git lorsque le path courant du shell est dans un dépôt
- indication des erreurs de commandes
- indications sur l’administrateur
- indication sur la session courante (admin,erreurs de commandes,utilisateur)
- possibilité de configuration et de création de thème
- compatibilité avec la console PowerShell
- compatibilité avec la console WSL Ubuntu
1. Installation de posh-git et oh-my-posh pour PowerShell
prérequis:
- WIndows Terminal doit être installé (version 18362.0 ou supérieure (v1903==Build 10.0.18362.0), architecture ARM64, x64, x86). Vous pouvez le télécharger depuis l’app store
- Git pour Windows doit être installé (téléchargeable depuis https://gitforwindows.org/)
Opérations d’installation en ligne de commande:
Ces commandes sont à lancer depuis une console PowerShell version 6.2.3 ou ultérieure.
Install-Module posh-git -Scope CurrentUser Install-Module oh-my-posh -Scope CurrentUser
Vous serez éventuellement sollicité d’installer le fournisseur NuGet pour PowerShellGet (dans ce cas acceptez l’installation). Il faudra approuver le référentiel de PSGallery également pour permettre l’installation.
Activation du thème:
Set-Prompt Set-Theme Paradox
vous pouvez vérifier la configuration actuelle de oh-my-posh avec la commande $ThemeSettings et la configuration de posh-git avec la commande $GitPromptSettings. Pour voir les couleurs du thème vous disposez des commandes Show-ThemeColors et Show-Colors

Ca y est ! le prompt de PowerShell a été remplacé par le prompt avec thème. Il faut encore penser à éditer le profile utilisateur du shell pour conserver ce réglage à chaque lancement de PowerShell. Pour cela, lancez la commande notepad $PROFILE depuis PS et renseignez le fichier (il est créé si il n’existe pas encore) comme suit, puis enregistrez le.

Choix du thème:
Dans les exemples précédents, on a fait référence au thème nommé Paradox. Il faut noter que d’autres thèmes de prompt prédéfinis existent et il suffit de remplacer le nom dans les exemples précédents pour en changer. Voila la liste des thèmes prédéfinis de oh-my-posh (images et liste d’après Jan De Dobbeler @ https://github.com/JanDeDobbeleer/oh-my-posh)
- Agnoster
- Paradox
- Sorin
- Darkblood
- Avit
- Honukai
- Fish
- Robbyrussel
Configuration de la police de caractères:
Cette étape est importante car les modules installés utilisent des glyphes étendus pour l’affichage du prompt (de posh-git). Vous avez surement remarqué la présence de caractères carrés avec flèche à l’intérieur dans le texte du prompt si vous avez reproduit les étapes précédentes d’installation. Pour corriger ce problème il convient d’installer une police de caractères adaptée dans Windows et de paramétrer son utilisation par le shell.
Je vous conseille d’utiliser la police « Cascadia PL » disponible sur https://github.com/microsoft/cascadia-code/releases . Téléchargez CascadiaPL.ttf et faites « installer » avec le menu contextuel de Windows 10 sur le fichier.
Pour mette en oeuvre la police de caractères dans PowerShell, ouvrez les settings du Windows Terminal (bouton [V] items settings) et éditez le fichier profiles.json en ajoutant dans la section défaut ou dans la section du shell de votre choix le paramètre: « fontFace »: « Cascadia Code PL »
Cette étape est expliquée en détail dans le post: Windows Terminal – Installation et configuration: tutoriel complet

D’autres polices de caractères à glyphes étendus sont disponibles sur le site: https://www.nerdfonts.com/
2. Installation de powerline pour le shell WSL Ubuntu
Ce que nous avons vu précédemment ne s’applique qu’au script PowerShell. Il faut une autre manipulation pour obtenir un prompt équivalent dans le shell Ubuntu. Il existe plusieurs outils disponibles, ici on va s’interresser à powerline avec un module écrit en go. Ces opérations sont a effectuer depuis le shell ubuntu :
sudo apt update sudo apt install golang-go go get -u github.com/justjanne/powerline-go Install-Module oh-my-posh -Scope CurrentUser
Il faut penser à ajouter au profile utilisateur un bout de script qui active le thème du prompt du shell, en éditant le fichier ~/.bashrc (avec vi par exemple):
GOPATH=$HOME/go function _update_ps1() { PS1="$($GOPATH/bin/powerline-go -error $?)" } if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND" fi
Il faut également penser à ajouter la police de caractères qui supporte les glyphes étendus comme vu précédemment dans profiles.json de Windows Terminal. Après avoir relancé le shell, le prompt est effectivement modifié, comme visible dans l’exemple suivant :
