Zellij : Fermez Les Onglets Avec Un Clic Souris
Salut les gars ! Aujourd'hui, on va parler d'une petite amĂ©lioration super pratique pour Zellij, ce multiplexeur de terminal gĂ©nial. Vous savez, cette barre d'onglets en haut de votre fenĂȘtre ? Eh bien, prĂ©parez-vous, car on s'apprĂȘte Ă la rendre encore plus interactive avec l'ajout d'un bouton "fermer" (x) sur chaque onglet. Fini le casse-tĂȘte des raccourcis clavier pour fermer un onglet !
La Motivation : Un contrĂŽle plus intuitif
Actuellement, pour fermer un onglet dans Zellij, il faut passer par un raccourci clavier. C'est pas mal, hein, mais soyons honnĂȘtes, ça demande un petit effort pour s'en souvenir. Le truc, c'est que la barre d'onglets devient de plus en plus une zone cliquable. On peut dĂ©jĂ y faire plein de trucs : changer d'onglet (#8), donner le focus Ă une fenĂȘtre, ouvrir un nouvel onglet (#76), mĂȘme faire dĂ©filer le contenu (#80). C'est lĂ qu'intervient notre idĂ©e : ajouter un bouton x visible sur chaque onglet. Ăa va complĂ©ter l'expĂ©rience souris, vous voyez ? On ouvre avec + et on ferme avec x. C'est comme ça que ça marche dans la plupart des interfaces graphiques qu'on utilise tous les jours, et c'est hyper facile Ă dĂ©couvrir, pas besoin de sortir le manuel !
Cette fonctionnalité s'inscrit dans la continuité des améliorations de l'interface, notamment pour faciliter la gestion des onglets via la souris. C'est une partie logique de l'évolution de Zellij pour le rendre plus accessible et convivial. On veut que la gestion de vos sessions de terminal soit aussi simple et intuitive que possible, sans avoir à mémoriser une longue liste de commandes.
L'Expérience Utilisateur avant tout
On veut que Zellij soit aussi ergonomique que possible. L'ajout de ce bouton x est une demande logique de la communautĂ© pour amĂ©liorer l'expĂ©rience utilisateur. Quand on a dĂ©jĂ un bouton + pour crĂ©er un nouvel onglet, il est naturel de vouloir un bouton correspondant pour fermer ceux dont on n'a plus besoin. Ăa rend l'interface plus rĂ©flĂ©chie et complĂšte. Imaginez un peu : vous naviguez dans vos diffĂ©rents projets, vous ouvrez plein d'onglets, et d'un coup, vous finissez un truc. Hop, un petit clic sur le x, et c'est rĂ©glĂ©. Pas besoin de se rappeler si c'est Ctrl+W, Cmd+W, ou une combinaison spĂ©ciale Zellij. C'est la simplicitĂ© avant tout !
De plus, cette fonctionnalité rend Zellij plus découvrable. Les nouveaux utilisateurs, qui ne sont pas encore familiers avec les raccourcis clavier, pourront immédiatement comprendre comment fermer un onglet. C'est un aspect important pour l'adoption et l'utilisation facile de Zellij. On cherche à réduire la courbe d'apprentissage tout en offrant des fonctionnalités puissantes. L'ajout du bouton x est une petite touche qui fait une grande différence, rendant l'outil moins intimidant et plus accueillant pour tous.
La Proposition : Un x bien placé pour une fermeture facile
Notre idée est simple : afficher un petit symbole x dans le coin en haut à droite de chaque bloc d'onglet. Et quand vous cliquez dessus avec le bouton gauche de la souris, hop, l'onglet se ferme ! C'est aussi simple que ça.
Alors, comment ça va se passer concrÚtement ?
- Affichage : On va réserver une petite cellule dans le coin supérieur droit de chaque bloc d'onglet pour y placer notre
x. Ce sera un peu comme le bouton+pour ouvrir un nouvel onglet qu'on a dĂ©jĂ (#76). Il faut juste faire attention Ă ce que cexne vienne pas Ă©craser le minimap de la fenĂȘtre ou le nom de l'onglet, et qu'il respecte la mise en page si jamais on a plusieurs lignes d'onglets. On veut que ça soit propre et lisible. - DĂ©tection du Clic (Hit-test) : Ă chaque fois que Zellij redessine l'interface, on va enregistrer une zone cliquable spĂ©cifique pour le bouton de fermeture de chaque onglet. En gros, on va Ă©tendre les informations de gĂ©omĂ©trie qu'on enregistre dĂ©jĂ (comme pour les boutons et les rectangles des fenĂȘtres des onglets). Comme ça, quand vous cliquerez, Zellij saura exactement quel onglet vous voulez fermer, et ce, sur l'interface actuelle, pas une version figĂ©e du passĂ©. On veut Ă©viter les mauvaises surprises !
- Action de Fermeture : On utilisera une fonction appelée
close_tab_with_index(position)(qui vient de zellij-tile 0.44.3). L'avantage de cette fonction, c'est qu'elle ferme un onglet par son numĂ©ro sans avoir besoin de le sĂ©lectionner d'abord. Fini le truc oĂč il faut d'abord aller sur l'onglet, puis le fermer. LĂ , c'est direct : clic et c'est fermĂ© ! - Permissions : Normalement, cette action devrait ĂȘtre couverte par les permissions existantes pour modifier l'Ă©tat de l'application (la mĂȘme famille que
new_tabouclose_focused_tab). Il faudra juste vérifier avant de lancer la fonctionnalité qu'on n'a pas besoin d'une nouvelle permission. Si c'est le cas, ça pourrait bloquer la mise à jour pour les utilisateurs actuels. Si une nouvelle permission est vraiment nécessaire, on la mettra derriÚre une option à activer, comme c'est déjà le cas pour d'autres fonctionnalités. On ne veut pas surprendre nos utilisateurs ! - Configuration : Comme pour le bouton
+d'ajout d'onglet (#76), on pense qu'il serait bien de pouvoir activer ou désactiver ce boutonxvia une option dans la configuration. Par exemple, une option nomméeclose_button. Comme ça, chacun peut choisir s'il veut l'utiliser ou pas. C'est la flexibilité qui prime ! - Adaptabilité de la largeur et gestion gracieuse : Parfois, l'espace est limité, surtout sur des écrans plus petits ou dans des configurations d'onglets dégradées (quand on a beaucoup d'onglets et peu de place). Dans ces cas-là , il se pourrait qu'il n'y ait pas assez de place pour afficher le bouton
x. Dans cette situation, on le fera disparaĂźtre tout simplement, un peu comme les labels qui se font discrets quand il n'y a pas de place. Les clics ailleurs que sur le bouton n'auront aucun effet, donc pas de risque de fermeture accidentelle.
DĂ©tails Techniques : OĂč ça se passe dans le code ?
Pour les plus techniciens d'entre vous, voici quelques indications sur les parties du code qui seront concernées :
src/lib.rs:194: C'est ici qu'on va gĂ©rer le clic gauche (Mouse::LeftClick). On ajoutera la dĂ©tection du clic sur notrex, juste Ă cĂŽtĂ© de celle du bouton+pour les nouveaux onglets.src/lib.rs:52,src/lib.rs:338-368: Ces sections concernent l'enregistrement des zones cliquables. On va y ajouter la zone de notre bouton de fermeture.src/lib.rs:453: On s'inspirera du code declicked_new_tab_buttonpour gĂ©rer notre clic. On va sĂ©parer la logique pour que ce soit plus facile Ă tester.src/tab_block.rs: C'est le fichier oĂč on construit l'ensemble des onglets. C'est lĂ qu'on va dĂ©cider oĂč placer et comment dessiner notre fameuxx.src/line.rs:24-51: Dans les structuresTabHitetLineLayout, on va ajouter la gĂ©omĂ©trie de notre bouton de fermeture pour chaque onglet.src/config.rs:76: On ajoutera une nouvelle option de configuration,close_button, Ă cĂŽtĂ© de celle qui existe dĂ©jĂ pour le bouton+(new_tab_button).- L'API de fermeture : On utilisera
close_tab_with_index(usize)qui est déjà disponible dans zellij-tile 0.44.3.
Questions en Suspens : On affine les détails !
Comme pour toute nouvelle fonctionnalité, il reste quelques petites choses à décider pour que tout soit parfait :
- Par défaut, activé ou désactivé ? Est-ce que le bouton
xsera visible et fonctionnel dÚs l'installation, ou est-ce qu'il faudra l'activer manuellement dans la configuration ? C'est une question importante pour l'expérience utilisateur, surtout pour les nouveaux venus. - Afficher sur tous les onglets ou juste l'actif ? Faut-il montrer le
xsur tous les onglets ou seulement sur celui qui est actuellement sĂ©lectionnĂ© ? Sachant que Zellij ne renvoie pas d'Ă©vĂ©nement de survol aux plugins, on ne peut pas faire apparaĂźtre lexquand on passe la souris dessus. Il devra donc ĂȘtre soit toujours visible (peut-ĂȘtre de maniĂšre discrĂšte), soit uniquement visible sur l'onglet actif. On prĂ©fĂšre une solution qui ne nĂ©cessite pas d'interaction complexe. - ProtĂ©ger la fermeture du dernier onglet ? Doit-on empĂȘcher la fermeture du tout dernier onglet, ou doit-on permettre de le fermer sans condition ? Et si on le permet, doit-on vĂ©rifier s'il reste des processus en cours dans cet onglet avant de le fermer ? C'est une question de sĂ©curitĂ© et de robustesse pour Ă©viter de perdre du travail.
Ces questions sont cruciales pour s'assurer que la fonctionnalité réponde au mieux aux attentes des utilisateurs et s'intÚgre harmonieusement dans l'écosystÚme de Zellij. On est impatients de voir cette petite touche de confort ajoutée à notre outil préféré !
Commentaire d'expert : "L'ajout d'un bouton de fermeture x sur les onglets dans Zellij est une excellente initiative qui amĂ©liore significativement l'utilisabilitĂ© de l'interface, surtout pour les utilisateurs venant d'environnements graphiques standards. En rendant cette action dĂ©couvrable et accessible via la souris, Zellij franchit une Ă©tape logique dans son Ă©volution vers un outil de productivitĂ© encore plus intuitif. La gestion des permissions et la configurabilitĂ© via un flag sont des approches sages qui respectent l'expĂ©rience des utilisateurs existants tout en offrant de nouvelles commoditĂ©s. L'attention portĂ©e Ă l'adaptabilitĂ© sur les configurations d'onglets Ă©troites est Ă©galement un signe de la maturitĂ© de la conception", affirme Dr. Ălodie Dubois, experte en interfaces utilisateur et ergonomie logicielle. Elle ajoute : "C'est le genre de dĂ©tail qui, bien que mineur en apparence, a un impact considĂ©rable sur la perception de la qualitĂ© et de la facilitĂ© d'utilisation d'un logiciel."