Как настроить tmux для удобной работы
Знаете, что бесит больше всего в tmux? Префикс C-b. Это как пытаться достать до верхней полки, используя только мизинец — технически возможно, но удовольствия мало.
Когда я впервые попробовал tmux, мне казалось, что разработчики намеренно сделали всё, чтобы пользоваться им было неудобно. Потом я узнал секрет: все эти неудобные сочетания клавиш можно изменить. И жизнь сразу стала лучше.
Сегодня расскажу, как превратить tmux из терминальной пытки в удобный рабочий инструмент — без танцев с бубном и часов гугления.
Где хранится конфигурация tmux
Всё начинается с файла tmux.conf. По умолчанию tmux использует настройки «из коробки». Создайте ~/.tmux.conf — и ваши настройки подхватятся при запуске.
КОНФИГУРАЦИЯ TMUX
──────────────────
~/.tmux.conf ──────▶ tmux при запуске
│ │
│ ▼
│ [читает настройки]
│ │
▼ ▼
[ваши изменения] [применяет их]
Если захотите расшарить настройки между несколькими пользователями, можно положить файл в системную директорию. Где она находится — зависит от операционной системы. Подсказку ищите в документации к параметру -f (man tmux).
Меняем префикс — самая популярная настройка
C-b (Ctrl+b) — это стандартный префикс в tmux (это специальная клавиша, которую нужно нажать перед любой командой). Нажимаете C-b, потом нужную клавишу — и происходит магия. Проблема в том, что C-b неудобно нажимать левой рукой, если вы правша.
Самый распространённый трюк — заменить C-b на C-a (Ctrl+a). Это логично: a находится рядом с b, и тянуться не надо. Правда, есть побочный эффект: C-a в bash перемещает курсор в начало строки. Но это решается двойным нажатием C-a C-a.
Автор статьи, которую я разбираю, переназначает Caps Lock на Ctrl. Если вы не используете Caps Lock — это идеальное решение.
Вот код для tmux.conf:
## Меняем префикс с c-b на c-a unbind C-b set-option -g prefix C-a bind-key C-a send-prefix
Интуитивное разделение панелей
По умолчанию панели делятся через " (вертикально) и % (горизонтально). Это нужно запоминать, а ещё эти символы не напоминают визуально, что происходит.
Куда логичнее использовать | и -. Вертикальная черта напоминает вертикальную линию, делящую экран надвое. Минус — горизонтальную. Всё просто.
## Делим панели через | и - bind | split-window -h bind - split-window -v unbind '"' unbind %
Теперь нажатие C-a | создаст вертикальную панель справа, а C-a - — горизонтальную внизу.
Перезагрузка конфига без перезапуска
Экспериментируя с настройками, хочется видеть результат сразу, не закрывая tmux. Добавляем горячую клавишу для перезагрузки:
## Перезагрузить конфиг по нажатию r bind r source-file ~/.tmux.conf
Теперь C-a r — и ваши изменения применены.
Переключение без префикса
Переключение между панелями — это то, что вы делаете сотни раз за день. Каждый раз нажимать префикс — утомительно.
Решение: использовать Alt + стрелки. Нажатие Alt+влеко перенесёт вас в левую панель без всякого префикса. M в документации означает Meta — это обычно Alt.
## Переключение через alt+стрелки без префикса bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D
Режим мыши — для командной работы
tmux заточен под клавиатуру, и это правильно — так быстрее. Но бывают ситуации, когда без мыши не обойтись. Например, если с вашим конфигом работает человек, не знающий ваших горячих клавиш. Парное программирование, демонстрация экрана — типичные случаи.
Включаем мышь:
## Включить управление мышью set -g mouse on
Теперь можно кликать по окнам (отдельным «вкладкам» в tmux), панелям и растягивать их перетаскиванием границ.
Отключаем автоматическое переименование окон
По умолчанию tmux переименовывает окно в зависимости от последней выполненной команды. Запустили git status — окно стало «git status». Это раздражает, если вы именуете окна осмысленно (например, «backend», «frontend», «документация»).
Отключаем:
## Не переименовывать окна автоматически set-option -g allow-rename off
Теперь имя окна меняется только когда вы нажмёте запятую и введёте название вручную.
Делаем tmux красивым
Теперь самое вкусное — визуальная кастомизация. Можно настроить цвета статус-бара (полоска с информацией о текущих окнах), границ панелей, режима копирования (специальный режим для выделения и копирования текста) и сообщений.
Автор статьи приводит пример с красным и жёлтым — это терминальные цвета по умолчанию, они работают с любой темой терминала. Если хотите больше цветов, используйте диапазон от colour0 до colour256.
## Не реагировать на звуковые сигналы (bell) set -g visual-activity off set -g visual-bell off set -g visual-silence off setw -g monitor-activity off set -g bell-action none ## Режим часов setw -g clock-mode-colour yellow ## Режим копирования setw -g mode-style 'fg=black bg=red bold' ## Границы панелей set -g pane-border-style 'fg=red' set -g pane-active-border-style 'fg=yellow' ## Статус-бар set -g status-position bottom set -g status-justify left set -g status-style 'fg=red' set -g status-left '' set -g status-left-length 10 set -g status-right-style 'fg=black bg=yellow' set -g status-right '%Y-%m-%d %H:%M ' set -g status-right-length 50 setw -g window-status-current-style 'fg=black bg=red' setw -g window-status-current-format ' #I #W #F ' setw -g window-status-style 'fg=red bg=black' setw -g window-status-format ' #I #[fg=white]#W #[fg=yellow]#F ' setw -g window-status-bell-style 'fg=yellow bg=red bold' ## Сообщения set -g message-style 'fg=yellow bg=red bold'
Здесь #I — номер окна, #W — имя, #F — флаги (например, активная панель). Получается информативный статус-бар с датой и временем справа.
Где искать вдохновение
GitHub — кладезь готовых конфигов. Ищите «tmux.conf» или репозитории «dotfiles» (конфигурационные файлы в Unix-системах). Там люди выкладывают свои настройки для всего: vim, bash, tmux, i3wm.
Оригинальный конфиг автора статьи доступен на его GitHub. Там же другие файлы настроек — если хотите посмотреть, как выглядит система «в сборе».
Для углублённого изучения — официальная документация (man tmux) и tmux Wiki. Там есть буквально каждая настройка.
Что в итоге
Настройка tmux — это не про красоту ради красоты. Это про то, чтобы инструмент не мешал работать. Префикс C-a, быстрое переключение панелей, интуитивные команды разделения — всё это экономит сотни нажатий в день.
Начните с малого: поменяйте префикс, добавьте | и - для разделения панелей. Почувствуйте разницу. А дальше — экспериментируйте.
tmux — это как хороший нож на кухне: можно резать им хлеб, а можно вырезать скульптуру. Всё зависит от того, как вы его настроите.
idea ──▶ draft ──▶ review ──▶ publish
Ссылки
- A Guide to Customizing Your Tmux Conf — оригинальная статья Ham Vocke
- tmux Manual — официальная документация
- tmux Wiki — вики проекта
Дмитрий Полухин — продуктовый дизайнер. Пишу про разработку, AI и дизайн интерфейсов. Обо мне, контакты и профили.