0x0i.tmux
Rol de Ansible :eyeglasses: tmux
Tabla de contenidos
- Plataformas soportadas
- Requisitos
- Variables del rol
- Dependencias
- Ejemplo de Playbook
- Licencia
- Información del autor
Rol de Ansible que instala, configura y ejecuta tmux: un multiplexor de terminal que permite crear, acceder y controlar múltiples terminales desde una sola pantalla.
Plataformas soportadas:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu
Requisitos
Requiere la preinstalación de los paquetes de software libevent 2.x y ncurses.
Variables del rol
Las variables están disponibles y organizadas según las siguientes etapas de aprovisionamiento de software y máquina:
- instalación
- configuración
- desinstalación
Instalación
tmux
se puede instalar utilizando los sistemas de gestión de paquetes del sistema operativo de las plataformas soportadas (por ejemplo, apt
, yum/dnf
).
Las siguientes variables se pueden personalizar para controlar varios aspectos de este proceso de instalación:
service_package: <nombre-y-versión-del-paquete>
(predeterminado: tmux[-latest])
- nombre y versión del paquete tmux a descargar e instalar. Referencia o ejecutar algo como
dnf --showduplicates list tmux
en una terminal para mostrar una lista de paquetes disponibles para tu plataforma.
Configuración
Utilizando este rol, la configuración de una instancia de tmux
se gestiona con la variable de usuario tmux_config
y se puede expresar dentro de un hash, indexado por cuenta de usuario. El valor de estas claves de cuenta de usuario puede ser diccionarios, listas de diccionarios o una combinación de estos (ajustada según la sintaxis YAML del operador y las preferencias de personalización) que representan comandos y secuencias de comandos de inicio/configuración asociados, así como un comentario opcional
.
Lo siguiente proporciona una visión general y ejemplos de configuraciones para referencia:
[tmux_config: {global | cuenta-de-usuario} : {entrada} :] comentario: <string>
(predeterminado: ver ninguno)
- [opcional] comentario asociado con el comando de configuración o secuencia de comandos.
Ejemplo
tmux_config:
global:
- comentario: "Este comentario proporciona contexto sobre el(s) comando(s) a continuación"
comandos:
- "source-file": "'~/.tmux.conf'"
[tmux_config: {global | cuenta-de-usuario} : {entrada} :] comandos: <clave: valor,...>
(predeterminado: ver defaults/main.yml
)
- una colección de comandos de configuración que se mostrarán dentro del tmux.conf de la cuenta de usuario. Una lista de comandos disponibles se puede encontrar aquí.
Normalmente, cada par clave: valor representa los componentes {comando}: {flags}
de un comando tmux respectivamente:
tmux_config:
global:
- comentario: "Agregar ctrl-A como tecla de prefijo secundaria"
comandos:
# formato {comando}: {flags}
- "set-option": "-g prefix2 C-a"
- "bind-key": "C-a send-prefix -2"
Sin embargo, técnicamente se permite cualquier separación de la sintaxis del comando tmux y debería resultar en la representación correcta de la configuración deseada.
tmux_config:
cuenta-de-usuario-1:
- comandos:
- "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'": ""
- comandos:
- "set": "-g @plugin 'tmux-plugins/tpm'"
"set -g": "@plugin 'tmux-plugins/tmux-sensible'"
comentario: "Instalar los plugins tmux TPM y 'tmux-sensible' (configuraciones sensatas)"
Desinstalación
Elimina tanto las instalaciones de paquetes como las configuraciones de usuario de tmux, devolviendo el host de destino a su estado configurado antes de la aplicación de este rol, con la excepción de configuraciones globales/sistemáticas (por ejemplo, puede ser útil para reciclar configuraciones durante actualizaciones del sistema).
Las siguientes variable(s) pueden ajustarse para gestionar este proceso de desinstalación:
perform_uninstall: <true | false>
(predeterminado: false
)
- si desinstalar las instalaciones de tmux gestionadas y las configuraciones de usuario en un host de destino (ver:
handlers/main.yml
para detalles).
Dependencias
Ninguna
Ejemplo de Playbook
ejemplo por defecto:
- hosts: all
roles:
- rol: 0x0I.tmux
Instalar y gestionar una versión específica:
- hosts: all
roles:
- rol: 0x0I.tmux
vars:
service_package: tmux-2.7-2
Aplicar manualmente la configuración del plugin "sensible (configuraciones)":
- hosts: all
roles:
- rol: 0x0I.tmux
vars:
tmux_config:
global:
- comentario: "utf8 está activado"
comandos:
- "set-option": "-g utf8 on"
- "set-option": "-g status-utf8 on"
- comentario: "abordar el retraso del cambio a modo vim (http://superuser.com/a/252717/65504)"
comandos:
- "set-option": "-s escape-time 0"
- comentario: "aumentar el tamaño del búfer de retroceso"
comandos:
- "set-option": "-g history-limit 50000"
- comentario: "los mensajes de tmux se muestran durante 4 segundos"
comandos:
- "set-option": "-g display-time 4000"
- comentario: "refrescar 'status-left' y 'status-right' más a menudo"
comandos:
- "set-option": "-g status-interval 5"
- comentario: "mejorar $TERM"
comandos:
- "set-option": "-g default-terminal 'screen-256color'"
- comentario: "las combinaciones de teclas de emacs en el prompt de comandos de tmux (prefijo + :) son mejores que las de vi, incluso para usuarios de vim"
comandos:
- "set-option": "status-keys emacs"
- comentario: "eventos de enfoque habilitados para terminales que los soportan"
comandos:
- "set-option": "-g focus-events on"
- comentario: "muy útil al usar 'sesiones agrupadas' y configuración de múltiples monitores"
comandos:
- "set-window-option": "-g aggressive-resize on"
- comentario: "cambio más fácil y rápido entre ventana siguiente/anterior"
comandos:
- "bind-key": "C-p previous-window"
- "bind-key": "C-n next-window"
- comentario: "cargar .tmux.conf como se sugiere en `man tmux`"
comandos:
- "bind-key": "R source-file '~/.tmux.conf'"
- comentario: "si el prefijo es 'C-a'"
comandos:
- "bind-key": "C-a send-prefix"
- "bind-key": "a last-window"
...o con una instalación de plugin:
- hosts: all
roles:
- rol: 0x0I.tmux
vars:
tmux_config:
global:
- comentario: "Agregar sensato a la lista de plugins de TPM"
comandos:
- "set-option": "-g @plugin 'tmux-plugins/tmux-sensible'"
Licencia
MIT
Información del autor
Este rol fue creado en 2019 por O1.IO.
tmux, a terminal multiplexer enabling multiple terminals to be created, accessed, and controlled from a single screen
ansible-galaxy install 0x0i.tmux