za pomocą wielu terminali x-windows z jedną sesją tmux


19

Zwykle pracuję z 2 monitorami, które nie są ustawione w pionie (mam zasilacz stacjonarny pod lewym monitorem), ale chcę mieć 4 okna terminali obok siebie na ekranach, które mogę łatwo przełączać, tak jak to:

wprowadź opis zdjęcia tutaj

To ustawienie bardzo mnie zasmuca, ponieważ nie mogę z łatwością przewijać wszystkich 4 w rozsądny sposób, używając tylko mojej klawiatury (Alt-Tab nie wycina tego dla mnie, ponieważ nie zachowuje „porządkowania” wszystkich 4 okien - jeśli Wielokrotnie naciskałem Alt-Tab, po prostu odbija się między moimi 2 ostatnio używanymi oknami)

Czy istnieje sposób, aby Tmux wygenerował drugie okno X, dzięki czemu mogę mieć 2 okna X, z których każde ma w sobie 2 panele Tmux?


Więc twoim problemem jest (było) to, że masz okna sąsiadująco na dwóch monitorach, a klawisze Alt + Tab między dwoma najnowszymi oknami zamiast wszystkich czterech? To wygląda na pracę dla tiling window manager. Próbowałeś już? Jest ich dużo. awesome, i3, wmii, xmonad, I dwmsą jednymi z najlepszych. Sugerowałbym i3(1), choć dla twoich celów, ponieważ jest łatwy do pobrania (czytanie pliku konfiguracyjnego uczy zarówno elementów sterujących, jak i podstaw konfiguracji) i jest dostosowany do konfiguracji z wieloma monitorami (xinerama / xrandr).
— Braden Best

Próbowałem i3 i bardzo mi się podobało, ale spowodowało to awarie na mojej konfiguracji ubuntu mniej więcej raz na godzinę :( Z jakiegoś powodu nie grało to również z moimi monitorami.
— johnny_boy

naprawdę? A co z pozostałymi? wmii i xmonad będą kolejnymi w kolejce moich sugestii, ponieważ są one również „fantazyjnymi” kafelkami wms, po których następuje dwm (mój ulubiony). Choć nie są tak szeroko prezentowane jak i3, obsługują wiele monitorów dość elegancko IMO.
— Braden Best

Odpowiedzi:


15

tmux pozwala tworzyć „grupy sesji” - wiele sesji, z których wszystkie mogą być dołączone do tego samego zestawu okien.

(Dzięki dzięki https://gist.github.com/chakrit/5004006 :)

W lewym terminalu utwórz nową sesję + grupę okien.

tmux new-session -s left

Podziel go na szyby jak zwykle.

:split-window -v

W drugim (prawym) terminalu połącz się z istniejącą grupą okien. Będziesz musiał nadać mu starą nazwę, aby się połączyć, i własną nazwę sesji, aby ją odróżnić.

tmux new-session -t left -s right

W tej sesji utwórz kolejne okno i podziel

:new-window
:split-window -h

Teraz możesz zobaczyć wszystkie tmuxokna ( ) w każdym oknie (terminalu), ale widok w każdym z nich jest niezależny od drugiego.

Aby przełączać się między nimi (bez używania własnych skrótów menedżera okien), możesz użyć np. xdotool .

xdotool search --name 'left:0:' windowactivate
xdotool search --name 'right:1:' windowactivate

Są zakładamy, że masz włączone tmux„s set-titlesopcję, w celu nadania nazwy terminala przeszukiwania; i że używasz tylko jednego tmuxokna (zestawu paneli) w każdym.


Aby to zrobić, potrzebuję skryptu, który niezawodnie przeszukuje bieżące okienko i przejdzie do następnego, przy użyciu polecenia „aktywuj okno”, gdy jest to właściwe. Ale jeszcze nie wymyśliłem, jak to zrobić - myślę, że będzie potrzebował dodatkowego magazynu danych poza tym, co jest dostępne tmux.
— JigglyNaga,

Uwaga: może być konieczne włączenie agresywnego zmiany rozmiaru (setw -g agresywne-zmiana rozmiaru), w przeciwnym razie okna nie zmieszczą się na pełnym ekranie
— dgmora

0

Czy nie można zastosować mało zaawansowanej metody zmiany rozmiaru jednego terminala (poprzez przeciąganie krawędzi) w celu objęcia obu monitorów, tak aby środkowy rozdzielacz znajdował się na granicy dwóch monitorów?


1
Nie działa to, jeśli oba monitory mają różne wysokości lub jeśli używasz OS X.
— James

0

Będziesz chciał rozpocząć osobną tmuxsesję w każdym terminalu, a następnie podzielić pojedyncze tmuxokno każdej sesji na dwa panele w pionie.

Tak więc w każdym terminalu:

$ tmux new-session \; split-window -h

Lub krócej, w każdym terminalu:

$ tmux new \; splitw -h

Potrzebujesz dwóch sesji, ponieważ przy jednej sesji dwa terminale zawsze byłyby zsynchronizowane i pokazywałyby to samo tmuxokno.

Następnie użyj skrótów na pulpicie, aby przełączać się między dwoma terminalami.

Osobiście wybrałbym jeden monitor, tmuxsesję i dwa (lub wiele) podzielonych tmuxokien „za sobą” i zamieniałem się nimi Ctrlb- nale to kwestia gustu.

$ tmux new \; splitw -h \; neww \; splitw -h
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.