Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Déjà - Il devine ce que vous allez taper dans le terminal

L'humain est paresseux par nature, mais alors je ne vous raconte pas quand il s'agit de taper des lignes de commande... Mais bon, l'IA est arrivée dans nos vies et maintenant nous ne sommes plus que des gros sacs de viande et de graisse dont le cerveau se ramollit jour après jour. Donc, foutu pour foutu, autant y aller à fond et c'est pour cela qu'aujourd'hui, je vais vous parler de l'application Deja.

Deja est un outil de remplacement intelligent pour un autre outil dont je vous ai déjà parlé qui s'appelle ZSH Auto Suggestions qui va carrément deviner votre prochaine commande ZSH. C'est un truc qui fait donc de la prédiction de commande. Pour l'installer, vous pouvez passer par homebrew ou curl et hop, comme par magie, ce sera intégré directement à votre fichier .zshrc. Ensuite, vous rechargez votre terminal et c'est parti.

Deja remplace zsh-autosuggestions, le plugin de complétion dont dépend aussi zsh-copilot , donc il ne faut surtout pas garder les deux dans votre plugins=(). En effet, les deux réécrivent les mêmes widgets ZLE, et heureusement, quand deja détecte que l'autre est chargé, il affiche une ligne d'avertissement et se met en retrait plutôt que de coincer votre éditeur de ligne. Si vous gérez votre zsh avec Oh My Zsh ou zinit, il existe aussi une intégration dédiée pour chacun, et dans ce cas il faut enlever la ligne eval que l'installeur a ajoutée au .zshrc, sinon l'intégration est chargée deux fois.

Autre chose à savoir tout de suite, sinon vous allez chercher un moment : la suggestion s'accepte avec la flèche droite, pas avec Entrée (ça c'est pour envoyer la commande). Ensuite, Ctrl et flèche droite n'acceptent que le mot suivant, Tab ouvre la liste des alternatives classées sans quitter la ligne, et Ctrl+X coupe les suggestions pour toute la session.

Ça se base sur tout un tas de paramètres que je ne vais pas tous vous lister, mais en gros Deja est au courant du répertoire où vous êtes. Ensuite, si vous tapez des commandes mal fichues, il sera capable de vous en suggérer qui devraient correspondre à votre besoin. Et puis après, il y a l'historique et un score de fréquence ce qui fait que l'outil est vraiment hyper prédictif. Il n'y a pas d'IA derrière, c'est vraiment de l'algorithmie pure, mais ça rend bien des services. Surtout si vous tapez à peu près tout le temps les mêmes commandes au même moment, aux mêmes endroits.

Par exemple, l'outil retient que vous lancez make test après make build, et pondère la suggestion en conséquence. Les quatre signaux, correspondance floue, fréquence combinée à la récence avec une demi-vie d'une semaine, affinité avec le répertoire courant et probabilité d'enchaînement, sont fondus dans un score unique.

Le "flou", lui, se règle en trois crans selon l'écart toléré entre les lettres que vous tapez. Tight n'en laisse passer qu'un seul, smart jusqu'à quatre (c'est le réglage par défaut), et loose jusqu'à huit. En smart, taper par exemple gco proposera git checkout main ; alors qu'en loose, ça partira chercher beaucoup plus loin. Et Shift + flèche droite permet de passer au cran de "flou" suivant sans quitter la ligne.

Bref, je pense que ça va vous faire gagner un max de temps.

deja est publié sous licence MIT, se pose sur macOS et Linux, et ne connaît que zsh. Et si l'essai ne vous convainc pas, la désinstallation se fait en 4 étapes : enlever la ligne eval du .zshrc, tuer le démon avec pkill -f 'deja daemon', supprimer ~/.local/share/deja/, puis retirer le binaire avec brew uninstall deja ou, si vous êtes passé par le script curl, en supprimant le fichier posé dans ~/.local/bin/.

uhubctl - Couper le courant d'un port USB en une commande

Votre clé 4G ou Wifi que vous avez connectée en USB sur un vieux serveur situé au fond du garage, plante une fois ou deux fois par semaine et à chaque fois faut aller débrancher la clé et la rebrancher pour la réveiller / ressusciter ? Et bien c'est fini la galère les amis, puisque uhubctl règle ça en une commande. Cet outil coupe puis rallume le courant d'un port USB précis, sans que vous n'ayez à toucher au moindre câble.

C'est donc un petit utilitaire en ligne de commande, écrit en C par Vadim Mikhailov, qui pilote l'alimentation électrique de vos ports USB un par un. uhubctl -a off -p 2 éteint le port 2, -a on le rallume, et -a cycle enchaîne les deux avec une petite pause au milieu. C'est pile-poil ce qu'il faut pour rebooter par exemple un modem 4G figé ou une webcam qui ne répond plus.

Par contre, désolé mais ça ne fonctionne pas sur n'importe quel hub USB. Il vous faut un hub intelligent qui gère le per-port power switching, autrement dit capable de couper le jus d'un seul port sans toucher aux autres. Rassurez-vous, si vous ne savez pas quoi acheter, le projet maintient une liste de modèles compatibles que vous pouvez consulter ici .

Après y'a certains hubs qui coupent bien la connexion data mais laissent passer le courant (le fameux VBUS). Du coup vous croyez avoir éteint le port, et le téléphone branché dessus continue tranquillement de charger. Alors pour vérifier, branchez un ventilo ou une petite lampe USB et lancez la coupure. Si ça s'arrête vraiment, votre hub est bon. Sinon il sait uniquement couper la data, et pas l'alim.

Mais en tout cas, une fois le bon matériel entre les mains, les usages deviennent vraiment sympas ! Par exemple, avoir un disque dur USB alimenté seulement quand vous en avez besoin, histoire de tuer le phantom load qui bouffe du courant pour rien (pensez juste à bien le démonter avant de couper le jus, sinon bonjour la corruption ^^).

Y'a aussi le cluster de Raspberry Pi que vous allumez et éteignez nœud par nœud. Ou encore un plugin OctoPrint qui coupe l'alim USB de l'imprimante 3D une fois l'impression finie. Y'a même des bidouilleurs qui pilotent un ventilo ou une guirlande LED avec.

Côté installation, rien de méchant : apt install uhubctl sur Debian, Ubuntu et Raspbian, brew install uhubctl sur Mac. Sous Linux il faudra passer par sudo ou poser une règle udev pour les permissions, sinon l'outil râlera. Sur Windows par contre, laissez tomber pour la coupure d'alim. Le driver USB de Microsoft ne laisse pas passer la commande, donc uhubctl compile mais n'éteint rien du tout.

Et si vous visez le Raspberry Pi, gardez un œil sur ses bizarreries car sur pas mal de modèles, tous les ports sont liés. Si vous en coupez un, vous les coupez tous. La parade classique, c'est donc de brancher un vrai hub compatible sur le Pi et de piloter ses ports à lui.

Et si vous cherchez quoi en faire côté DIY de votre Pi, j'avais listé 130 idées pour votre Raspberry Pi qui se marient bien avec ce genre de contrôle à distance.

Bref, si vous bricolez de la domotique ou un rack de Raspberry Pi, vérifiez d'abord votre hub, puis foncez. C'est gratuit, open source et ça évite pas mal d'allers-retours vers la multiprise.

❌