Windows Terminal : trucs et astuces

I. Présentation

Windows Terminal est disponible en version stable depuis le 19 mai 2020. Cette application moderne est disponible à partir du Microsoft Store, gratuitement. Elle a pour objectif de regrouper les différents outils en ligne de commande et les shells disponibles sous Windows : Invite de commande, Windows PowerShell, PowerShell, Azure Cloud Shell, ainsi que Windows Subsystem for Linux (WSL).

En plus de permettre l'utilisation des différents shells depuis une même interface, Windows Terminal permet d'ouvrir plusieurs onglets en même temps, ce qui est très pratique.

Dans cet article, je vous propose de découvrir des trucs et astuces pour maîtriser et personnaliser Windows Terminal. Cette liste n'est pas exhaustive mais elle est déjà intéressante. Pour rappel, la configuration s'effectue par l'intermédiaire du fichier settings.json (accessible via le menu "Paramètres" de l'application).

Disponible également au format vidéo :

II. Modification du fichier settings.json : avertissement

Vous devez manipuler le fichier settings.json avec précaution, comme tout langage il y a une syntaxe à respecter. Voici quelques règles et pièges à éviter.

Tout d'abord, il faut savoir que le fichier settings.json est stocké dans le profil de l'utilisateur, à l'emplacement suivant :

C:\Users\<user>\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState

Il faut être vigilant notamment sur les virgules.

Dans un bloc, lorsque l'on ajoute un élément pour déclarer une propriété, il faut penser à ajouter une virgule à la fin de la ligne précédente : seule la dernière ligne, avant la fermeture du bloc, ne doit pas avoir de virgule. Par exemple :

{
// Make changes here to the cmd.exe profile.
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "Invite de commandes",
"commandline": "cmd.exe"
},

Pour les éventuels chemins vers des dossiers ou fichiers, utilisez des "/" et non des anti-slashs, comme c'est le cas lorsque l'on copie un chemin dans l'explorateur Windows.

Par ailleurs, il faut savoir que le bloc "defaults":{} sous "profiles" sert à définir des paramètres communs à l'ensemble des consoles. Par exemple : un thème commun, un fond d'écran commun ou encore un dossier de démarrage commun. Ce qui n'empêche pas de faire une exception sur une console en indiquant une valeur personnalisée au niveau de son bloc.

III. Comment utiliser un thème ?

Le bloc "schemes" du fichier de configuration settings.json sert à créer un thème pour la console. Par défaut, ce bloc est présent mais il est vide :

 // Add custom color schemes to this array.
// To learn more about color schemes, visit https://aka.ms/terminal-color-schemes
"schemes": [],

Il est possible de créer son propre thème de manière très précise. Microsoft de son côté propose quelques thèmes déjà inclus à Windows Terminal et qu'il suffit d'appeler via la propriété colorScheme. La liste des thèmes est disponible sur cette page : Thèmes Windows Terminal

Sur GitHub, nous retrouvons également d'autres thèmes, où il faudra par contre intégrer le code complet dans le fichier settings.json. Retrouvez-les par ici : Thèmes Windows Terminal

Par exemple, pour utiliser le thème "Vintage" pour l'invite de commande, on ajoutera cette ligne :

{
// Make changes here to the cmd.exe profile.
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "Invite de commandes",
"commandline": "cmd.exe",
"hidden": false,
"colorScheme": "Vintage"
},

Ce qui donne :

Pour définir un thème personnalisé ou intégrer un thème récupéré sur GitHub, il faut alimenter le bloc "schemes": [] du fichier settings.json : il est vide par défaut.

"schemes": [],

Entre les crochets, vous devez venir intégrer votre thème et ensuite dans propriété colorScheme que l'on a vu précédemment, vous l'appelez par son nom ? - Le nom correspond à la propriété "Name" dans la déclaration ci-dessous.

Voici un exemple

"schemes": [
  {
   "name": "MaterialDark",
   "black": "#212121",
   "red": "#b7141f",
   "green": "#457b24",
   "yellow": "#f6981e",
   "blue": "#134eb2",
   "purple": "#560088",
   "cyan": "#39B4E3",
   "white": "#efefef",
   "brightBlack": "#FF8500",
   "brightRed": "#e83b3f",
   "brightGreen": "#7aba3a",
   "brightYellow": "#ffea2e",
   "brightBlue": "#54a4f3",
   "brightPurple": "#aa4dbc",
   "brightCyan": "#26bbd1",
   "brightWhite": "#d9d9d9",
   "background": "#232322",
   "foreground": "#e5e5e5"
  }
],

Pour aller plus loin avec les thèmes, je vous invite à consulter cette page : Powerline

IV. Modifier la couleur du curseur

La couleur du curseur au niveau du prompt est définie par le thème mais sa valeur peut être modifiée, même si vous utilisez un thème prédéfini. La propriété cursorColor doit être configurée :

 {
// Make changes here to the powershell.exe profile.
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false,
"cursorColor" : "#FF8500"
},

La couleur doit être définie au format web, avec une valeur en hexadécimale. Il y a des palettes de couleurs en ligne si besoin ?. Dans cet exemple, j'ai défini le curseur en orange :

V. Exécuter Windows Terminal depuis la ligne de commande

Pour ouvrir une nouvelle instance de Windows Terminal, il suffit d'appeler "wt.exe" depuis la ligne de commande ou l'invite "Exécuter" de Windows. L'alias wt est également disponible.

