за допомогою декількох термінальних x-windows з одним tmux сеансом


19

Зазвичай я працюю з двома моніторами, які не зовсім вертикально вирівняні (у мене лівий блок живлення під лівим монітором), але я хочу мати на своїх екранах 4 віконні кінцеві вікна, які я можу легко переходити, як-от так:

введіть тут опис зображення

Таке розташування робить мене дуже сумним, оскільки я не можу легко пройти крізь усі 4 розумним способом, використовуючи лише мою клавіатуру (альт-вкладка не скорочує це для мене, оскільки вона не підтримує "впорядкування" всіх 4 вікон - якщо Я кілька разів натискаю клавішу alt, вона просто відскакує між моїми 2 найменш використаними вікнами)

Чи є спосіб отримати tmux для створення другого x-вікна, щоб у мене було 2 x-windows, у кожному з яких 2 tmux-панелі всередині нього?


Отже, ваша проблема полягає в тому, що у вас вікна викладені плитками через два монітори та цикли вкладки Alt + між двома останніми вікнами замість усіх чотирьох? Це здається роботою для а tiling window manager. Ви пробували будь-які? Їх багато. awesome, i3, wmii, xmonad, І dwmє одними з кращих. Хоча я б запропонував i3(1), оскільки ви хочете легко підібрати (читання файлу конфігурації вчить як керування, так і основ конфігурації) і пристосовано до налаштувань мультимонітора (xinerama / xrandr).
Бреден Кращий

Я спробував i3, і мені це сподобалось, але це спричинило збої в моїй установці ubuntu приблизно раз на годину :( Він також чомусь не грав із моїми моніторами.
johnny_boy

справді? Як щодо інших? wmii та xmonad стануть наступними у черзі моїх пропозицій, оскільки вони також є "вигадливими" плитками wms, а потім dwm (мій особистий фаворит). Хоча вони не такі широко представлені, як i3, вони обробляють кілька моніторів досить елегантно IMO.
Бреден Кращий

Відповіді:


15

tmux дозволяє створювати "групи сеансів" - кілька сеансів, які можуть прикріплюватися до одного набору вікон.

(З подякою https://gist.github.com/chakrit/5004006 :)

У лівому терміналі створіть нову сесію + групу вікон.

tmux new-session -s left

Розділіть його на панелі, як зазвичай.

:split-window -v

В іншому (правому) терміналі підключіться до цієї існуючої групи вікон. Вам потрібно буде дати йому старе ім'я для підключення та власне ім’я сесії, щоб його розрізнити.

tmux new-session -t left -s right

У цьому сеансі створіть інше вікно та розділіть його

:new-window
:split-window -h

Тепер ви можете бачити всі ( tmux) вікна у кожному (термінальному) вікні, але вигляд у кожному не залежить від іншого.

Для переключення з одного на інший (не використовуючи власні ярлики вашого менеджера вікон), ви можете використовувати напр. xdotool .

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

Вони припускають , що ви включили tmux«s set-titlesваріанти для того, щоб дати термінал для пошуку імені; і що ви використовуєте лише одне tmuxвікно (набір панелей) у кожному.


Для цього мені потрібен сценарій, який надійно запитує поточну панель і переходить до «наступної», використовуючи команду «активувати вікно», коли це доречно. Але я ще не зрозумів, як це зробити - думаю, знадобиться додатковий сховище даних поза тим, що доступно tmux.
JigglyNaga

Зауважте, що вам може знадобитися ввімкнути агресивний розмір (встановити -g агресивний-змінити розмір), інакше вікна не підійдуть на весь екран
dgmora

0

Хіба ви не можете застосувати низькотехнологічний метод зміни розміру одного терміналу (шляхом перетягування країв) для покриття обох моніторів, щоб центральний роздільник був на межі двох моніторів?


1
Це не працює, якщо обидва монітора різної висоти або якщо ви використовуєте OS X.
Джеймс

0

Вам потрібно буде запустити окремий tmuxсеанс у кожному терміналі, а потім розділити одне tmuxвікно кожного сеансу на дві панелі вертикально.

Отже, у кожному терміналі:

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

Або коротше, в кожному терміналі:

$ tmux new \; splitw -h

Вам потрібні два сеанси, тому що при одному сеансі два термінали завжди синхронізувалися і показували б одне tmuxвікно.

Потім використовуйте ярлики робочого столу, щоб перейти між двома терміналами.

Особисто я пішов би з одним єдиним монітором, однією tmuxсесією та двома (або як би багато) розділили tmuxвікна "позаду" один за одним і обмінявся між ними на Ctrlb- n, але це питання смаку.

$ tmux new \; splitw -h \; neww \; splitw -h
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.