IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Windows Terminal Preview 1.7 prend désormais en charge les extensions de fragment JSON
Et s'accompagne de mises à jour de l'interface utilisateur des paramètres

Le , par Stéphane le calme

47PARTAGES

4  0 
C’est durant sa conférence annuelle Microsoft Build dédiée aux développeurs que l’éditeur a présenté Windows Terminal 1.0, la première version stable de sa nouvelle interface de ligne de commande pour Windows conçue pour être l’emplacement central pour l’accès à des environnements tels que PowerShell, Cmd et Windows Subsystem for Linux (WSL). Elle apporte la prise en charge de plusieurs onglets aux côtés de la personnalisation pour les développeurs qui souhaitent peaufiner l'application Terminal par le biais de thèmes ou d’extensions.

Microsoft a expliqué que « Windows Terminal est une application moderne, rapide, efficace, puissante et productive pour les utilisateurs d'outils et de shells en ligne de commande comme Command Prompt, PowerShell et WSL. Ses principales caractéristiques comprennent de multiples onglets, des volets, la prise en charge des caractères Unicode et UTF-8, un moteur de rendu de texte accéléré par le GPU, ainsi que des thèmes, des styles et des configurations personnalisés ».

L'éditeur a publié Windows Terminal Preview 1.7. Parcourons la liste des fonctionnalités.

Extensions de fragment JSON

Windows Terminal prend désormais en charge les extensions de fragment JSON. Cela signifie que des extraits (snippets) de JSON peuvent être téléchargés sous forme d'extensions qui peuvent modifier les paramètres d'un utilisateur. Vous pouvez créer un dossier qui comprend le fichier d'extrait de code JSON ainsi que d'autres éléments tels que des images d'arrière-plan à inclure dans votre extension. Ceci est particulièrement utile pour les applications qui souhaitent qu'un jeu de couleurs spécifique accompagne leur exécutable ou pour qu'un membre de la communauté partage la configuration de son Windows Terminal avec un simple téléchargement.

Le fichier JSON doit être divisé en 2 listes, une pour les profils et une pour les schémas. Voici un exemple de fichier json qui ajoute un nouveau profil, modifie un profil existant et crée un nouveau jeu de couleurs:

Code JSON : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
  "profiles": [
    {
      // met à jour le profil avec le GUID ci-dessous
      "updates": "{2c4de342-38b7-51cf-b940-23e9ae97f518}",
      "fontSize": 16,
      "fontWeight": "thin"
    },
    {
      // crée un nouveau profil
      "name": "Cool Profile",
      "commandline": "powershell.exe",
      "antialiasingMode": "aliased",
      "fontWeight": "bold",
      "colorScheme": "Postmodern Tango Light"
    }
  ],
  "schemes": [
    {
      // crée un nouveau jeu de couleurs
      "name": "Postmodern Tango Light",
 
      "black": "#0C0C0C",
      "red": "#C50F1F",
      "green": "#13A10E",
      "yellow": "#C19C00",
      "blue": "#0037DA",
      "purple": "#881798",
      "cyan": "#3A96DD",            
      "white": "#CCCCCC",
      "brightBlack": "#767676",
      "brightRed": "#E74856",
      "brightGreen": "#16C60C",
      "brightYellow": "#F9F1A5",
      "brightBlue": "#3B78FF",
      "brightPurple": "#B4009E",
      "brightCyan": "#61D6D6",
      "brightWhite": "#F2F2F2"
    }
  ]
}

Le premier élément de la liste "profiles" met à jour un profil existant, identifiant le profil qu'il souhaite mettre à jour via le GUID fourni dans le champ "updates". Le deuxième élément de cette liste crée un nouveau profil appelé "Cool Profile". Un GUID (abréviation de l'anglais globally unique identifier, en français : « identificateur global unique ») sert habituellement d'identifiant unique pour un composant logiciel, par exemple un plugin.