L'intérêt c'est de pouvoir exécuter WT avec des paramètres complémentaires, par exemple pour splitter un même onglet de façon à avoir plusieurs consoles à l'écran, sans même changer d'onglet.

Pour créer un onglet fractionné, nous devons utiliser l'option split-pane, alors que pour ajouter un nouvel onglet, l'option est new-tab.

Par exemple, pour ouvrir un onglet avec PowerShell 7.0.1 en principal, Windows PowerShell et l'Invite de commande, il faudra exécuter cette commande :

wt -p "PowerShell" `; split-pane -p "Windows PowerShell" `; split-pane -p "Invite de commandes"

L'option "-p" sert à préciser le nom du profil, c'est-à-dire le nom de la console dans le fichier settings.json, au niveau de la propriété "Name" de chaque profil :

Voilà le résultat :

Afin d'ouvrir Windows Terminal avec plusieurs onglets, comme je le disais il faut utiliser l'option new-tab. Par exemple, pour ouvrir PowerShell et Windows PowerShell :

wt -p "PowerShell" `; new-tab -p "Windows PowerShell" ; focus-tab -t 0

L'option "focus-tab -t 0" sert à préciser l'onglet actif : 0 étant le premier onglet. Si cette option n'est pas spécifiée, c'est le dernier onglet de la liste qui sera actif.

Lorsqu'une console s'ouvre, elle va démarrer dans son dossier par défaut. L'option "-d" permet de spécifier un dossier de démarrage spécifique pour chaque console. Par exemple, pour démarrer la console "Windows PowerShell" avec un prompt directement dans "C:\TEMP", on utilisera ceci :

wt -p "PowerShell" `; split-pane -p "Windows PowerShell" -d "C:\TEMP" `; split-pane -p "Invite de commandes"

VI. Supprimer la confirmation pour fermer tous les onglets

Si vous fermez Windows Terminal alors qu'il y a plusieurs onglets actifs, un message s'affiche à l'écran pour vous demander si vous êtes sûr de vouloir fermer tous les onglets. Cet avertissement peut-être désactivé.

Cette option se place à la racine de la configuration, et non dans la partie "profiles". La ligne suivante doit être ajoutée (la valeur par défaut est true) :

 "confirmCloseAllTabs": false,

VII. Raccourcis claviers personnalisés

Windows Terminal intègre certains raccourcis, comme CTRL+C pour réaliser un "copier". Il faut savoir que ces raccourcis claviers sont personnalisables et il est possible d'en ajouter. A la fin du fichier settings.json, vous avez un tableau nommé "keybindings":[] qui contient tous les raccourcis.

Par exemple pour effectuer une recherche le raccourci est "CTRL + SHIFT + F". Personnellement, je préfère utiliser "CTRL + F" qui est universel sous Windows, disons. Il suffit de modifier ce bloc :

 { "command": "find", "keys": "ctrl+shift+f" },

Par :

 { "command": "find", "keys": "ctrl+f" },

Il est intéressant également d'ajouter le raccourci clavier "CTRL +T" pour ouvrir un nouvel onglet, comme dans un navigateur ! Voici la déclaration de commande correspondante :

 // Press Ctrl+T to open a new-tab
{ "command": "newTab", "keys": "ctrl+t" },

Note : il est important de commenter le fichier de configuration, pour cela commencez une ligne par "//" suivi de votre commentaire, comme dans l'exemple ci-dessus.

D'autres exemples sont inclus à la documentation : Keyboard Shortcut Windows Terminal

VIII. Conclusion

Grâce aux options de personnalisation que l'on peut gérer console par console, Windows Terminal offre vraiment des possibilités intéressantes pour se faire des consoles aux petits oignons. 

En bonus, pour modifier le fond d'écran, je vous invite à retrouver l'article dédié à cette modification : ? Modifier le background de Windows Terminal

D'autres options sont disponibles, je vous invite à consulter la documentation Microsoft si vous n'avez pas trouvé votre bonheur dans cet article. Vous pouvez aussi poster un commentaire sur cet article.

Maintenant, à toi de jouer et de t'amuser...

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5471.Voir tous les posts

5 thoughts on “Windows Terminal : trucs et astuces

  • Bonjour à tous.

    Merci pour les explications et la présentation de Windows Terminal.
    Est-il possible de définir Windows Terminal par défaut ?
    Par exemple, lorsque je veux lancer un fichier batch (.bat), il se lance automatiquement avec l’Invite de commandes par défaut (cmd.exe).
    J’ai tenté de modifier cela via :
    Paramètres\Applications\Applications par défaut\Choisir les applications par défaut par type de fichier.
    Impossible de sélectionner Windows Terminal.

    Si vous avez une astuce, je suis preneur.

    Merci d’avance et bravo pour votre travail.

    Répondre
    • Bonjour Bruno,

      Pour le moment je n’ai pas réussi non plus à réaliser cette modification. Je me le note dans un coin de regarder plus en détail…. Je publierai les infos sur le site.

      Bonne journée
      Florian

      Répondre
  • Bonjour,

    Je souhaiterais savoir comment télécharger Windows terminal sans passer par le microsoft-store svp?
    Car en cherchant un peu sur le net et sur le site de microsoft, impossible de le trouver en package d’install classique, ou alors je trouve des sites de téléchargement qui ne m’inspirent pas confiance.

    Merci d’avance. Bon article 😉
    Cdlt,

    Répondre
    • Salut Christophe,
      Effectivement c’est cool de pouvoir faire ça avec Windows Terminal, je ne connaissais pas, merci ! 😉
      Bonne journée
      Florian

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.