Le gestionnaire de paquets winget gère désormais l'auto-complétion, comment l'activer ?

Le gestionnaire de paquets winget gère désormais l’auto-complétion, comment l’activer ?

Quelques commandes suffisent

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

15/09/2020 4 minutes
6

Le gestionnaire de paquets winget gère désormais l'auto-complétion, comment l'activer ?

Petit à petit, winget fait son nid. Si l'on attend encore des nouvelles sur son évolution dans les mois à venir ou des avancées majeures, des améliorations se font par petites touches, comme pour l'auto-complétion. Une fonctionnalité qui s'active pour le moment manuellement.

Si Microsoft a dévoilé son gestionnaire de paquets winget à la BUILD 2020, avec un plan de bataille devant mener à une version 1.0 au printemps 2021, l'outil a peu été mis à jour depuis. Les quelques releases diffusées sur le dépôt GitHub du projet sont surtout des phases préparatoires pour des évolutions que l'on attend de pouvoir essayer.

C'est notamment le cas du support des applications disponibles dans le Microsoft Store, qui pourront être installées comme celles du dépôt officiel, auquel tout le monde peut participer. La nouvelle feuille de route qui doit préciser les prochaines grandes étapes n'est toujours pas en ligne. Elle devrait l'être avant la fin de l'année.

Mais bonne nouvelle, on peut activer une fonctionnalité intéressante : l'auto-complétion.

Simplifier l'usage de winget au quotidien

Dans la pratique, elle permet de ne plus avoir à taper le nom d'une commande ou d'une application en entier. Il suffit de taper « winget ins » puis la touche Tabulation pour que la commande « install » soit affichée par exemple. Pour les applications, cela devrait le plus souvent vous éviter d'avoir recours à la recherche. 

Ainsi, tapez « winget install ble » puis sur la touche Tabulation pour voir défiler différents noms correspondant si vous cherchez Blender. Le dispositif pioche ses données dans toutes les sources enregistrées. Pour le moment il n'y a que le dépôt communautaire, mais le support du Microsoft Store a été anticipé, précisent les développeurs.

Une manipulation est par contre nécessaire pour profiter de l'auto-complétion. Il faut également disposer de la dernière version de winget en date, soit au moins la v.0.1.42241 Preview pour cette fonctionnalité.

PowerShell Auto-complétion winget
Les exemples donnés par l'équipe en charge du développement de winget

Simple comme un profil PowerShell

La solution passe par les profils PowerShell qui permettent d'enregistrer et d'activer à la demande des comportements spécifiques pour l'utilisateur courant ou tous les utilisateurs/hôtes du système. Le Blocs-notes suffit à l'éditer, puisqu'il s'agit d'un simple fichier texte :

notepad $PROFILE

Cette commande ouvrira le profil de l'utilisateur courant. Par défaut, il n'en existe aucun. Si c'est votre cas, il vous sera proposé de le créer. Pour éditer plutôt le profil de tous les utilisateurs tapez (avec les droits administrateur) :

notepad $PROFILE.AllUsersCurrentHost

Une fois le fichier ouvert, ajoutez-y ce script qui permet d'activer l'auto-complétion pour winget :

Register-ArgumentCompleter -Native -CommandName winget -ScriptBlock {
    param($wordToComplete, $commandAst, $cursorPosition)
        [Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = [System.Text.Utf8Encoding]::new()
        $Local:word = $wordToComplete.Replace('"', '""')
        $Local:ast = $commandAst.ToString().Replace('"', '""')
        winget complete --word="$Local:word" --commandline "$Local:ast" --position $cursorPosition | ForEach-Object {
            [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
        }
}

Après enregistrement du fichier, vous devez autoriser PowerShell à utiliser des scripts locaux, ce qui est impossible avec les paramètres de sécurité par défaut. Pour cela, tapez la commande suivante avec les droits administrateur :

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Ou si vous voulez que cela s'applique à tous les utilisateurs :

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

Cette modification faite, soyez vigilants puisque n'importe quel script PowerShell présent sur la machine pourra être exécuté. Pour revenir en arrière, il vous suffira de taper, selon le cas :

Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine

Une fois la procédure terminée, fermez toutes les fenêtres PowerShell. Ouvrez-en une nouvelle, l'auto-complétion sera active. Si vous avez une erreur affichée en rouge, c'est qu'une étape s'est mal déroulée.

6

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Simplifier l'usage de winget au quotidien

Simple comme un profil PowerShell

Commentaires (6)


Ajout sympa, mais sans action de désinstallation, ça reste du gros WIP :)
Vivement la v1 pour voir ce que ça donne par rapport à un choco, même si au début ça risque de manquer de paquets…


C’est plus la mise à jour qui manque amha que la désinstallation (qui reste facile à mettre en œuvre, même si le fait de pouvoir gérer en ligne de commandes serait un plus :chinois: Mais bon, une fois l’ajout du Store on aura déjà passé un bon cap. Espérons que ce sera avant la fin de l’année.


David_L

C’est plus la mise à jour qui manque amha que la désinstallation (qui reste facile à mettre en œuvre, même si le fait de pouvoir gérer en ligne de commandes serait un plus :chinois: Mais bon, une fois l’ajout du Store on aura déjà passé un bon cap. Espérons que ce sera avant la fin de l’année.


Aussi. Bref les 3 fonctions vitales d’un gestionnaire de paquet… Je suis même étonné qu’ils n’aient pas fait un truc de bout en bout dès le début, même non fonctionnel, pour valider les choix technologiques…


Je ne comprends même pas qu’il n’y ait pas un winget update… LE truc utile d’un gestionnaire de paquet quand même…


C’est vraiment pas mal de la part de M$ ils s’ouvrent de plus en plus.
D’accord avec les autres commentaires : sans fonction d’update c’est useless mais ça viendra vite j’espère.


Si Microsoft a dévoilé son gestionnaire de paquets winget à la BUILD 2020, avec un plan de bataille devant mener à une version 1.0 au printemps 2021,



L’idée n’est pas neuve. Cela fait maintenant 10 piges qu’on en parle pour Windows ? Depuis se7en me semble-t-il.



Espérons que l’intégration des options de purge puissent être adaptées à Windows. Enlever les fichiers de config (user/appdata) ET les entrées dans la BDR (c’est pas faux que c’est bordélique parfois) sera de bon ton. Propre c’est bien mieux. Mais Ashampoo aide un peu déjà…