H ILYGO Hawser
Retour au site

Travailler dans le terminal

Onglets, zones, copier-coller, diffusion de frappe et enregistrement : ce que le terminal de Hawser fait, et ce qu'il ne fait pas.

La vue Onglets

Le poste de travail de Hawser est la vue Onglets : rail de gauche, icône 🗂️. Un badge chiffré apparaît sur cette icône dès qu'un onglet est ouvert et disparaît quand il n'y en a plus. Le titre affiché en haut de la vue est Sessions : c'est une chaîne non traduite, il s'agit bien du même écran.

Un onglet contient l'une de ces trois choses : un terminal SSH, un terminal Telnet, ou un navigateur de fichiers SFTP/FTP (voir Transférer des fichiers). Les trois vivent dans le même système d'onglets et de zones, avec le même glisser-déposer.

Un onglet SSH connecté porte une barre d'outils : utilisateur@hôte:port (suivi de si la connexion passe par un bastion), la pastille d'état, puis six boutons — 🔄 reconnexion, ⏺️ enregistrement, 📊 Server, 🐳 Docker, ☸️ K8s, 🧩 snippets.

Vue Onglets de Hawser, barre de dispositions en haut et zone vide au centre.
La barre « Disposition » et le repère d'une zone vide. C'est l'écran que vous retrouvez à chaque lancement : la grille est restaurée, les onglets non.
Session SSH dans Hawser, avec sortie de commandes et barre d'outils des tableaux de bord
Une session ouverte sur web-01 : l'onglet porte le nom de la fiche, pas l'adresse. La barre au-dessus donne accès aux tableaux de bord Server, Docker et K8s sans quitter le terminal.

Découper l'écran en zones

La barre du haut commence par le libellé Disposition suivi de sept boutons. Chacun reconstruit la grille ; le bouton actif reste en surbrillance.

BoutonNombre de zones
1×11
1×22 côte à côte
1×33 côte à côte
2×12 superposées
2×24
2×36
3×39

Chaque zone a sa propre barre d'onglets et son propre onglet actif. Activer un onglet dans la zone 2 ne masque pas celui de la zone 1 : plusieurs terminaux restent visibles en même temps. Changer de disposition ne perd aucun onglet — en repassant de 3×3 à 1×1, les onglets dont la zone disparaît sont rapatriés dans la première.

Toute session ouverte depuis la vue Hôtes atterrit dans la première zone, en haut à gauche. C'est ensuite à vous de la déplacer.

  1. Choisissez une disposition à au moins deux zones dans la barre du haut.
  2. Attrapez l'onglet par sa poignée ⋮⋮ (ou par n'importe quel point de l'onglet).
  3. Faites-le glisser : la zone survolée est encadrée en pointillé.
  4. Lâchez. L'onglet et son contenu migrent, deviennent actifs dans la zone d'accueil, et le terminal se réajuste à la nouvelle taille.

Pour réordonner des onglets dans une même barre, lâchez l'onglet sur un autre onglet : moitié gauche pour insérer avant, moitié droite pour insérer après. Un marqueur bronze indique le point d'insertion. La même opération fonctionne d'une zone à l'autre, déplacement et position précise en un seul geste.

Le bouton × ferme un onglet immédiatement, sans confirmation, y compris si une commande y tourne encore.

Ce que vous retrouvez au lancement suivant

Hawser mémorise votre disposition de grille et la restaure au démarrage. Les onglets, eux, ne sont pas rouverts : c'est un choix délibéré, pour que vous décidiez explicitement à quoi vous vous reconnectez. Vous retrouvez donc votre grille 2×2, vide.

Copier, coller, faire défiler

