tmux
Роль Ansible :eyeglasses: tmux
Содержание
- Поддерживаемые платформы
- Требования
- Переменные роли
- Зависимости
- Пример плейбука
- Лицензия
- Информация об авторе
Роль Ansible, которая устанавливает, настраивает и запускает tmux: мультиплексор терминала, позволяющий создавать, получать доступ и управлять несколькими терминалами с одного экрана.
Поддерживаемые платформы:
* Debian
* Redhat (CentOS/Fedora)
* Ubuntu
Требования
Требуется предварительная установка пакетов программного обеспечения libevent 2.x и ncurses.
Переменные роли
Переменные доступны и организованы по следующим стадиям развертывания программного обеспечения и машин:
- установка
- настройка
- удаление
Установка
tmux
может быть установлен с использованием систем управления пакетами ОС, предоставляемых поддерживаемыми платформами (например, apt
, yum/dnf
).
Следующие переменные можно настроить для управления различными аспектами этого процесса установки:
service_package: <имя-пакета-и-версия>
(по умолчанию: tmux[-latest])
- имя и версия пакета tmux для загрузки и установки. Ссылка или выполните что-то вроде
dnf --showduplicates list tmux
в терминале, чтобы отобразить список доступных пакетов для вашей платформы.
Настройка
С помощью этой роли конфигурация экземпляра tmux
управляется с помощью переменной пользователя tmux_config
и может быть выражена в виде хэша, индексированного учетной записью пользователя. Значения этих ключей учетной записи могут быть либо словарями, списками словарей или их комбинацией (устанавливается в соответствии с синтаксисом YAML оператора и предпочтениями настройки), представляя связанные команды запуска/конфигурации и последовательности команд (комбинации команд, связанных выполнением), а также необязательный комментарий.
Ниже приведен обзор и примеры конфигураций для справки:
[tmux_config: {global | user-account} : {entry} :] comment: <строка>
(по умолчанию: см. none)
- [необязательный] комментарий, связанный с командой конфигурации или последовательностью команд
Пример
tmux_config:
global:
- comment: "Этот комментарий дает контекст вокруг команд(ы) ниже"
commands:
- "source-file": "'~/.tmux.conf'"
[tmux_config: {global | user-account} : {entry} :] commands: <key: value,...>
(по умолчанию: см. defaults/main.yml
)
- коллекция команд конфигурации для отображения в tmux.conf учетной записи пользователя. Список доступных команд можно найти здесь.
Обычно каждая пара ключ: значение представляет собой компоненты команды tmux в формате {command}: {flags}
соответственно:
tmux_config:
global:
- comment: "Добавить ctrl-A как вторичный префикс"
commands:
# {command}: {flags} формат
- "set-option": "-g prefix2 C-a"
- "bind-key": "C-a send-prefix -2"
Однако, технически, любое разделение синтаксиса команды tmux разрешено и должно привести к правильному отображению желаемой конфигурации.
tmux_config:
user-account-1:
- commands:
- "bind-key C-c": "new-session"
- "if-shell true": "{ display -p 'bar-dollar-foo: $foo' }"
- "set-hook -g pane-mode-changed[42] 'set -g status-left-style bg=red'": ""
- commands:
- "set": "-g @plugin 'tmux-plugins/tpm'"
"set -g": "@plugin 'tmux-plugins/tmux-sensible'"
comment: "Установка плагинов tmux TPM и 'tmux-sensible' (разумные конфигурации)"
Удаление
Удаляет как установку пакетов, так и управляющие конфигурации пользователей tmux, возвращая целевой хост в состояние, настроенное до применения этой роли, за исключением глобальных/системных конфигураций (например, может быть полезно для повторного использования настроек конфигурации во время обновления системы).
Следующие переменные можно настроить для управления процессом удаления:
perform_uninstall: <true | false>
(по умолчанию: false
)
- указывать на необходимость удалить управляемые инсталляции tmux и пользовательские конфигурации на целевом хосте (см.:
handlers/main.yml
для подробностей)
Зависимости
Нет
Пример плейбука
стандартный пример:
- hosts: all
roles:
- role: 0x0I.tmux
Установка и управление конкретной версией:
- hosts: all
roles:
- role: 0x0I.tmux
vars:
service_package: tmux-2.7-2
Применение плагина "sensible (конфигурации)" вручную:
- hosts: all
roles:
- role: 0x0I.tmux
vars:
tmux_config:
global:
- comment: "utf8 включен"
commands:
- "set-option": "-g utf8 on"
- "set-option": "-g status-utf8 on"
- comment: "устранение задержки переключения режима vim (http://superuser.com/a/252717/65504)"
commands:
- "set-option": "-s escape-time 0"
- comment: "увеличить размер буфера прокрутки"
commands:
- "set-option": "-g history-limit 50000"
- comment: "сообщения tmux отображаются в течение 4 секунд"
commands:
- "set-option": "-g display-time 4000"
- comment: "обновление 'status-left' и 'status-right' чаще"
commands:
- "set-option": "-g status-interval 5"
- comment: "обновление $TERM"
commands:
- "set-option": "-g default-terminal "screen-256color"
- comment: "сочетания клавиш emacs в командной строке tmux (префикс + :) лучше, чем клавиши vi, даже для пользователей vim"
commands:
- "set-option": "status-keys emacs"
- comment: "события фокуса включены для терминалов, которые их поддерживают"
commands:
- "set-option": "-g focus-events on"
- comment: "очень полезно при использовании 'групповых сессий' и многомониторовых установках"
commands:
- "set-window-option": "-g aggressive-resize on"
- comment: "упрощенное и быстрое переключение между следующими/предыдущими окнами"
commands:
- "bind-key": "C-p previous-window"
- "bind-key": "C-n next-window"
- comment: "загрузить .tmux.conf, как предложено в `man tmux`"
commands:
- "bind-key": "R source-file '~/.tmux.conf'"
- comment: "если префикс 'C-a'"
commands:
- "bind-key": "C-a send-prefix"
- "bind-key": "a last-window"
...или с установкой плагина:
- hosts: all
roles:
- role: 0x0I.tmux
vars:
tmux_config:
global:
- comment: "Добавить разумный плагин в список плагинов TPM"
commands:
- "set-option": "-g @plugin 'tmux-plugins/tmux-sensible'"
Лицензия
MIT
Информация об авторе
Эта роль была создана в 2019 году O1.IO.
tmux, a terminal multiplexer enabling multiple terminals to be created, accessed, and controlled from a single screen
ansible-galaxy install 0x0I/ansible-role-tmux