Пост

Плагины для Tmux. Часть 1

В продолжение темы про Tmux рассмотрим несколько полезных плагинов.

📌 Для начала установим менеджер плагинов Tmux Plugin Manager

1
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
  • В конфигурационный файл tmux (~/.tmux.conf) добавим
1
2
3
4
5
6
# список плагинов
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# инициализация Tmux Plugin Manager (оставляем внизу конфигурационного файла)
run '~/.tmux/plugins/tpm/tpm'

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

  • Подхватим изменения
1
tmux source ~/.tmux.conf

📌 Плагин для сохранения / восстановления сессий Tmux Resurrect

Как известно, настроенное окружение в Tmux слетает после перезагрузки сервера. Заходишь, заново все перенастраиваешь и так до следующей перезагрузки. Для решения этой проблемы существует плагин Tmux Resurrect, благодаря которому можно сохранить все настроенное окружение Tmux сессий и восстановить в одно сочетаний клавиш.

  • Добавляем плагин в ~/tmux.conf
    1
    
    set -g @plugin 'tmux-plugins/tmux-resurrect'
    
  • Сохраняем изменения. Для установки и включения плагина выполняем команду Ctrl+b I - Tmux Plugin Manager установит плагин и обновит окружение Tmux автоматически. Плагин готов к применению.

❗️ Как применять

  • Подключаемся или создаем новую сессию
    1
    
    tmux new -s session1
    
  • Настраиваем панели, окна, запускаем все требуемые приложения и так далее

  • Комбинацией клавиш Ctrl + b Ctrl + s сохраняем сессию (в status bar tmux выпадет уведомление об успешном сохранении сессии).

  • Уничтожаем сессию или перезагружаемся
    1
    
    tmux kill-session -t session1
    
  • Открываем tmux заново

  • Восстанавливаем сессию комбинацией клавиш Ctrl + b Ctrl + r

❗️❗️ Интересный момент. В одном из окон при сохранении сессии у меня был открыт midnight commander. После восстановления окно с ним оказалось пустым, процесс не восстановился, хотя все остальные окна и процессы успешно вернулись в прежнее состояние. Для таких случаев существует возможность задать отдельную конфигурацию для конкретного процесса.

Добавляем в ~/tmux.conf следующее правило

1
set -g @resurrect-processes 'mc'

Таким образом, при восстановлении сессии через tmux-resurrect mc будет перезапущен (правда вкладки в mc не восстановятся, но уже что-то).

Больше полезной информации в Telegram-канале