Как запустить tmux с несколькими открытыми панелями одновременно?

23

Предположим, я запускаю tmuxи сразу же выполняю Ctrl+ b+ %и Ctrl+ b+ ".

Это дает мне высокую панель в левой части экрана; правая сторона экрана имеет верхнюю и нижнюю панели.

Как я могу настроить tmux для запуска в этой конфигурации без необходимости вводить эти команды?

Марк Харрисон
источник
Если вы хотите открыть несколько терминалов одновременно одним щелчком, вы можете сделать это с помощью терминатора . Установите его из программного центра.
САГАР Наир
Спасибо, это хорошая команда, чтобы знать! В моем конкретном случае это для 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, чтобы он запускался с указанными открытыми окнами?

user.dz
источник
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 .

Harshit
источник
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 против 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

Я написал себе небольшой скрипт на bash :

# 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-Terminal.

anarchist912
источник
1
Хороший ответ, но, пожалуйста, удалите вопрос в конце. Попробуйте задать его как новый вопрос, который позволит увидеть больше людей.
Том Броссман