# Utiliser "Oh my posh" sur le Terminal Windows

## **Installer "Oh My Posh" via Winget**

Pour personnaliser votre invite PowerShell, vous pouvez installer **Oh My Posh** en utilisant [WinGet](https://blog.smartcloudarchitect.fr/microsoft-winget). Entrez la commande :

```powershell
winget install JanDeDobbeleer.OhMyPosh
```

Ajouter les modules PowerShell **posh-git** & **oh-my-posh** :

```powershell
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser -AllowPrerelease
```

## **Ajouter la police Nerd**

Oh My Posh a été conçu pour utiliser les polices Nerd. Les polices Nerd sont des polices populaires qui sont corrigées pour inclure des icônes. Nous recommandons Meslo LGM NF, mais toute police Nerd doit être compatible avec les thèmes standard. Pour voir les icônes affichées dans Oh My Posh, installez une police Nerd et configurez votre terminal pour l'utiliser.

> Oh My Posh a une CLI pour vous aider à sélectionner et installer une police Nerd

Pour se faire, ouvrez un Terminal Windows en tant qu'administrateur et utilisez la commande suivante :

```powershell
oh-my-posh font install
```

Puis séléctionnez la police **Meslo** :

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685092991989/07ffd5a0-9c2f-4349-95a0-548d7de8c51a.png align="center")

Une fois l'installation terminée, vous devriez obtenir ce message :

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685093081906/bdb748fc-c0f1-4368-ba22-41a4cbc2b7d9.png align="center")

Maintenant, depuis le Terminal Windows, utilisez la combinaison <mark>CTRL + SHIT + ,</mark> et spécifiez l'usage de la nouvelle police en ajoutant cette ligne dans le fichier JSON des paramètres :

```json
{
    "profiles":
    {
        "defaults":
        {
            "font":
            {
                "face": "MesloLGM Nerd Font"
            }
        }
    }
}
```

## **Ajouter un thème**

Oh My Posh est livré avec de nombreux thèmes inclus prêts à l'emploi. Vous pouvez trouver la liste complète des thèmes sur [Github](https://github.com/JanDeDobbeleer/oh-my-posh/tree/main/themes).

> N'hésitez pas à parcourir la documentation pour trouver votre thème : [https://ohmyposh.dev/docs/themes](https://ohmyposh.dev/docs/themes)

Si vous utilisez PowerShell, vous pouvez afficher tous les thèmes disponibles à l'aide de l'applet de commande PowerShell suivante :

```powershell
Get-PoshThemes
```

Une fois votre thème identifié ajouter le JSON associé dans le répertoire associé à la variable d'environnement suivante :

```powershell
$env:POSH_THEMES_PATH
```

Dans mon cas; voici le résultat:

```plaintext
C:\Users\Ryzen\AppData\Local\Programs\oh-my-posh\themes
```

Pour plus de facilité, j'ai télécharger le repository GitHub puis j'ai copier / coller les JSON associés aux thèmes dans ce répertoire:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685105907246/01ad4f15-5c37-40a0-afe2-2db2ed557cae.png align="center")

Maintenant il ne reste plus qu'à appliquer un des thèmes avec cette commande:

```powershell
oh-my-posh init pwsh --config 'C:\Users\Ryzen\AppData\Local\Programs\oh-my-posh\themes\jandedobbeleer.omp.json' | Invoke-Expression
```

Et voilà, le thème est appliqué:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685106013332/8af492bc-feca-4b44-bd8c-2571cc6b0021.png align="center")

Pour qu'il se charge à chaque fois avec mon profil il suffit de modifier le fichier associé:

```powershell
notepad $PROFILE
```

Coller et enregistrer dans le fichier la ligne suivante:

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685106249935/239d2190-6d35-4599-be34-a47be21bed02.png align="center")

## **Ajouter des icônes de fichier ou dossier manquantes**

[Terminal-icons](https://github.com/devblackops/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 le 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.

```powershell
Install-Module -Name Terminal-Icons -Repository PSGallery
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685090483668/fb50930f-353f-41ef-b935-6444c06c269e.png align="center")

## **Visual Studio Code**

Après avoir configurer votre Terminal Windows, vous pouvez aussi l'utiliser via le Terminal VS Code. De mon côté, j'ai dû reconfigurer la police du Terminal VS Code pour éviter ce désagrément :

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685106608851/0e1b4cc6-ded5-4e97-8d87-ca099a518303.png align="center")

Dans les "Settings" de VS Code il m'a fallu modifier la valeur de :  
**Terminal &gt; Integrated: Font Family**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685106904479/98619669-e5cd-407f-8f10-269931bc223a.png align="center")

Et y spécifier la valeur suivante:

```plaintext
MesloLGM Nerd Font
```

Et voilà:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1685106993099/75fdc21b-9ed1-4fac-8bf5-f4ed1c6ed62c.png align="left")

## **Mise à jour**

Pour mettre à jour **Oh My Posh**, rien de plus simple qu'une ligne de commande :

```powershell
winget upgrade JanDeDobbeleer.OhMyPosh -s winget
```

## Liens utiles

* Le site officiel d'Oh My Posh: [https://ohmyposh.dev/](https://ohmyposh.dev/)
    
* Les polices Nerd: [https://www.nerdfonts.com/font-downloads](https://www.nerdfonts.com/font-downloads)
    
* Les thèmes: [https://github.com/JanDeDobbeleer/oh-my-posh/tree/main/themes](https://github.com/JanDeDobbeleer/oh-my-posh/tree/main/themes)
