tmux
Tessera spricht den Control Mode von tmux (tmux -CC) nativ: Fenster und
Bereiche sind vollwertige Bedienelemente, kein Text-Passthrough.
Vorausgesetzt wird ein auf dem Server installiertes tmux.
Warum tmux
In einer tmux-gestützten Sitzung lebt die Shell auf dem Server. Tessera schließen, das WLAN verlieren, auf Mobilfunk wechseln, das Gerät schlafen legen — nichts davon beendet Ihre Arbeit. Verbinden Sie sich neu, und Sie sind genau da, wo Sie aufgehört haben.
Anhängen
Der Startmodus Auto-tmux hängt sich an eine Host-eigene Sitzung mit dem
deterministischen Namen tessera-XXXXXXXX an (oder legt sie an); der Name
bleibt auch über Neuinstallationen der App hinweg erhalten. benanntes tmux
hängt sich an einen Sitzungsnamen Ihrer Wahl an. Beides wird pro Host im
Host-Editor eingestellt.
Der deterministische Name sorgt dafür, dass zwei Ihrer Geräte mit demselben Host-Eintrag in derselben tmux-Sitzung landen — genau das macht das Übergeben einer Sitzung zwischen ihnen nahtlos.
Kommt tmux nicht hoch, lässt Tessera Sie nicht warten: ein Host ohne
installiertes tmux, eine tmux-Sitzung, die nicht startet, oder Dotfiles, die
beim Login bereits exec tmux ausführen — all das setzt Sie in eine einfache
Shell, mit einem Banner, das den Grund nennt („Dieser Host startet beim Login
sein eigenes tmux – diese Sitzung wird als einfaches Terminal angezeigt“).
Siehe
wenn eine Verbindung hängt.
Fenster
tmux-Fenster erscheinen als Tabs in der oberen Leiste der Sitzung, in der Reihenfolge ihrer Indizes. Eine +-Taste in der Leiste öffnet ein neues Fenster; sind mehr Tabs vorhanden, als Platz haben, listet ein Überlauf-Steuerelement jedes Fenster auf. Jeder Tab hat ein Schließen-Steuerelement, und Fenster lassen sich über die ⌘K-Palette umbenennen — der Name gilt für alle Clients, die an der Sitzung hängen.
| Kurzbefehl | Aktion |
|---|---|
| ⌘T | neues Fenster |
| ⇧⌘W | Bereich / Fenster schließen |
| ⇧⌘[ / ⇧⌘] | vorheriges / nächstes Fenster |
| ⌘1 – ⌘9 | zu Fenster 1–9 springen |
Bereiche
Bereiche sind echte tmux-Bereiche, gesteuert über den Control Mode.
| Kurzbefehl | Aktion |
|---|---|
| ⌘D | nebeneinander teilen |
| ⇧⌘D | übereinander teilen |
| ⌘[ / ⌘] | Bereiche durchschalten |
| ⇧⌘↩ | Bereich zoomen / Zoom aufheben |
Auf dem iPhone
Das Anhängen von einem iPhone bringt Ihr Layout nie durcheinander: Aufteilungen und Zoom-Zustand bleiben so, wie der größere Bildschirm sie hinterlassen hat, und das Telefon zeigt über den Umschalter jeweils einen Bereich. Siehe Tessera auf dem iPhone.
mosh + tmux
Über mosh läuft das Terminal auf UDP, während die tmux-Tabs einen zweiten SSH-Seitenkanal nutzen. Über diesen Seitenkanal läuft bei mosh-Hosts auch die Portweiterleitung — und echtes Scrollback.
Signaltöne
Erst die Verdrahtung über den tmux-Control-Mode erlaubt es Tessera, Terminal-Signaltöne an die Mitteilungen weiterzureichen — pro Fenster, wobei der Tab markiert wird, der den Signalton gesendet hat.
Fallstricke
- Umgebungsvariablen und Startskripte laufen nur, wenn die tmux-Sitzung
startet. Beenden Sie die Sitzung nach einer Änderung auf dem Server
(
tmux kill-session), damit die Änderungen greifen. - Gleichzeitig aus Tessera und aus einem anderen Client anzuhängen funktioniert, aber beide Clients teilen sich dieselben Fenster — das ist tmux, kein Fehler. Ist der andere Client Ihr eigenes iPhone oder iPad, geht Tessera höflich mit dem Konflikt um — siehe Steuerung zurückholen.
- Wirkt die Ausgabe nach heftigen Neuzeichnungen verklemmt, erzwingt ⌘R (iPad) ein vollständiges Neuzeichnen. Und hängt sich eine Sitzung einmal an, ohne zu zeichnen, sagt Tessera das („drücke eine beliebige Taste, um ihn aufzuwecken“) — Ihr erster Tastendruck holt den Bildschirm hervor.