0x0i.tmux

logo ansible

logo tmux

Rola Ansible :eyeglasses: tmux

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

Spis treści

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.

O projekcie

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

Zainstaluj
ansible-galaxy install 0x0i.tmux
Licencja
Unknown
Pobrania
299
Właściciel