Dans la liste des "schemes", un nouveau schéma de couleurs appelé «Postmodern Tango Light» est défini et peut être référencé par la suite par l'utilisateur dans son fichier de paramètres ou dans ce fichier JSON lui-même (notez que «Cool Profile» utilise ce schéma de couleur nouvellement défini).

Bien sûr, si le développeur souhaite uniquement ajouter / modifier des profils sans ajouter de jeux de couleurs (et vice-versa), seule la liste pertinente doit être présente et l'autre liste peut être omise.

Comment déterminer le GUID d'un profil existant

Les seuls profils qui peuvent être modifiés via des fragments sont les profils par défaut, l'invite de commande et PowerShell, ainsi que les profils dynamiques. Pour déterminer le GUID du profil à mettre à jour, utilisez un générateur UUID version 5 avec le GUID et le nom d'espace de noms suivants:
  • Le GUID de l'espace de noms: {2BDE4A90-D05F-401C-9492-E40884EAD1D8}
  • Le nom du profil à mettre à jourf

Pour vérifier la cohérence, un profil appelé «Ubuntu» obtiendra le GUID généré: {2C4DE342-38B7-51CF-B940-2309A097F518}

Configuration minimale requise pour les paramètres ajoutés avec des fragments

Il existe quelques restrictions minimales sur ce qui peut être ajouté aux paramètres utilisateur à l'aide de fragments JSON:
  • Pour les nouveaux profils ajoutés via des fragments, le nouveau profil doit, au minimum, définir un nom pour lui-même.
  • Pour les nouveaux schémas de couleurs ajoutés via des fragments, le nouveau schéma de couleurs doit définir un nom pour lui-même, ainsi que définir chaque couleur dans la table des couleurs.

Où placer les fichiers de fragment JSON

L'emplacement où placer les fichiers de fragments JSON varie en fonction de la méthode d'installation de l'application qui souhaite les placer.

Applications du Microsoft Store

Pour les applications installées via le Microsoft Store (ou similaire), l'application doit se déclarer comme une extension d'application. Le fichier appxmanifest du package doit inclure:

Code XML : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<Package
  ...
  xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
  IgnorableNamespaces="uap uap3 mp">
  ...
    <Applications>
      <Application Id="App" ... >
        ...
        <Extensions>
          ...
          <uap3:Extension Category="windows.appExtension">
            <uap3:AppExtension Name="com.microsoft.windows.terminal.settings"
                               Id="<id>"
                               PublicFolder="Public">
            </uap3:AppExtension>
          </uap3:Extension>
        </Extensions>
      </Application>
    </Applications>
    ...
</Package>

Points clés à noter:
  • Le champ «Name» doit être com.microsoft.windows.terminal.settings pour que le Terminal Windows puisse détecter l'extension.
  • Le champ "Id" peut être rempli comme le souhaite le développeur.
  • Le champ "PublicFolder" doit avoir le nom du dossier, relatif à la racine du package, où les fichiers JSON sont stockés (ce dossier est généralement appelé "Public" mais peut être nommé autrement si le développeur le souhaite).
  • Dans le dossier public, un sous-répertoire appelé «Fragments» doit être créé et les fichiers JSON doivent être stockés dans ce sous-répertoire.

Applications installées à partir du Web

Pour les applications installées à partir du Web, il existe 2 cas.

Le premier est que l'installation concerne tous les utilisateurs du système. Dans ce cas, les fichiers JSON doivent être ajoutés au dossier:

C:\ProgramData\Microsoft\Windows Terminal\Fragments\{app-name}

Dans le second cas, l'installation est réservée à l'utilisateur actuel. Dans ce cas, les fichiers JSON doivent être ajoutés au dossier:

C:\Users\<user>\AppData\Local\Microsoft\Windows Terminal\Fragments\{app-name}

Notez que les dossiers ProgramData et LocalAppData sont des dossiers connus auxquels le programme d'installation doit pouvoir accéder. Si dans les deux cas, si le répertoire Windows Terminal\Fragments n'existe pas, le programme d'installation doit le créer.

Améliorations du fenêtrage

