Как автоматически создать несколько ‘сложенных’ терминалов tmux в .tmux.conf при запуске, используя только ~/.tmux.conf?

Вопрос или проблема

Как автоматически создать несколько терминалов в .tmux.conf при запуске, желательно используя только ~/.tmux.conf? Я хочу, чтобы они были stacked, а не в отдельных панелях или окнах. GNU screen делал это без усилий.

Я не хочу несколько панелей или разделенное окно. Я хочу пять или шесть терминалов под одним окном.

Я использую эти настройки для tmux много лет, но никогда не было причины делать что-то сложное до сих пор.

unbind C-b
set -g prefix C-a
set -g default-shell /bin/bash
bind-key C-a last-window
bind-key k confirm kill-window

Я пробовал этот синтаксис, но он не создал никаких новых терминалов.

if-shell '[ -z "${TMUX}" ]' \
    "new-session -d -s my-session; \
     new-window -n 'Window1'; \
     new-window -n 'Window2'; \
     new-window -n 'Window3'; \
     select-window -t my-session:1; \
     attach-session -t my-session"

Также пробовал это:

# Начать новую сессию с окном
new-session -s mysession -n zero -d
# Создать дополнительные окна
new-window -n 1 -d
new-window -n 2 -d
new-window -n 3 -d

Нет удачи.

Ответ или решение

Автоматическое создание нескольких терминалов в tmux с использованием .tmux.conf

Если вы хотите автоматически создавать несколько «сложенных» терминалов (а не раздельных панелей или окон) с помощью файла конфигурации ~/.tmux.conf, вам потребуется правильно настроить ту структуру, которая обеспечит необходимую вам функциональность. В отличие от GNU Screen, tmux не поддерживает многими терминалами в одном окне по умолчанию. Однако можно добиться эффекта, который будет близким к вашему запросу, через использование окон и сессий.

Основные шаги

  1. Настройка файла .tmux.conf: Вам нужно прописать команды в вашем ~/.tmux.conf, которые будут создавать сессии и окна сразу после запуска.

  2. Создание нового окна и запуск сессии: Вы можете использовать такие команды, как new-session и new-window, а затем применить соответствующие настройки для выбора окна.

Вот пример конфигурации, которая должна справиться с вашей задачей:

# Установите префикс
unbind C-b
set -g prefix C-a
set -g default-shell /bin/bash
bind-key C-a last-window
bind-key k confirm kill-window

# Создание новой сессии и окон
if-shell '[ -z "${TMUX}" ]' \
    "new-session -d -s my-session; \
    new-window -n 'Terminal 1'; \
    new-window -n 'Terminal 2'; \
    new-window -n 'Terminal 3'; \
    new-window -n 'Terminal 4'; \
    new-window -n 'Terminal 5'; \
    select-window -t my-session:1; \
    attach-session -t my-session"

Пояснение элементов конфигурации

  • if-shell '[ -z "${TMUX}" ]': Эта строка проверяет, находитесь ли вы уже в сессии tmux. Если нет, то будет выполнена команда внутри кавычек.

  • new-session -d -s my-session: Эта команда создает новую сессию под названием my-session в фоновом режиме.

  • new-window -n 'Terminal X': Здесь вы создаете новые окна с заданными именами. В данном случае, вы можете создать любое количество окон.

  • select-window -t my-session:1: Эта команда перемещает вас на первое окно в новой сессии.

  • attach-session -t my-session: Наконец, эта команда присоединяет вас к созданной сессии.

Дополнительные параметры и настройки

Если вам необходимо, чтобы окна не только создавались, но и имели специфические настройки (например, размеры, цветовые схемы и т. д.), эти параметры можно добавить в конфигурационный файл, используя такие команды, как select-pane и send-keys.

Заключение

Использование вышеуказанного блока кода в вашем ~/.tmux.conf позволит вам автоматически создавать стек окон при старте tmux, приближая вас к желаемому эффекту, аналогичному GNU Screen. Подобный подход требует некоторого времени на требуют дальнейшей настройки, но он дает большую гибкость и возможности управления окружением. Надеюсь, это поможет вам создать желаемый рабочий процесс с tmux.

Оцените материал
Добавить комментарий

Капча загружается...