The most anything fetching program 4P

Cette vidéo présente Fetch It, un programme de fetch système écrit en C et configuré en Lua, qui permet une personnalisation quasi illimitée via son fichier de configuration, avec un accent sur la flexibilité et le contrôle total de l’affichage.

Voir la source

SYNTHÈSE STRUCTURÉE

Présentation de Fetch It et de son écosystème

L’intervenant introduit Fetch It, un outil créé par Enzoom, un développeur connu pour ses projets originaux. Il souligne immédiatement son enthousiasme : « C’est un programme écrit en C et configuré en Lua. Donc ma pile préférée absolue de tous les temps, c’est C et Lua. » Cette combinaison est appréciée pour sa performance (C) et sa simplicité de configuration (Lua). L’outil affiche des informations système (hostname, OS, GPU, etc.) avec un logo ASCII personnalisable.

Personnalisation du nom d’hôte et de l’OS

L’intervenant montre comment modifier le fichier de configuration pour afficher un nom d’OS personnalisé. Par exemple, il utilise Dactal OS en plus du nom réel Gen 2 Linux. Il explique que le fichier init.lua permet de définir des chaînes personnalisées pour chaque champ, y compris l’OS. Cela illustre la flexibilité de Fetch It : « Non seulement vous pouvez mettre le nom du système d’exploitation en minuscules, mais vous pouvez aussi y ajouter votre propre texte personnalisé. »

Gestion du GPU : entre auto-détection et hardcodage

Le point le plus délicat est l’affichage du GPU. L’intervenant montre que l’auto-détection produit des chaînes très longues et peu lisibles, comme 0 0.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 Radeon RX 7700 XT / 7800 XT. Il recommande de hardcoder le nom du GPU dans la configuration, car l’auto-détection est « une devinette » : « C’est à peu près aussi bien que ça peut l’être pour l’auto-détection du GPU. Vous devriez juste le hardcoder. » Il précise que cette approche est plus fiable et plus propre visuellement.

Structure du fichier de configuration

Le fichier de configuration est un script Lua qui définit des champs prédéfinis (hostname, username, OS, uptime, shell, terminal, etc.) et un logo ASCII. L’intervenant montre que chaque champ peut être personnalisé avec des couleurs et des fonctions Lua. Par exemple, pour l’uptime, il utilise uptime.prett pour un format lisible (jours, heures, minutes). Il ajoute : « Vous pouvez avoir autant d’options que vous voulez, et elles peuvent être de n’importe quelle couleur. »

Alignement du logo et du texte

Un aspect crucial est l’alignement entre le logo ASCII et les informations. Fetch It calcule automatiquement la largeur du logo en trouvant la ligne avec le plus de caractères. L’intervenant montre comment ajuster manuellement les espaces dans le logo pour un alignement parfait. Il mentionne aussi l’option column_padding qui contrôle l’espace entre le logo et le texte : « Si je mets ça à zéro, ce serait directement à côté du logo, et ce serait moche. Mais j’aime deux, je pense que c’est un bon compromis. »

Ajout de champs personnalisés avec Lua

Fetch It permet d’ajouter des champs totalement personnalisés en utilisant des fonctions Lua. Par exemple, pour afficher le répertoire personnel, il utilise os.getenv("HOME"). Il montre aussi comment utiliser la variable pwd pour afficher le répertoire courant, qui se met à jour dynamiquement : « Quand je fais cd dans mon répertoire de scripts, ça affichera toujours le bon répertoire. » Cela démontre la puissance de Lua pour étendre les fonctionnalités.

Intégration au shell pour un affichage automatique

Pour afficher Fetch It à chaque ouverture de terminal, il suffit d’ajouter la commande fetchit dans le fichier RC du shell (.bashrc, .zshrc, etc.). L’intervenant explique : « Tout ce que vous avez à faire, c’est d’aller dans le fichier RC de votre shell, quel qu’il soit, et d’écrire fetchit. » Cette astuce simple permet d’avoir le fetch à chaque session, sans configuration supplémentaire.

Limites et recommandations

L’intervenant reconnaît que l’auto-détection du GPU est imparfaite et recommande de la remplacer par une valeur fixe. Il souligne aussi l’importance de tester et d’ajuster l’alignement du logo, car cela dépend de la police et de la largeur du terminal. Enfin, il rappelle que la documentation (README.md) liste tous les champs disponibles, ce qui facilite la prise en main.

CONCEPTS CLÉS

  • Fetch It : programme de fetch système (affiche des infos sur le terminal) écrit en C, configurable en Lua.
  • Lua : langage de script léger et embarquable, utilisé ici pour la configuration.
  • Auto-détection : mécanisme qui tente de deviner les informations matérielles (GPU, etc.) ; souvent imprécis.
  • Hardcodage : le fait de définir manuellement une valeur fixe dans la configuration, plutôt que de la laisser être détectée.
  • Column padding : option de configuration qui contrôle l’espace horizontal entre le logo ASCII et les informations.
  • Shell RC : fichier de configuration du shell (.bashrc, .zshrc) exécuté à chaque démarrage d’une session.

CONCLUSION

Fetch It se distingue par sa flexibilité extrême grâce à Lua, permettant aux utilisateurs de créer un fetch parfaitement adapté à leurs besoins, que ce soit pour l’esthétique ou la fonctionnalité. L’intervenant insiste sur l’importance de personnaliser manuellement certains champs (comme le GPU) pour un rendu propre, et sur la simplicité d’intégration au shell. En résumé, c’est un outil puissant pour ceux qui veulent un contrôle total sur leur terminal, avec une courbe d’apprentissage modérée mais gratifiante.

Du même canal

Tout voir