Hawser n'installe pas de menu personnalisé : la barre de menus est celle que macOS pose par défaut. Le menu Édition vous donne Annuler ⌘Z, Rétablir ⇧⌘Z, Couper ⌘X, Copier ⌘C, Coller ⌘V, Tout sélectionner ⌘A.

  • Copier : sélectionnez à la souris, puis ⌘C.
  • Coller : ⌘V. Un collage multi-lignes part en un seul envoi, et utilise le mode « bracketed paste » si le shell distant l'a activé.
  • Clic droit : sur macOS, il sélectionne le mot sous le pointeur (il n'ouvre pas de menu).

Historique et défilement

Un onglet SSH conserve 5000 lignes d'historique. ⇧ + Page↑ remonte d'une page, ⇧ + Page↓ redescend ; sur un clavier de portable sans pavé numérique, c'est Fn + ⇧ + ↑ et Fn + ⇧ + ↓. Les touches Début et Fin ne font pas défiler : elles envoient leur séquence au shell.

Ce qui vide votre écran

Chaque connexion — première ouverture, bouton 🔄, ou reconnexion automatique — commence par une remise à zéro du terminal. L'historique affiché est perdu et le shell distant est neuf : le répertoire courant et les variables d'environnement de la session précédente ne sont pas repris.

Diffuser sa frappe vers plusieurs sessions

À droite de la barre Disposition se trouve une case à cocher Broadcast SSH. Tant qu'elle est cochée, chaque caractère tapé dans un terminal SSH est aussi envoyé à tous les autres onglets SSH connectés, toutes zones confondues.

Enregistrer une session

Le bouton ⏺️ de la barre d'outils d'un onglet SSH démarre la capture. Il devient ⏹️ Stop sur fond rouge et un message Enregistrement démarré s'affiche brièvement. Un second clic arrête et scelle le fichier.

Ce qui est capturé, c'est la sortie du serveur (flux standard et flux d'erreur), pas vos frappes. Le format est asciinema v2, avec un en-tête portant la taille du terminal et TERM: xterm-256color, et un horodatage relatif par bloc de sortie.

Les fichiers sont écrits ici :

~/Library/Application Support/ch.ilygo.hawser/recordings/<uuid>.cast

Pendant la capture, le fichier porte l'extension .cast.part et les droits 0600. À l'arrêt, il est scellé. Si un coffre est ouvert à ce moment-là, le .cast final est chiffré en AES-256-GCM avec une sous-clé dérivée de votre clé maîtresse, derrière un en-tête OPCAST1. Sans coffre ouvert, il reste un .cast en clair, lisible par asciinema play.

Messages possibles au clic sur ⏺️ : Ouvre la session d'abord (la session ou le shell ne sont pas encore établis), Recording: already recording this shell (une capture tourne déjà sur ce shell), Recording natif indisponible (la page a été ouverte hors de l'application native), et Recording: <message> pour toute autre erreur du moteur.

Recherche, police et thème

L'apparence des terminaux SSH est figée dans le code : police SF Mono (avec repli sur Menlo, puis Consolas), taille 13, fond sombre, curseur ambre, et une palette ANSI 16 couleurs complète — ls --color, htop, vim et les invites colorées s'affichent correctement. Le pseudo-terminal demandé au serveur est un xterm-256color. Les onglets Telnet utilisent Menlo, en ambre sur fond noir.

Les raccourcis réellement câblés

La liste est courte, et l'aide intégrée en annonce plus qu'il n'en existe. Voici ce qui fonctionne.

RaccourciEffetDepuis un terminal
⌘KOuvre la palette de commandesOui — la frappe n'est pas transmise au shell
⌘LFerme le coffre, sans confirmationOui
⌘C / ⌘VCopier la sélection / collerOui
⇧ + Page↑ / Page↓Défiler d'une page dans l'historiqueOui, c'est son seul usage
ÉchapFerme la modale au premier planNon : la touche est consommée par le terminal
⌘WFerme la fenêtre, donc toutes les sessionsOui
⌘QQuitte l'applicationOui

Trois raccourcis annoncés par l'application ne tiennent pas leur promesse. ⌘N (« nouvel hôte ») est capté mais n'exécute rien : passez par le bouton + New ou par ⌘K → « New connection », voir Ajouter un serveur. ⌘F n'existe pas. ⌘? dépend de la disposition du clavier et ne s'ouvre pas sur un clavier QWERTY.

Vue Centre d'aide de Hawser avec ses quatre cartes d'articles.
Le Centre d'aide s'atteint uniquement par l'entrée ❓ du rail : le menu « Aide » de macOS est vide. Son article « Raccourcis clavier » liste six lignes, dont trois ne fonctionnent pas.