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é.
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.