* Terminalmultiplexer ähnlich screen * kann ein Terminal in mehrere Bereiche aufteilen * Sessions verwalten * man kann sich von einer Session disconnecten und später wieder verbinden * alle Prozesse laufen die ganze Zeit weiter * die Aufteilung des Fensters bleibt erhalten * mehrere Terminals können mit einer Session gleichzeitig verbunden sein * es ist also möglich zum Beispiel von mehreren Computern gleichzeitig im gleichen Terminal zu tippen * frei im Terminalbuffer scrollen und kopieren * der erste tmux-Prozess startet den tmux-Daemon * deswegen werden Änderungen an der Konfiguration auch nicht geladen wenn man erneut tmux öffnet ====== Terminologie/Organisation ====== * Session * läuft unabhängig davon ob ein Terminal mit ihr Verbunden ist oder nicht * läuft auch weiter wenn man sich detached * kann mehrere Fenster enthalten * Fenster - der Bereich den man zu einem Zeitpunkt sieht * kann mehrere Panels enthalten * Panels - Unterbereiche in denen eigenständige Shells laufen ====== Konfiguration ====== * liegt (für Benutzer) in ~/.tmux ===== Prefix-Key ===== * die meisten Kommandos werden als Key-Chord ausgeführt * Ctrl + Zeichen Zeichen * Ctrl + b : -> geht in den Kommandomodus; Ctrl + B wäre der Prefix-Key und muss zusammengedrückt werden, danach wird ":" einzeln gedrückt Kann geändert werden durch: set -g prefix C-a bind C-a send-prefix * in diesem Fall auf Ctrl+a * C steht für Ctrl ===== Navigieren im Terminal-Puffer ===== * man kann im Puffer des Terminals navigieren (gemeint ist hier nicht die Command-History) * Copy-Mode * per Default kommt man per Prefix + [ in diesen Modus und kann ihn per Prefix + [ verlassen * per Default sind die Key-Bindings in diesem Modus Emacs-Bindings * letzteres lässt sich ändern durch: set-window-option -g mode-keys vi ===== Kopieren vom Terminal-Puffer in X-Clipboard ====== * kann genutzt werden wenn man im Copy-Mode ist um Text an die X-Server-Zwischenablage zu senden * per Default wird versucht das über eine Terminal-Befehlssequenz zu machen, aber nicht alle Terminals können das -> diese Sektion beschreibt wie es mit alles funktionieren sollte * funktioniert nur auf Systemen wo ein X-Server läuft (bei Wayland müsste man andere Befehle nutzen) Foglendes funktioniert wenn vi-Keybindings aktiviert sind (standarmäßig sind emacs-Keybindings aktiviert) - vim wird per: set-window-option -g mode-keys vi gesetzt. # Deaktiviert die Terminal-Command-Sequenz-Methode set-option -s set-clipboard off # Drücken von v aktiviert den Visual-Mode zum kopieren bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X rectangle-toggle # Enfernen des Bindings (falls es schon belegt sein sollte) für Enter unbind -T copy-mode-vi Enter # Enter sendet den kopierten Text an xclip (-se -> an welche "selection" -> c = clipboard; -i -> In -> sende es an, nicht lese von) bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'xclip -se c -i' # Das gleiche noch mal für die Maus bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'xclip -se c -i' # Binde (außerhalb des Copy-Mode) P (groß P) an Einfügen des Puffers bind P paste-buffer * wenn man dann Prefix-Key + [ drückt -> Copy-Mode kann man im Terminal-Puffer sich frei bewegen * per "v" kommt man in den Visual-Mode wie man ihn von vim kennt * drückt man Enter verlässt man den Copy-Mode und der markierte Inhalt wird an xclip/das X-Clipboard gesendet und kann von allen Programmen genutzt werden * per Prefix-Key + P kann man einfügen * allerdings funktioniert das nicht vom Clipboard (also nicht von anderen Andwendungen) ins Terminal, sondern nur mit Inhalt der bereits im Terminal kopiert wurde