Comment configurer un thème pour le prompt de Windows Terminal avec indication de status Git / session / erreur / fontes GlyphLinked

oh my posh powerline

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

powershell prompt avec theme
powershell prompt avec theme

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.

powershell profile
powershell profile

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
    agnoster
  • Paradox
    paradox
  • Sorin
    sorin
  • Darkblood
    darkblood
  • Avit
    darkblood
  • Honukai
    honukai
  • Fish
    fish
  • Robbyrussel
    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

visualisation des glyphes étendus dans le prompt PowerShell
visualisation des glyphes étendus dans le prompt PowerShell

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 :

prompt montrant des statuts gits, ubuntu en haut et powershell en bas
prompt montrant des statuts gits, ubuntu en haut et powershell en bas

Laisser un commentaire