Zellij : Fermez Les Onglets Avec Un Clic Souris

by fritz-hansen 48 views

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 ce x ne 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_tab ou close_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 bouton x via une option dans la configuration. Par exemple, une option nommĂ©e close_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 notre x, 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 de clicked_new_tab_button pour 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 fameux x.
  • src/line.rs:24-51 : Dans les structures TabHit et LineLayout, 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 x sera 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 x sur 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 le x quand 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."