0x0i.tmux

logo ansible

logo tmux

Rôle Ansible :eyeglasses: tmux

Galaxy Role GitHub release (latest by date) License: MIT

Table des matières

Rôle Ansible qui installe, configure et exécute tmux : un multiplexeur de terminal qui permet de créer, d'accéder et de contrôler plusieurs terminaux à partir d'un seul écran.

Plateformes prises en charge :
* Debian
* Redhat (CentOS/Fedora)
* Ubuntu

Exigences

Nécessite l'installation préalable des paquets logiciels libevent 2.x et ncurses.

Variables de rôle

Les variables sont disponibles et organisées selon les étapes suivantes de provisionnement de logiciels et de machines :

  • installation
  • configuration
  • désinstallation

Installation

tmux peut être installé en utilisant les systèmes de gestion de paquets fournis par les plateformes prises en charge (par ex., apt, yum/dnf).

Les variables suivantes peuvent être personnalisées pour contrôler divers aspects de ce processus d'installation :

service_package: <nom-de-paquet-et-version> (par défaut : tmux[-dernière version])

  • nom et version du paquet tmux à télécharger et à installer. Référence ou exécutez quelque chose comme dnf --showduplicates list tmux dans un terminal pour afficher une liste des paquets disponibles pour votre plateforme.

Configuration

En utilisant ce rôle, la configuration d'une instance de tmux est gérée avec la variable utilisateur tmux_config et peut être exprimée sous forme de hash, indexée par compte utilisateur. La valeur de ces clés de compte utilisateur est soit un dictionnaire, soit une liste de dictionnaires, ou une combinaison des deux (définie selon la syntaxe YAML de l'opérateur et les préférences de personnalisation) représentant les commandes de démarrage/configuration associées et les séquences de commandes (combinaisons de commandes liées par l'exécution) ainsi qu'un commentaire optionnel.

Voici un aperçu et des exemples de configurations pour référence :

[tmux_config: {global | compte-utilisateur} : {entrée} :] commentaire: <chaîne> (par défaut : voir aucun)

  • [optionnel] commentaire associé à la commande de configuration ou à la séquence de commandes.
Exemple
 tmux_config:
   global:
     - commentaire: "Ce commentaire fournit un contexte autour de la ou des commandes ci-dessous"
       commandes:
         - "source-file": "'~/.tmux.conf'"

[tmux_config: {global | compte-utilisateur} : {entrée} :] commandes: <clé: valeur,...> (par défaut : voir defaults/main.yml)

  • une collection de commandes de configuration à intégrer dans le fichier tmux.conf de compte-utilisateur. Une liste des commandes disponibles peut être trouvée ici.

Typiquement, chaque paire clé:valeur représente les composants {commande}: {drapeaux} d'une commande tmux respectivement :

 tmux_config:
   global:
     - commentaire: "Ajouter ctrl-A comme clé de préfixe secondaire"
       commandes:
         # {commande}: {drapeaux} format
         - "set-option": "-g prefix2 C-a"
         - "bind-key": "C-a send-prefix -2"

Cependant, techniquement toute séparation de la syntaxe de commande tmux est autorisée et devrait conduire à l'affichage correct de la configuration souhaitée.

 tmux_config:
   compte-utilisateur-1:
     - commandes:
         - "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'": ""
     - commandes:
         - "set": "-g @plugin 'tmux-plugins/tpm'"
           "set -g": "@plugin 'tmux-plugins/tmux-sensible'"
       commentaire: "Installer les plugins tmux TPM & 'tmux-sensible' (configurations sensées)"

Désinstallation

Supprime à la fois les installations de paquets ainsi que les configurations utilisateur tmux gérées, ramenant l'hôte cible à son état configuré avant l'application de ce rôle, à l'exception des configurations globales/system-wide (par ex. peut être utile pour recycler les paramètres de configuration lors des mises à jour système).

La ou les variable(s) suivantes peuvent être personnalisées pour gérer ce processus de désinstallation :

perform_uninstall: <true | false> (par défaut : false)

  • si oui ou non désinstaller les installations tmux gérées et les configurations utilisateur sur un hôte cible (voir : handlers/main.yml pour plus de détails).

Dépendances

Aucune

Exemple de Playbook

exemple par défaut :

- hosts: all
  roles:
  - role: 0x0I.tmux

Installer et gérer une version spécifique :

- hosts: all
  roles:
  - role: 0x0I.tmux
    vars:
      service_package: tmux-2.7-2

Appliquer manuellement les paramètres du plugin de configuration "sensible" de Tmux :

- hosts: all
  roles:
  - role: 0x0I.tmux
    vars:
      tmux_config:
        global:
          - commentaire: "utf8 est activé"
            commandes:
              - "set-option": "-g utf8 on"
              - "set-option": "-g status-utf8 on"
          - commentaire: "adresse le délai de changement de mode vim (http://superuser.com/a/252717/65504)"
            commandes:
              - "set-option": "-s escape-time 0"
          - commentaire: "augmenter la taille du tampon de défilement"
            commandes:
              - "set-option": "-g history-limit 50000"
          - commentaire: "les messages tmux sont affichés pendant 4 secondes"
            commandes:
              - "set-option": "-g display-time 4000"
          - commentaire: "rafraîchir 'status-left' et 'status-right' plus souvent"
            commandes:
              - "set-option": "-g status-interval 5"
          - commentaire: "mettre à niveau $TERM"
            commandes:
              - "set-option": "-g default-terminal "screen-256color"
          - commentaire: "les raccourcis de touches emacs dans l'invite de commande tmux (préfixe + :) sont meilleurs que les touches vi, même pour les utilisateurs de vim"
            commandes:
              - "set-option": "status-keys emacs"
          - commentaire: "les événements de focus activés pour les terminaux qui les prennent en charge"
            commandes:
              - "set-option": "-g focus-events on"
          - commentaire: "super utile lors de l'utilisation de 'sessions groupées' et de configurations multi-écrans"
            commandes:
              - "set-window-option": "-g aggressive-resize on"
          - commentaire: "changement plus facile et plus rapide entre la fenêtre précédente/suivante"
            commandes:
              - "bind-key": "C-p previous-window"
              - "bind-key": "C-n next-window"
          - commentaire: "source .tmux.conf comme suggéré dans `man tmux`"
            commandes:
              - "bind-key": "R source-file '~/.tmux.conf'"
          - commentaire: "si le préfixe est 'C-a'"
            commandes:
              - "bind-key": "C-a send-prefix"
              - "bind-key": "a last-window"

...ou avec une installation de plugin :

- hosts: all
  roles:
  - role: 0x0I.tmux
    vars:
      tmux_config:
        global:
          - commentaire: "Ajouter sensible à la liste des plugins TPM"
            commandes:
              - "set-option": "-g @plugin 'tmux-plugins/tmux-sensible'"

Licence

MIT

Informations sur l'auteur

Ce rôle a été créé en 2019 par O1.IO.

À propos du projet

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

Installer
ansible-galaxy install 0x0i.tmux
Licence
Unknown
Téléchargements
299
Propriétaire