tmux
Tessera parle nativement le mode contrôle de tmux (tmux -CC) : fenêtres et
volets sont des éléments d'interface à part entière, pas un simple relais de
texte. Cela nécessite tmux installé sur le serveur.
Pourquoi tmux
Avec une session adossée à tmux, le shell vit sur le serveur. Fermez Tessera, perdez le Wi-Fi, passez au cellulaire, mettez l'appareil en veille — rien de tout cela ne tue votre travail. Reconnectez-vous et vous êtes exactement là où vous vous étiez arrêté.
Attachement
Le mode de lancement tmux automatique s'attache à (ou crée) une session par
hôte au nom déterministe tessera-XXXXXXXX, retenu même après une
réinstallation de l'app. tmux nommé s'attache à un nom de session que vous
choisissez. Les deux se règlent par hôte dans
l'éditeur d'hôtes.
Le nom déterministe fait que deux de vos appareils utilisant la même entrée d'hôte arrivent dans la même session tmux — c'est ce qui rend le transfert d'une session entre eux transparent.
Si tmux ne démarre pas, Tessera ne vous laisse pas attendre : un hôte sans tmux
installé, une session tmux qui échoue au démarrage ou des dotfiles qui font
déjà exec tmux à la connexion vous déposent tous dans un shell simple, avec
une bannière qui en nomme la raison (« cet hôte démarre son propre tmux à la
connexion — cette session est affichée comme un terminal simple »). Voir
quand une connexion bloque.
Fenêtres
Les fenêtres tmux apparaissent en onglets dans la barre supérieure de la session, dans l'ordre des index. Un bouton + dans la barre ouvre une nouvelle fenêtre ; quand il y a plus d'onglets que de place, une commande de débordement liste toutes les fenêtres. Chaque onglet porte une commande de fermeture, et les fenêtres se renomment depuis la palette ⌘K — le nom est partagé avec tous les clients attachés à la session.
| raccourci | action |
|---|---|
| ⌘T | nouvelle fenêtre |
| ⇧⌘W | fermer le volet / la fenêtre |
| ⇧⌘[ / ⇧⌘] | fenêtre précédente / suivante |
| ⌘1 – ⌘9 | aller à la fenêtre 1–9 |
Volets
Les volets sont de vrais volets tmux, pilotés par le mode contrôle.
| raccourci | action |
|---|---|
| ⌘D | diviser côte à côte |
| ⇧⌘D | diviser l'un au-dessus de l'autre |
| ⌘[ / ⌘] | passer d'un volet à l'autre |
| ⇧⌘↩ | agrandir / réduire le volet |
Sur iPhone
S'attacher depuis un iPhone ne réorganise jamais votre disposition : divisions et état de zoom restent tels que le plus grand écran les a laissés, et le téléphone affiche un volet à la fois via le sélecteur. Voir tessera sur iPhone.
Mosh + tmux
En mosh, le terminal tourne sur UDP tandis que les onglets tmux empruntent un second canal SSH secondaire. Ce canal secondaire porte aussi la redirection de ports pour les hôtes mosh — et le véritable historique.
Cloches
C'est le câblage du mode contrôle de tmux qui permet à Tessera d'acheminer les cloches du terminal vers les notifications — par fenêtre, avec l'onglet qui sonne signalé.
Pièges
- Les variables d'environnement et les extraits de démarrage ne s'exécutent
qu'au démarrage de la session tmux. Après les avoir modifiés, fermez la
session sur le serveur (
tmux kill-session) pour prendre en compte les changements. - S'attacher depuis Tessera et depuis un autre client en même temps fonctionne, mais les deux clients partagent les mêmes fenêtres — c'est tmux, pas un bug. Quand l'autre client est votre propre iPhone ou iPad, Tessera gère la concurrence avec tact — voir reprendre la main.
- Si la sortie semble coincée après de gros rafraîchissements, ⌘R (iPad) force un réaffichage complet. Et si une session s'attache sans jamais s'afficher, Tessera le dit (« appuyez sur n'importe quelle touche pour le réveiller ») — votre première frappe fait apparaître l'écran.