0x0i.tmux

ansible logo

tmux logo

Ansible Rolle :eyeglasses: tmux

Galaxy Rolle GitHub Veröffentlichung (neueste nach Datum) Lizenz: MIT

Inhaltsverzeichnis

Ansible-Rolle, die tmux installiert, konfiguriert und ausführt: ein Terminal-Multiplexer, der es ermöglicht, mehrere Terminals von einem einzigen Bildschirm aus zu erstellen, darauf zuzugreifen und sie zu steuern.

Unterstützte Plattformen:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu

Anforderungen

Benötigt die vorinstallierten Software-Pakete libevent 2.x und ncurses.

Rollenvariablen

Variablen sind verfügbar und nach den folgenden Software- und Maschinenbereitstellungsstufen organisiert:

  • installation
  • configuration
  • deinstallation

Installation

tmux kann mithilfe der OS-Paketverwaltungssysteme, die von den unterstützten Plattformen bereitgestellt werden (z. B. apt, yum/dnf), installiert werden.

Die folgenden Variablen können angepasst werden, um verschiedene Aspekte dieses Installationsprozesses zu steuern:

service_package: <paket-name-und-version> (Standard: tmux[-neueste])

  • Name und Version des tmux-Pakets, das heruntergeladen und installiert werden soll. Referenz oder führen Sie etwas wie dnf --showduplicates list tmux in einem Terminal aus, um eine Liste der verfügbaren Pakete für Ihre Plattform anzuzeigen.

Konfiguration

Mit dieser Rolle wird die Konfiguration einer Instanz von tmux mit der Benutzervariable tmux_config verwaltet und kann innerhalb eines Hashs ausgedrückt werden, der nach Benutzerkonto strukturiert ist. Der Wert dieser Benutzerkonto-Schlüssel sind entweder Dictionären, Listen von Dictionären oder eine Kombination davon (festgelegt gemäß der YAML-Syntax des Betreibers und Anpassungspräferenzen), die assoziierte Start-/Konfigurationsbefehle und Befehlssequenzen (Kombinationen von Befehlen, die durch Ausführung verknüpft sind) sowie einen optional Kommentar darstellen.

Hier ist eine Übersicht und Beispielkonfigurationen zur Referenz:

[tmux_config: {global | benutzer-konto} : {eintrag} :] kommentar: <string> (Standard: siehe keine)

  • [optional] Kommentar, der mit dem Konfigurationsbefehl oder der Befehlssequenz verbunden ist.
Beispiel
 tmux_config:
   global:
     - kommentar: "Dieser Kommentar gibt Kontext zu den nachstehenden Befehlen"
       befehle:
         - "source-file": "'~/.tmux.conf'"

[tmux_config: {global | benutzer-konto} : {eintrag} :] befehle: <key: value,...> (Standard: siehe defaults/main.yml)

  • Eine Sammlung von Konfigurationsbefehlen, die in die benutzer-konto's tmux.conf eingefügt werden sollen. Eine Liste verfügbarer Befehle finden Sie hier.

Typischerweise repräsentiert jedes Schlüssel:Wert-Paar die {Befehl}: {Flags} Komponenten eines tmux-Befehls:

 tmux_config:
   global:
     - kommentar: "Füge ctrl-A als sekundäre Präfix-Taste hinzu"
       befehle:
         # {Befehl}: {Flags} Format
         - "set-option": "-g prefix2 C-a"
         - "bind-key": "C-a send-prefix -2"

Technisch ist jedoch jede Aufspaltung der tmux-Befehlsyntax erlaubt und sollte zu der korrekten Darstellung der gewünschten Konfiguration führen.

 tmux_config:
   benutzer-konto-1:
     - befehle:
         - "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'": ""
     - befehle:
         - "set": "-g @plugin 'tmux-plugins/tpm'"
           "set -g": "@plugin 'tmux-plugins/tmux-sensible'"
       kommentar: "Installiere tmux TPM & 'tmux-sensible' (sinnvolle Konfigurationen) Plugins"

Deinstallation

