0x0i.tmux
Rola Ansible :eyeglasses: tmux
Spis treści
- Obsługiwane platformy
- Wymagania
- Zmienne roli
- Zależności
- Przykładowy playbook
- Licencja
- Informacje o autorze
Rola Ansible, która instaluje, konfiguruje i uruchamia tmux: multiplexer terminalowy, który umożliwia tworzenie, dostęp do i kontrolowanie wielu terminali z jednego ekranu.
Obsługiwane platformy:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu
Wymagania
Wymaga wcześniejszej instalacji pakietów oprogramowania libevent 2.x oraz ncurses.
Zmienne roli
Zmienne są dostępne i zorganizowane zgodnie z następującymi etapami provisioningu oprogramowania i maszyn:
- instalacja
- konfiguracja
- odinstalowanie
Instalacja
tmux
można zainstalować za pomocą systemów zarządzania pakietami dostarczanych przez obsługiwane platformy (np. apt
, yum/dnf
).
Następujące zmienne można dostosować, aby kontrolować różne aspekty procesu instalacji:
service_package: <nazwa-i-wersja-pakietu>
(domyślnie: tmux[-latest])
- nazwa i wersja pakietu tmux do pobrania i zainstalowania. Odwołanie lub wykonaj coś takiego jak
dnf --showduplicates list tmux
w terminalu, aby wyświetlić listę dostępnych pakietów dla twojej platformy.
Konfiguracja
Za pomocą tej roli konfiguracja instancji tmux
jest zarządzana za pomocą zmiennej użytkownika tmux_config
i może być wyrażona w hash, kluczem według konta użytkownika. Wartość tych kluczy konta użytkownika może być albo dict, listą dict albo kombinacją tych form (ustawioną zgodnie z operatorami yaml i preferencjami dostosowania), reprezentującą powiązane polecenia startowe/konfiguracyjne oraz sekwencje poleceń (połączenia poleceń powiązane przez wykonanie), jak również opcjonalny komentarz.
Poniżej znajduje się przegląd i przykłady konfiguracji dla odniesienia:
[tmux_config: {global | konto-użytkownika} : {entry} :] comment: <string>
(domyślnie: patrz brak)
- [opcjonalny] komentarz powiązany z poleceniem konfiguracyjnym lub sekwencją poleceń
Przykład
tmux_config:
global:
- comment: "Ten komentarz dostarcza kontekst dotyczący poniższych poleceń"
commands:
- "source-file": "'~/.tmux.conf'"
[tmux_config: {global | konto-użytkownika} : {entry} :] commands: <key: value,...>
(domyślnie: patrz defaults/main.yml
)
- zbiór poleceń konfiguracyjnych do umieszczenia w tmux.conf użytkownika. Lista dostępnych poleceń znajduje się tutaj.
Typowo każda para klucz:wartość reprezentuje składniki polecenia tmux w formacie {polecenie}: {flagi}
:
tmux_config:
global:
- comment: "Dodaj ctrl-A jako drugi klawisz prefiksu"
commands:
# {polecenie}: {flagi} format
- "set-option": "-g prefix2 C-a"
- "bind-key": "C-a send-prefix -2"
Jednak technicznie dowolne podział poleceń tmux jest dozwolony i powinien skutkować poprawnym odzwierciedleniem żądanej konfiguracji.
tmux_config:
konto-użytkownika-1:
- commands:
- "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'": ""
- commands:
- "set": "-g @plugin 'tmux-plugins/tpm'"
"set -g": "@plugin 'tmux-plugins/tmux-sensible'"
comment: "Instalacja pluginów tmux TPM i 'tmux-sensible' (sensible configurations)"
Odinstalowanie
Usuń zarówno instalacje pakietów, jak i zarządzane konfiguracje użytkowników tmux, przywracając docelowy host do stanu skonfigurowanego przed zastosowaniem tej roli, z wyjątkiem globalnych/systemowych konfiguracji (np. może być przydatne do recyklingu ustawień konfiguracyjnych podczas uaktualnień systemu).
Następująca zmienna może być dostosowana w celu zarządzania tym procesem odinstalowania:
perform_uninstall: <true | false>
(domyślnie: false
)
- czy odinstalować zarządzane instalacje tmux i konfiguracje użytkowników na docelowym hoście (patrz:
handlers/main.yml
dla szczegółów)
Zależności
Brak
Przykładowy Playbook
domyślny przykład:
- hosts: all
roles:
- role: 0x0I.tmux
Zainstaluj i zarządzaj konkretną wersją:
- hosts: all
roles:
- role: 0x0I.tmux
vars:
service_package: tmux-2.7-2
Ręcznie zastosuj ustawienia pluginu "sensible (konfiguracje)":
- hosts: all
roles:
- role: 0x0I.tmux
vars:
tmux_config:
global:
- comment: "utf8 jest włączone"
commands:
- "set-option": "-g utf8 on"
- "set-option": "-g status-utf8 on"
- comment: "zredukować opóźnienie przełączania trybu vim (http://superuser.com/a/252717/65504)"
commands:
- "set-option": "-s escape-time 0"
- comment: "zwiększyć rozmiar bufora przewijania"
commands:
- "set-option": "-g history-limit 50000"
- comment: "wiadomości tmux są wyświetlane przez 4 sekundy"
commands:
- "set-option": "-g display-time 4000"
- comment: "częstsze odświeżanie 'status-left' i 'status-right'"
commands:
- "set-option": "-g status-interval 5"
- comment: "aktualizuj $TERM"
commands:
- "set-option": "-g default-terminal 'screen-256color'"
- comment: "bindingi klawiszy emacs w promptcie poleceń tmux (prefiks + :) są lepsze niż klawisze vi, nawet dla użytkowników vim"
commands:
- "set-option": "status-keys emacs"
- comment: "zdarzenia skupienia włączone dla terminali, które je obsługują"
commands:
- "set-option": "-g focus-events on"
- comment: "super przydatne podczas używania 'grupowanych sesji' i ustawienia wielomonitorowego"
commands:
- "set-window-option": "-g aggressive-resize on"
- comment: "łatwiejsze i szybsze przełączanie między następnym/poprzędnim oknem"
commands:
- "bind-key": "C-p previous-window"
- "bind-key": "C-n next-window"
- comment: "załaduj .tmux.conf jak sugerowane w `man tmux`"
commands:
- "bind-key": "R source-file '~/.tmux.conf'"
- comment: "jeśli prefiks to 'C-a'"
commands:
- "bind-key": "C-a send-prefix"
- "bind-key": "a last-window"
...lub z instalacją pluginu:
- hosts: all
roles:
- role: 0x0I.tmux
vars:
tmux_config:
global:
- comment: "Dodaj sensible do listy pluginów TPM"
commands:
- "set-option": "-g @plugin 'tmux-plugins/tmux-sensible'"
Licencja
MIT
Informacje o autorze
Ta rola została stworzona w 2019 roku przez O1.IO.
tmux, a terminal multiplexer enabling multiple terminals to be created, accessed, and controlled from a single screen
ansible-galaxy install 0x0i.tmux