Як запустити tmux з декількох панелей, відкритих одночасно?


23

Припустимо, я починаю tmuxі негайно виконую Ctrl+ b+ %і Ctrl+ b+ ".

Це дає мені високу панель зліва на екрані; у правій частині екрана є верхня та нижня панелі.

Як я можу налаштувати tmux для запуску в цій конфігурації без необхідності вводити ці команди?


Якщо ваша вимога полягає в тому, щоб відкрити кілька терміналів відразу в один клік, ви можете зробити це за допомогою термінатора . Встановіть його з програмного центру.
SAGAR Nair

Дякую, це хороша команда знати! У моєму конкретному випадку це сеанс ssh для віддаленого комп'ютера.
Марк Гаррісон

Відповіді:


21

Інший варіант - створити псевдонім або інший файл оболонки /binдля:

tmux new-session \; split-window -h \; split-window -v \; attach

або

tmux source-file ~/.tmux.conf

де ~/.tmux.conf

new
neww
splitw -h
splitw -v

Для довідки, в цьому ж питанні є інші параметри в SE, як налаштувати tmux так, щоб він запускався із заданими відкритими вікнами?


15

Для конфігурації можна використовувати наступний скрипт оболонки:

#!/bin/sh 
tmux new-session -s "mySession" -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d 

Це дасть необхідну конфігурацію екрана з наступними командами, як ви згадали. tmux -> Ctrl+ b+ %-> Ctrl+ b+"

Для довідки будь ласка, використовуйте сторінку tmux man .


4

Увімкнути та вимкнути автоматичні tmuxсеанси входу за допомогою програми Byobu можна легко . Ви можете використовувати Byobu як інтерфейс для tmuxвирішення цієї потреби, це спрощує виконання того, що ви просите. У терміналі виконайте такі команди:

sudo apt-get install byobu
sudo byobu-enable
sudo -i

Коли користувач root входить у систему через консоль, SSH або з sudo -i, Byobu приєднається до існуючого tmuxсеансу або створить новий, якщо він ще не працює. Використовуйте sudo -iзамість sudo -s. -sВаріант починається тільки оболонка, а не ввійти оболонки. Ви повинні використовувати sudo -iдля емуляції повного входу, який також завантажується roots ~/.profile, і саме тут Byobu встановить себе під час запуску

byobu-enable.

Ви можете налаштувати різні сеанси, .tmux.confяк показано нижче:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

Після цього ви можете відформатувати сеанси, як вам потрібно:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

Це відкриє 2 вікна, друге з яких буде названо foo / bar, і розділиться вертикально навпіл (50%) з Foo, що працює над смугою. Фокус був би у вікні 2 (foo / bar), верхній частині (foo).

Byobu робить налаштування та запуск tmux автоматично дуже простим.


1
чому bind S vs bind s? (спочатку великий S, потім малий s?)
knb

3

Tmux-Resurrect плагін дозволить настройки сеансу завзятості, а також забезпечити додаткові функціональні можливості для збереження і відновлення налаштувань по tmux сеансів.

Доступно багато додаткових функцій. На веб-сторінці плагіна:

" Цей плагін використовується для збереження та відновлення всіх деталей із вашого середовища tmux. Ось, про що вдалося подбати:

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

Установка:

  1. У терміналі перейдіть до каталогу плагінів tmux (у моєму випадку ~/dotfiles/tmux/plugins).
  2. Клон репозиторій за допомогою команди: git clone https://github.com/tmux-plugins/tmux-resurrect.

  3. Відредагуйте .tmux.confфайл та додайте рядок set -g @plugin 'tmux-plugins/tmux-resurrect'.

  4. Оновити оточення tmux за допомогою команди: tmux source-file ~/dotfiles/tmux/tmux.conf.
  5. Введіть потрібний макет. У цьому випадку Ctrl- b %і Ctrl- b ".
  6. Збережіть свій tmux сеанс, ввівши команду Ctrl- b+ Ctrl- s.
  7. Під час наступного запуску сеансу tmux введіть команду Ctrl- b+ Ctrl- rдля відновлення сеансу tmux.

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


2

Я написав собі маленький сценарій баш :

# filename tmuxv in /home/<username>/Bash/tmuxv/

#!/bin/bash
tmux new-session \; split-window -v \; rename-window ${1} \; attach

і поставити псевдонім у моїх ~ / .bash_aliases

alias tmuxv="/home/<username>/Bash/tmuxv/tmuxv"

Отже, тепер я можу просто ввести tmuxv PYTHONі у мене вертикально розділений tmux сеанс з вікном на ім'я PYTHON, що добре, тому що ім'я вікна відображається у моїй імені вкладки gnome-terminals.


1
Хороша відповідь, але будь-ласка, видаліть питання наприкінці. Спробуйте задати це як нове запитання, яке переконається, що більше людей його побачать.
Том Броссман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.