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

82PARTAGES

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...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

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

Avatar de OrthodoxWindows
Membre expert https://www.developpez.com
Le 16/09/2022 à 2:30
Ce qui m'intéresserait, c'est le retour à l'utilisation du registre Windows (et non pas un fichier JSON), à l'utilisation des contrôle Win32 avec un respect des couleurs du système, et une diminution des ressources utilisés.
Et l'affichage MDI plutôt que des onglets (les onglets sont inutiles, il font doublon avec la barre des tâches).

Comme le projet est open-source, c'est théoriquement possible avec une fourche du projet.
0  0