Entfernen Sie sowohl die Paketinstallationen als auch die verwalteten Benutzerkonfigurationen von tmux und stellen Sie den Zielhost in den Zustand vor der Anwendung dieser Rolle zurück, ausgenommen die globalen/systemweiten Konfigurationen (z. B. kann nützlich sein, um Konfigurationseinstellungen während Systemaktualisierungen wiederzuverwenden).

Die folgenden Variablen können angepasst werden, um diesen Deinstallationsprozess zu steuern:

perform_uninstall: <true | false> (Standard: false)

  • Ob verwaltete tmux-Installationen und Benutzerkonfigurationen auf einem Zielhost deinstalliert werden sollen (siehe: handlers/main.yml für Details).

Abhängigkeiten

Keine

Beispiel-Playbook

Standardbeispiel:

- hosts: alle
  rollen:
  - rolle: 0x0I.tmux

Installieren und verwalten Sie eine bestimmte Version:

- hosts: alle
  rollen:
  - rolle: 0x0I.tmux
    vars:
      service_package: tmux-2.7-2

Manuelle Anwendung der tmux "sinnvollen (Konfigurationen)" Plugin-Einstellungen:

- hosts: alle
  rollen:
  - rolle: 0x0I.tmux
    vars:
      tmux_config:
        global:
          - kommentar: "utf8 ist eingeschaltet"
            befehle:
              - "set-option": "-g utf8 on"
              - "set-option": "-g status-utf8 on"
          - kommentar: "Behebe die Verzögerung beim Wechsel in den vim-Modus (http://superuser.com/a/252717/65504)"
            befehle:
              - "set-option": "-s escape-time 0"
          - kommentar: "Erhöhe die Größe des Scrollback-Puffers"
            befehle:
              - "set-option": "-g history-limit 50000"
          - kommentar: "tmux-Nachrichten werden 4 Sekunden lang angezeigt"
            befehle:
              - "set-option": "-g display-time 4000"
          - kommentar: "Aktualisiere 'status-left' und 'status-right' häufiger"
            befehle:
              - "set-option": "-g status-interval 5"
          - kommentar: "Upgrade $TERM"
            befehle:
              - "set-option": "-g default-terminal 'screen-256color'"
          - kommentar: "Emacs-Tastenkürzel im tmux-Befehlszeilen-Prompt (Präfix + :) sind besser als vi-Tasten, sogar für vim-Nutzer"
            befehle:
              - "set-option": "status-keys emacs"
          - kommentar: "Fokussierungsevents aktiviert für Terminals, die sie unterstützen"
            befehle:
              - "set-option": "-g focus-events on"
          - kommentar: "Sehr nützlich, wenn man 'gruppierte Sitzungen' und Multi-Monitor-Setup verwendet"
            befehle:
              - "set-window-option": "-g aggressive-resize on"
          - kommentar: "Einfacheres und schnelleres Wechseln zwischen Fenster vorher/nachher"
            befehle:
              - "bind-key": "C-p previous-window"
              - "bind-key": "C-n next-window"
          - kommentar: "source .tmux.conf wie in `man tmux` vorgeschlagen"
            befehle:
              - "bind-key": "R source-file '~/.tmux.conf'"
          - kommentar: "Wenn der Präfix 'C-a' ist"
            befehle:
              - "bind-key": "C-a send-prefix"
              - "bind-key": "a last-window"

...oder mit einer Plugin-Installation:

- hosts: alle
  rollen:
  - rolle: 0x0I.tmux
    vars:
      tmux_config:
        global:
          - kommentar: "Füge 'sinnvoll' zur Liste der TPM-Plugins hinzu"
            befehle:
              - "set-option": "-g @plugin 'tmux-plugins/tmux-sensible'"

Lizenz

MIT

Autoreninformationen

Diese Rolle wurde 2019 von O1.IO erstellt.

Über das Projekt

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

Installieren
ansible-galaxy install 0x0i.tmux
GitHub Repository
Lizenz
Unknown
Downloads
299
Besitzer