- tmux lange genutzt, in letzter Zeit aber zunehmend skeptisch gegenüber der Komplexität und den Grenzen von tmux geworden (Farbkompatibilität, Scrollback, Kopieren mit der Maus, fehlende Protokollunterstützung usw.)
- Zentrale Funktionen von tmux wie Sitzungspersistenz (detach/attach) oder Fenster aufteilen/verwalten lassen sich nicht zwingend nur mit tmux umsetzen
- Mit leichtgewichtigen Tools im Sinne der Unix-Philosophie wie dtach, abduco, shpool kann man sich auf Sitzungsverwaltung konzentrieren und zugleich nativen Scrollback sowie Einfachheit beibehalten
- Besonders mit der Kombination aus
shpool + ssh lässt sich eine Umgebung aufbauen, in der mehrere Remote-Sitzungen direkt über den Window Manager verwaltet werden und native Funktionen (Benachrichtigungen, Scrollen, Titel usw.) unverändert nutzbar bleiben
- Nicht perfekt, aber aus Sicht des Autors konnte tmux vollständig ersetzt werden, mit einem einfachen und wartungsfreundlichen Workflow, der sehr zufriedenstellend ist
Vor- und Nachteile von tmux
- Sitzungserhalt (detach/attach) und Fensterverwaltung (Tabs, Splits) waren bislang der Kern des Workflows mit tmux
- Ohne korrekt gesetztes
TERM entstehen jedoch Probleme bei der Farbdarstellung, und die Interaktion zwischen Terminal und tmux erhöht die Komplexität
- Auch beim Scrollbuffer muss man sich an die eigene Arbeitsweise von tmux gewöhnen, und das Kopieren von Bereichen mit der Maus war in Split-Umgebungen umständlich
- Neue Terminal-Funktionen wie das kitty graphics protocol werden nur unzureichend unterstützt; auch experimentelle Protokolle bleiben außen vor
- Weil ein Multiplexer Escape-Codes doppelt interpretiert und zusätzliche Konzepte wie Sitzungen und Fenster einführt, gibt es auch Kritik, dass er die Weiterentwicklung des Terminal-Ökosystems behindert
Alternativen zu tmux erkunden
- Sitzungspersistenz:
- Einfachere Mittel wie
ctrl-z + fg, nohup, disown gibt es zwar, sie sind aber kein vollständiger Ersatz
- Es sind verschiedene Tools entstanden, die nur den Sitzungserhalt zum Ziel haben (
dtach, abduco, shpool)
- Verbindung zwischen Daemon und Client per fork()- und UNIX-Socket-Kombination
- Anders als tmux ohne virtuelle Splits, dafür mit nativem Scrollback und teils auch Buffer-Wiederherstellung
- In der Praxis wirkten die meisten Alternativen jedoch unausgereift, mit Bugs und Problemen wie nicht funktionierenden Detach-Tastenkombinationen innerhalb von
nvim
- Nur shpool war in Sachen detach/attach-Befehle und Keymap-Anpassung wirklich ausgereift
- Fensterverwaltung:
- Lokal übernimmt der Window Manager das Aufteilen und Anordnen
- Auch in Remote-Umgebungen (SSH) lassen sich mit ssh_config und shpool mehrere Sitzungen dauerhaft in getrennten Fenstern halten
- In Kombination mit autossh bleibt die Sitzung auch bei Netzunterbrechungen erhalten
Neuer Workflow
- Persönlich werden ghostty (Laptop) und sway+foot (privater PC) für die Fensterverwaltung genutzt. Die Server laufen als headless VMs auf Basis von Proxmox, mit dauerhaft verfügbarer SSH-Entwicklungsumgebung
- Mehrere shpool-Sitzungen werden über ssh-Kurzbefehle automatisch verbunden und lokal im Window Manager unabhängig voneinander gesteuert
- In
ssh_config wird für jeden Host das automatische Attach an die jeweilige shpool-Sitzung eingerichtet
- Pro Terminal sind getrennte Sitzungen für IRC, dotfiles-Verwaltung, separate neovim-Umgebungen usw. möglich
- Native Funktionen wie Scrollen, Benachrichtigungen und Terminal-Titel, die tmux nur instabil unterstützte, funktionieren dadurch sogar natürlicher
- Nachteile gibt es ebenfalls: verzögerte Wiederherstellung des Terminalzustands beim erneuten Verbinden mit vim und Resize-Probleme bei Nutzung von
nvim
- Kein Multiplayer-Support (Sitzungskonflikte, wenn autossh gleichzeitig von mehreren Clients aus läuft)
- Dennoch wurde tmux aus persönlicher Sicht vollständig ersetzt
Fazit
- Nicht völlig identisch, aber der Wechsel zu einem einfachen und flexiblen Workflow für Sitzungsverwaltung jenseits der Komplexität und Grenzen von tmux ist möglich
- Je nach eigenem Workflow lohnt es sich, Alternativen wie shpool in Betracht zu ziehen
Noch keine Kommentare.