Kann ich ein tmux-Fenster "klebrig" machen?

9

Ist es möglich, eine oder mehrere tmux-Scheiben "klebrig" zu machen? Dh diese Fenster werden in allen Fenstern angezeigt, die derzeit in meiner tmux-Sitzung verfügbar sind?

Arne
quelle

Antworten:

5

Dies kommt jeder auf der Mailing - Liste einmal in einer Weile .

Nein, es ist nicht möglich, ein Fenster in mehr als einem Fenster zu haben.

Das interne Design von tmux ermöglicht, dass Fenster mehrere Sitzungen umfassen, ein Bereich jedoch nur zu einem einzelnen Fenster gehören kann.

Chris Johnsen
quelle
3

Wie Chris sagt, gibt es keine eingebaute Funktionalität, um das Markieren eines Fensters als klebrig zu ermöglichen, und diese Art von Sinn ist sinnvoll, da nicht sofort ersichtlich ist, wie die Umstrukturierung aller Fenster in allen anderen Fenstern zu handhaben ist wenn Sie die "Klebrigkeit" eines bestimmten Bereichs im aktuellen Fenster umschalten. Es wäre im Allgemeinen eine schlechte Benutzererfahrung, mit dem Layout auf eine Weise herumzuspielen, die für den Benutzer nicht einmal sichtbar ist.

Möglicherweise finden Sie eine Bindung wie diese nützlich:

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

Dies wäre freundlich für einen Vim-Benutzer, der an J und K gewöhnt ist, um sich nach links und rechts zu bewegen. Mit dieser Bindung tritt tmux ein und schluckt Alt+Kund Alt+Jverschiebt Ihren aktiven Bereich in das rechte bzw. linke Fenster.

Es zieht das aktuelle Fenster, in dem Sie sich befinden, und stopft es in das angrenzende tmux-Fenster. Sie können wahrscheinlich sogar angeben, welcher Index den Bereich in das Layout des Zielfensters einfügen soll. Auf der Manpage finden Sie weitere Optionen move-pane.

Auf diese Weise gibt es natürlich immer noch eine Layoutänderung (eine im Quellfenster, die implizit und auf einen Bereich beschränkt ist, und eine im Zielfenster, die ebenfalls auf einen Bereich beschränkt ist und die direkt beobachtet wird), aber sie ist viel "kontrollierter" ", und solange Sie den Fokus auf den Bereich legen, der" klebrig "sein soll, wird Ihr Ziel mehr oder weniger erreicht.

Ich finde dies immer noch unbefriedigend, da der Bereich, der "klebrig" sein soll, fokussiert werden muss, und das macht es schwierig, diesen Befehl schnell auszugeben, wenn Sie einen klebrigen Bereich haben möchten, der immer sichtbar ist, aber nie wirklich fokussiert ist .

Es besteht die Möglichkeit, ein etwas ausgefeilteres tmux-Skript zu erstellen, das spezielle Namen für den Bereich verwendet, in dem Sie kleben möchten, und manuell Dinge für Sie arrangiert. Das klingt allerdings nach einem Schmerz im Arsch.

Eine letzte Option zur Unterhaltung ist die Verwendung von verschachteltem tmux: Legen Sie Ihren Sticky-Bereich in den übergeordneten tmux und lassen Sie den anderen Bereich einen tmux enthalten, der den Rest Ihrer Terminals hostet. Auf diese Weise können Sie in Ihrem Kind tmux frei umschalten. Das Problem dabei ist, dass Sie sich etwas brauchbares einfallen lassen müssen, da Sie standardmäßig zweimal die Präfix-Taste drücken müssen, um dieselben Aufgaben auszuführen. Sehr nervig auch. Ich habe diesen intelligenten "Tunnel" durch verschachtelte tmuxes gebunden, aber die Logik dieser ineffizienten Nachrichtenübermittlungsschemata wird schnell schwierig zu verwalten. Und eine Einschränkung dabei ist, dass die "klebrige Scheibe" hier die gesamte Höhe oder Breite überspannen muss, es kann keine Ecke sein.

Abschließend würde ich sagen, dass dies eine Funktion ist, die tmux für uns implementieren sollte, da es fast unmöglich ist, mit Skripten richtig umzugehen, aber ich weiß nicht, wie dies tatsächlich auf nicht verwirrende Weise geschehen könnte (siehe meinen ersten Satz) ).

Steven Lu
quelle
2
Für das, was es wert ist, denke ich, anstatt klebrig zu sein, weil es in der Tat schwierig ist zu definieren, was mit anderen Fenstern zu tun ist, sollte es einen Klonbereich geben, den diejenigen, die wirklich Klebrigkeit wollen, ausnutzen könnten, um das gleiche Ergebnis zu erzielen. Und ehrlich gesagt ist es das Klonfenster, nach dem ich gesucht habe, das mich auch hierher führt. Das wäre eine gute Funktion.
Tommi Kyntola