Możesz podać własne powiązania składające się z poleceń połączonych \;
. Na przykład w twoim ~/.tmux.conf
dodatku
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-layout
polecenia 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 -n
w trybie sterowania, a to wpływa na pierwszy. Istnieje biblioteka Pythona do korzystania z tego mechanizmu, o której nie patrzyłem dalej.
even-vertical
? Chciałbym zachować aktualnie używany układ.