Diese Tmux-Konfiguration optimiert die Bedienung durch nützliche Tastenkombinationen, True-Color-Support sowie Maus- und Zwischenablage-Unterstützung — ohne Plugin-Manager.
Das Beispielskript sample_run.sh konfiguriert und startet automatisch eine Session mit mehreren Fenstern.
Tmuxpp ist Teil des vhstack-Stacks. Dort richtet ein einziger Befehl die komplette Arbeitsumgebung ein (Prompt, Tmux, Neovim).
Falls Tmux noch nicht installiert ist:
sudo apt install tmux # Debian/Ubuntu
brew install tmux # macOSWeitere Informationen findest du im Tmux Wiki.
In der Datei ~/.bashrc die Variable TERM setzen:
export TERM=xterm-256colorgit clone --depth 1 https://github.com/vhstack/tmuxpp.git ~/.tmux
rm -rf ~/.tmux/.git ~/.tmux/assets ~/.tmux/README*.md
ln -s ~/.tmux/tmux.conf ~/.tmux.conf clipboard.sh und install_win32yank.sh bleiben dabei liegen — beide werden für die Zwischenablage gebraucht (siehe unten).
sh ~/.tmux/install_win32yank.shRichtet win32yank.exe ein und macht das Einfügen rund viermal so flott (Details). Auf allen anderen Systemen nicht nötig.
- Prefix-Taste:
Ctrl + A(stattCtrl + B) - Fenster & Panes:
Prefix + +→ Neue Session erzeugenPrefix + c→ Fenster anlegenPrefix + ,→ Fenster umbenennenPrefix + $→ Session umbenennenPrefix + |→ Senkrecht teilen (Panes nebeneinander)Prefix + -→ Waagerecht teilen (Panes untereinander)Prefix + b→ Pane in ein eigenes Fenster lösenPrefix + x→ Pane schließenPrefix + &→ Fenster schließenPrefix + s→ Session-Baum, nach Namen sortiert
- Navigation:
Prefix + ←,→,↑,↓→ Zwischen Panes wechselnAlt + →/Alt + ←→ Zwischen Fenstern wechselnStrg + Alt + →/Strg + Alt + ←→ Fenster verschieben
- Panegröße anpassen:
Prefix + j/k/h/l→ Panegröße ändern (wiederholbar)Prefix + z→ Pane maximieren/wiederherstellen
- Maus:
- Mausrad → Im History-Buffer scrollen (3 Zeilen pro Rasterung, der Copy-Mode wird automatisch betreten und am Ende wieder verlassen)
- Ziehen → Markieren, beim Loslassen in die Zwischenablage kopieren
- Doppelklick / Dreifachklick → Wort / Zeile kopieren
- Rechtsklick → Aus der Zwischenablage einfügen
Prefix + m→ Maussteuerung an/ausPrefix + >oderAlt + Rechtsklick→ Kontextmenü des Panes
- Copy-Mode (vi-Tasten):
Strg + PageUpoderPrefix + [→ Copy-Mode startenv→ Auswahl beginnen,y→ Kopieren,q→ VerlassenPrefix + ]→ Aus dem tmux-Buffer einfügen- Verlauf: 50 000 Zeilen pro Pane
- Konfiguration neu laden:
Prefix + r
clipboard.sh verbindet tmux mit der Zwischenablage des Systems. Die Datei muss neben der tmux.conf liegen (der Pfad wird beim Laden ermittelt, ~/.tmux/clipboard.sh ist die Voreinstellung). Das passende Werkzeug wird automatisch erkannt:
| Plattform | Werkzeug | Installation |
|---|---|---|
| WSL / Windows | win32yank.exe (empfohlen), sonst clip.exe / powershell.exe |
sh ~/.tmux/install_win32yank.sh |
| macOS | pbcopy / pbpaste |
bereits vorhanden |
| Linux (Wayland) | wl-copy / wl-paste |
sudo apt install wl-clipboard |
| Linux (X11) | xclip oder xsel |
sudo apt install xclip |
Kopiert wird zweigleisig: einmal mit dem lokalen Werkzeug, einmal per OSC 52. Letzteres ist eine Escape-Sequenz, der Text reist also im selben Datenstrom wie die Bildschirmausgabe. Er landet damit in der Zwischenablage des Rechners, an dem man wirklich sitzt, auch über SSH hinweg und ohne dass auf dem Server irgendetwas installiert sein muss. Mitspielen muss nur das Terminal: Windows Terminal, WezTerm, kitty, iTerm2 und Alacritty tun das.
Zurück führt dieser Weg nicht. Ein Terminal, das seine Zwischenablage auf Nachfrage preisgibt, gibt sie jedem Programm preis, das auf den Bildschirm schreiben darf. Ein cat auf eine präparierte Datei würde reichen, um mitzulesen, was gerade darin liegt. Die Terminals verweigern die Auskunft deshalb, und zum Einfügen braucht es ein Werkzeug auf dem Rechner: win32yank.exe oder powershell.exe unter Windows, pbpaste auf dem Mac, wl-paste oder xclip unter Linux. Fehlt es, fällt clipboard.sh auf den tmux-eigenen Buffer zurück, also auf das, was zuletzt in tmux markiert wurde.
Durchprobiert wird von oben nach unten. Zeiten unter WSL gemessen (WSL2, Ubuntu, 20 Durchläufe):
| Vorgang | Weg | Zeit |
|---|---|---|
| Kopieren | win32yank.exe |
33 ms |
iconv + clip.exe |
33 ms | |
| OSC 52, läuft immer zusätzlich mit | 5 ms | |
| Einfügen | win32yank.exe |
35 ms |
powershell.exe Get-Clipboard |
165 ms, erster Aufruf 340 ms | |
| tmux-Buffer, wenn kein Werkzeug gefunden wird | 3 ms |
Dazu kommen jeweils rund 5 ms für den tmux-Aufruf selbst. Kopieren ist damit in jedem Fall flott. Teuer ist allein das Einfügen ohne win32yank.exe. Für die native Auswahl des Terminals, etwa über mehrere Panes hinweg, beim Ziehen Shift halten oder die Maus mit Prefix + m abschalten.
Die Tabelle oben zeigt, wofür sich win32yank.exe lohnt: für das Einfügen, das damit von rund 175 ms auf 45 ms fällt. Beim Kopieren bringt es nichts, weil clip.exe selbst in system32 liegt und genauso schnell startet. Wer mit dem PowerShell-Weg lebt, braucht das Folgende also nicht. install_win32yank.sh richtet es ein:
sh ~/.tmux/install_win32yank.sh # installieren
sh ~/.tmux/install_win32yank.sh --force # neu herunterladen
sh ~/.tmux/install_win32yank.sh --remove # wieder entfernenDas Skript lädt das festgelegte Release win32yank v0.1.1, prüft die SHA256-Summe von Archiv und .exe und legt das Werkzeug unter %LOCALAPPDATA%\win32yank ab, also im Windows-Dateisystem. Das ist Absicht: liegt die .exe im WSL-Dateisystem, lädt Windows sie über \\wsl.localhost und braucht mehr als das Doppelte. In den PATH kommt nur ein Symlink darauf (~/.local/bin), gefunden wird sie über ~/.cache/tmuxpp/win32yank.path. Danach Prefix + r.
- True Color aktiviert
- Auswählbare Themes (über
@themeintmux.conf):vhstack,vhstack_lite,catppuccin vhstack-Theme standardmäßig aktiviert
Die Konfiguration kommt ohne Plugin-Manager aus. Einzig das optionale catppuccin-Theme braucht ein Plugin — einmalig klonen, dann Prefix + r:
git clone --depth 1 -b v2.1.3 https://github.com/catppuccin/tmux ~/.tmux/plugins/tmux
rm -rf ~/.tmux/plugins/tmux/.gitJetzt kannst du deine Tmux-Session effizienter nutzen! 🚀
