0x0i.tmux

logo de ansible

logo de tmux

Rol de Ansible :eyeglasses: tmux

Rol de Galaxy Releases de GitHub (última por fecha) Licencia: MIT

Tabla de contenidos

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.

Acerca del proyecto

tmux, a terminal multiplexer enabling multiple terminals to be created, accessed, and controlled from a single screen

Instalar
ansible-galaxy install 0x0i.tmux
Licencia
Unknown
Descargas
299
Propietario