Jak automatycznie równoważyć panele tmux za każdym razem, gdy panel jest dodawany / usuwany?


2

Aby zrównoważyć panele w bieżącym oknie, można użyć Ctrl- b Meta- 1.. 5( 1 , 2 ). Czy istnieje jednak sposób automatycznego równoważenia za każdym razem, gdy panel jest dodawany lub usuwany?

Weźmy na przykład pod uwagę, że mam dwa równie wysokie panele w even-verticalukładzie. Teraz, kiedy podzielę bieżący panel na dwa (górny i dolny), chciałbym, aby tmux automatycznie równoważył wszystkie panele, dzięki czemu uzyskałem trzy równie wysokie panele w even-verticalukładzie.

Odpowiedzi:


3

Możesz podać własne powiązania składające się z poleceń połączonych \;. Na przykład w twoim ~/.tmux.confdodatku

bind-key '"' split-window \; select-layout -n \; select-layout -p

Powoduje to Ctrl-b "podzielenie okna, a następnie zmianę układu na następny układ, a następnie powrót do poprzedniego. Musisz to zrobić dla innych poleceń, które dodają lub usuwają okna.


Jeśli chcesz mieć więcej automatycznej kontroli, możesz napisać proces w trybie sterowania tmux w tle, aby słuchać prawdziwego procesu tmux. Otrzymuje powiadomienia o wszystkim, co dzieje się w prawdziwym tmuxie, a następnie możesz wysyłać select-layoutpolecenia za każdym razem, gdy zobaczysz powiadomienie o nowym oknie lub oknie usuniętym. Nie eksperymentowałem z tym dużo, ale jeśli użyjesz 2 terminali i uruchomisz normalną sesję w jednym

tmux new -s mysession

a w drugim

tmux -C attach -t mysession

wtedy, kiedy dzielisz okna, dodajesz nowe lub zamykasz je w normalnym tmux, otrzymasz linie takie jak

%layout-change @2 91a8,80x23,0,0[80x11,0,0,5,80x11,0,12,7]
%window-add @3
%window-close @1

w kontroli tmux. Kiedy je zobaczysz, możesz pisać select-layout -nw trybie sterowania, a to wpływa na pierwszy. Istnieje biblioteka Pythona do korzystania z tego mechanizmu, o której nie patrzyłem dalej.


Ale co, jeśli obecny układ różni się od even-vertical? Chciałbym zachować aktualnie używany układ.
— s3rvac

Znalezienie bieżącego układu jest trudne. Zamiast tego możesz jeździć na rowerze do przodu, a następnie do tyłu. Zaktualizowałem odpowiedź.
— Meuh

Dzięki. Pomyślałem jednak, że istnieje lepszy sposób niż ponowne powiązanie wszystkich kluczy. Na przykład regularnie zabijam okienko po prostu wychodząc ze skorupy, co jest prawie niemożliwe do „ponownego powiązania” w tmuxie.
— s3rvac,

Dodałem możliwy mechanizm, który może cię zainteresować, tryb sterowania tmux. Nie korzystałem z niego, ale wygląda to na wykonalne, choć trochę przesada.
— Meuh
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.