0x0i.tmux
Ansible Rolle :eyeglasses: tmux
Inhaltsverzeichnis
- Unterstützte Plattformen
- Anforderungen
- Rollenvariablen
- Abhängigkeiten
- Beispiel-Playbook
- Lizenz
- Autoreninformationen
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.
tmux, a terminal multiplexer enabling multiple terminals to be created, accessed, and controlled from a single screen
ansible-galaxy install 0x0i.tmux