Vous pouvez maintenant définir de nouvelles fenêtres de terminal à lancer dans une instance de terminal déjà existante! Cela peut être fait de différentes manières:

Un nouveau paramètre global a été ajouté, appelé windowingBehavior, qui vous permet de définir l'emplacement de lancement des nouvelles instances de Windows Terminal. Les options incluent une nouvelle fenêtre ("useNew"), une fenêtre déjà existante ("useAnyExisting") et une fenêtre déjà existante sur ce bureau ("useExisting"). Ce paramètre se trouve sur la page de démarrage de l'interface utilisateur des paramètres.


Windows Terminal bénéficie d'une nouvelle action appelée newWindow, qui vous permet d'ouvrir une nouvelle fenêtre avec la palette de commandes et / ou votre clavier.

Code PowerShell : Sélectionner tout
{ "command": "newWindow", "keys": "ctrl+shift+n" }

Il existe également un nouvel argument de ligne de commande pour exécuter des commandes dans des fenêtres spécifiques. Vous pouvez utiliser --window,-w <window-id> avec wt.exe pour spécifier la fenêtre de terminal avec laquelle vous souhaitez interagir.

Code PowerShell : Sélectionner tout
1
2
3
4
5
6
7
8
// Ouvre un nouvel onglet avec le profil par défaut dans la fenêtre actuelle
wt -w 0 new-tab
 
// Ouvre un nouvel onglet avec le profil par défaut dans la troisième fenêtre de terminal créée
wt -w 3 new-tab
 
// Ouvre un nouvel onglet avec le profil par défaut dans une nouvelle fenêtre
wt -w -1 new-tab

Volets en lecture seule

Windows Terminal prend désormais en charge les volets en lecture seule. Cela vous permet d'empêcher l'entrée dans un volet, ce qui peut être utile si vous avez une compilation ou un processus en cours d'exécution que vous ne souhaitez pas interrompre. Si vous essayez de fermer ou de saisir du texte dans un volet en lecture seule, le terminal affichera à la place un avertissement contextuel. Vous pouvez basculer en mode lecture seule sur un volet avec l'action toggleReadOnlyMode.

Focus automatique lors d'un évènement survol de la souris

Un nouveau paramètre a été ajouté dans lequel vous pouvez avoir automatiquement un focus sur un volet lorsqu'il est survolé avec la souris. Ce nouveau paramètre global se trouve sur la page Interaction de l'interface utilisateur des paramètres ou peut être défini dans votre settings.json avec focusFollowMouse.

"focusFollowMouse": trueCe paramètre est défini sur false par défaut.

Mises à jour de l'interface utilisateur des paramètres

Microsoft travaille toujours activement à l'amélioration de l'expérience utilisateur des paramètres. Voici quelques mises à jour de cette version:

L'interface utilisateur des paramètres est désormais définie par défaut

L'interface utilisateur des paramètres est désormais associée au bouton Paramètres dans le menu déroulant, ce qui en fait l'expérience par défaut pour ceux qui utilisent Windows Terminal Preview. Si vous souhaitez utiliser le clavier pour accéder à vos paramètres, voici les raccourcis fournis par défaut avec le terminal:
  • Ouvrir l'interface utilisateur des paramètres: Ctrl +,
  • Ouvrir le fichier settings.json: Ctrl + Shift +,
  • Ouvrir le fichier defaults.json (ne peut pas être modifié, mais montre quels paramètres sont activés par défaut): Ctrl + Alt +,

Microsoft précise que tous les paramètres ne sont pas encore disponibles via l'interface utilisateur des paramètres.

Page Actions

Microsoft a ajouté une nouvelle page Actions, qui vous montre tous les raccourcis clavier que vous pouvez utiliser dans le terminal. La prochaine étape consiste à rendre les actions modifiables dans l'interface utilisateur des paramètres, afin que vous puissiez personnaliser ces raccourcis clavier sans avoir à accéder à votre fichier settings.json.


Source : Microsoft

Une erreur dans cette actualité ? Signalez-le nous !