Puis-je rendre un panneau tmux «collant»?

9

Est-il possible de rendre un ou plusieurs panneaux tmux "collants"? C'est-à-dire que ces volets apparaîtront dans toutes les fenêtres actuellement disponibles dans ma session tmux?

Arne
la source

Réponses:

5

Cela vient sur la liste de diffusion chaque fois dans un tout .

Non, il n'est pas possible d'avoir un volet dans plusieurs fenêtres.

La conception interne de tmux permet aux fenêtres d'être plusieurs sessions, mais un volet ne peut appartenir qu'à une seule fenêtre.

Chris Johnsen
la source
3

Comme Chris le dit, il n'y a pas de fonctionnalité intégrée pour permettre le marquage d'un volet comme collant, et ce genre de sens, car il n'est pas du tout évident de savoir comment gérer la restructuration de tous les volets sur toutes les autres fenêtres lorsque vous basculez le "collage" d'un volet particulier sur la fenêtre actuelle. Ce serait généralement une mauvaise expérience utilisateur de jouer avec la mise en page d'une manière qui n'est même pas visible pour l'utilisateur.

Vous pouvez trouver une liaison utile comme celle-ci:

bind -n M-k move-pane -t ':+'
bind -n M-j move-pane -t ':-'

Ce serait convivial pour un utilisateur de Vim habitué à J et K pour se déplacer à gauche et à droite. Avec cette liaison, tmux interviendra et avalera Alt+Ket Alt+Jdéplacera votre volet actif vers les fenêtres droite et gauche, respectivement.

Il tirera la fenêtre actuelle dans laquelle vous vous trouvez et la remplira dans la fenêtre tmux adjacente. Vous pouvez même probablement spécifier quel index insérer le volet dans la disposition de la fenêtre cible. Voir la page de manuel pour les autres options qui peuvent être données move-pane.

De cette façon, bien sûr, il y a encore un changement de disposition (un dans la fenêtre source qui est implicite et limité à un volet, et un dans la fenêtre cible, également limité à un volet et qui est directement observé) mais c'est beaucoup plus "contrôlé" ", et tant que vous gardez le focus sur le volet destiné à être" collant ", atteignez votre objectif, plus ou moins.

Je trouve toujours cela insatisfaisant en raison de la nécessité de concentrer le volet destiné à être "collant", et cela rend difficile l'émission rapide de cette commande si vous voulez avoir un volet collant qui est toujours visible mais vous ne l'avez jamais réellement réellement concentré .

Il existe la possibilité de proposer des scripts tmux légèrement plus élaborés qui utilisent des noms spéciaux pour le volet que vous souhaitez coller et organisent manuellement les éléments pour vous. Cela ressemble à une douleur dans le cul, cependant.

Une dernière option pour se divertir consiste à utiliser un tmux imbriqué: placez votre panneau collant dans le tmux parent et faites en sorte que l'autre volet contienne un tmux qui héberge le reste de vos terminaux. De cette façon, vous pouvez basculer librement dans votre tmux enfant. Le problème est que vous devrez trouver quelque chose de réalisable car par défaut, vous devrez appuyer deux fois sur la touche de préfixe pour effectuer les mêmes tâches. Très ennuyeux aussi. J'ai des liaisons qui "tunnelent" intelligemment à travers tous les tmux imbriqués, mais la logique de ces schémas de passage de messages inefficaces devient rapidement difficile à gérer. Et une limitation à cela est que la "vitre collante" doit couvrir toute la hauteur ou la largeur, elle ne peut pas être un coin.

En conclusion, je dirais que c'est une fonctionnalité que tmux devrait implémenter pour nous car il est presque impossible de bien faire avec les scripts, mais je ne sais pas comment cela pourrait être fait de manière non confuse (voir ma première phrase ).

Steven Lu
la source
2
Pour ce que ça vaut, je pense que plutôt que d'être collant, car il est en effet difficile de définir ce qu'il faut faire avec d'autres fenêtres, il devrait y avoir un volet de clone, que ceux qui veulent vraiment l'adhérence pourraient exploiter pour obtenir le même résultat. Et franchement, c'est le volet clone que je cherchais qui m'a conduit ici aussi. Ce serait une bonne caractéristique.
Tommi Kyntola