Fonctionnalités

Chaque partie de Lasterm, ce qu’elle fait, et où elle s’arrête. L’interface de l’application est en anglais : ses menus et ses réglages sont cités tels qu’elle les affiche.

Les sessions survivent à la fenêtre

Vos terminaux tournent dans le hub et son agent, pas dans la fenêtre. Réduisez la fenêtre dans la zone de notification, ou fermez l’onglet du navigateur : ils continuent de tourner. À votre retour, le hub restaure chaque écran tel qu’il était.

Les terminaux de cet ordinateur survivent aussi à un redémarrage du hub. Ils tournent dans un agent qui reste actif de lui-même, et le hub s’y reconnecte à son redémarrage. Il en va de même quand l’application se ferme de façon inattendue.

Quand un hôte est injoignable, son terminal continue d’afficher son dernier écran, marqué comme non connecté, avec un bouton Reconnect.

Après un rechargement ou un redémarrage, l’écran revient, mais pas les lignes qui en étaient sorties par le haut. Quit completely termine les terminaux de cet ordinateur, volontairement : cela libère les fichiers qu’une mise à jour remplace.

survit à : fenêtre fermée · rechargement · redémarrage du hub (local)

Fenêtre réduite dans la zone de notification à 12 h 10, rouverte à 12 h 40. Le serveur a continué de tourner, et son écran est revenu.

Hôtes distants en SSH

Ajoutez un hôte avec son nom d’hôte, son port et votre nom d’utilisateur, et connectez-vous avec un fichier de clé, votre agent SSH, ou un mot de passe demandé à chaque connexion. Vous pouvez aussi importer des hôtes depuis votre ~/.ssh/config.

Le hub copie son agent sur l’hôte par SSH, adapté au système et à l’architecture de l’hôte. S’il n’embarque pas cet agent, il le télécharge depuis la release GitHub de sa propre version et le vérifie avec les sommes de contrôle de cette release. L’agent dialogue avec le hub par la connexion SSH : aucun port n’est ouvert sur la machine distante, et l’hôte n’a besoin d’aucun accès à Internet.

Un hôte peut être joint par un hôte de rebond (ProxyJump), et chaque reconnexion passe aussi par lui.

La première connexion affiche l’empreinte de la clé de l’hôte et attend votre réponse. Si la clé change plus tard, la connexion s’arrête jusqu’à ce que vous acceptiez la nouvelle.

Le hub envoie un keepalive toutes les 15 secondes : un hôte qui ne répond plus est repéré en moins d’une minute. Le hub le reconnecte alors, en réessayant pendant cinq minutes au plus.

Un seul hôte de rebond, pas une chaîne. Les hôtes distants tournent sous Linux sur x64 ou arm64, ou sous Windows sur x64 ; macOS n’est pas pris en charge.

hôte de rebond · keepalive toutes les 15 s · Linux x64 et arm64 · Windows x64

pi est joint par un bastion. Le hub y a copié l’agent arm64 à la première connexion.

Des terminaux qui survivent à la connexion

Un hôte Linux peut garder un agent en marche. Ses terminaux survivent alors à une connexion perdue, que le hub rétablit de lui-même, et à un redémarrage du hub, après lequel il suffit de sélectionner l’hôte pour les retrouver.

Activez cette option pour un hôte avec Keep an agent running there dans ses réglages, ou pour tous les hôtes dans Settings › Agents ou dans config.toml. L’agent s’arrête de lui-même après 30 minutes sans terminal ni hub connecté. Si la déconnexion de l’hôte met fin à vos processus, lancez-y loginctl enable-linger : l’agent tourne alors en dehors de vos sessions.

Sans agent en marche, et toujours sur un hôte Windows, les terminaux se terminent avec la connexion. Quand le hub se reconnecte, il démarre de nouveaux shells à leur place.

[ssh] remote_daemon · hôtes Linux · s’arrête après 30 minutes d’inactivité

# config.toml — garder un agent en marche en SSH
[ssh]
remote_daemon = true

Une barre d’hôtes

Chaque hôte a un badge dans la barre de gauche : ses initiales, un emoji ou une image, sur sa couleur, avec un point pour son état : connecté, en reconnexion, hors ligne ou en erreur. Survolez un badge pour voir l’adresse de l’hôte, son groupe, son nombre de terminaux et depuis combien de temps il est connecté.

Rangez les hôtes en groupes, et faites glisser hôtes et groupes dans l’ordre de votre choix.

connecté · reconnexion · hors ligne · erreur

Divisez un onglet en volets, vers la droite ou vers le bas, depuis le menu d’un onglet ou d’un volet, et faites glisser un volet par son en-tête pour le déplacer. Un onglet contient jusqu’à 4 volets ; Settings › Panes en autorise jusqu’à 8.

Cherchez dans la sortie d’un terminal, dans un volet ou dans tous, en respectant la casse ou non, avec des expressions régulières ou par mots entiers, et retrouvez vos recherches récentes.

jusqu’à 4 volets par onglet par défaut · recherche dans un volet ou dans tous

L’environnement du terminal

Chaque terminal part de l’environnement de son agent, ou d’un environnement minimal, et indique ce qu’il est : TERM=xterm-256color, COLORTERM=truecolor, TERM_PROGRAM=lasterm. Dans Settings › Environment, définissez, modifiez ou supprimez des variables pour tous les terminaux, pour un hôte ou pour un seul terminal, avec les variables propres à l’hôte affichées à côté. Sur un hôte SSH, le shell par défaut démarre en shell de connexion, comme avec ssh host.

Les valeurs sont stockées en clair : n’y mettez pas de secrets. Une modification s’applique aux terminaux nouveaux ou redémarrés, pas à ceux qui tournent déjà.

Inherited ou Minimal · global, par hôte, par terminal

# config.toml — chaque terminal, sur chaque hôte
[terminal]
env_mode = "inherit"                     # ou "minimal"
env = { EDITOR = "hx", PAGER = false }   # false retire la variable

Quand un terminal se termine

Quand un shell se termine, son volet reste, avec son code de sortie, Restart et Close. Le réglage When a terminal ends peut choisir à votre place : Ask, Restart ou Close, pour tous les hôtes, un hôte ou un terminal, ou avec Always do this sur le volet.

Un redémarrage dont l’hôte est absent l’attend, et s’exécute dès son retour. Avec Keep ended terminals in the sidebar, fermer un terminal terminé le garde dans la liste, grisé, pour le redémarrer plus tard avec les mêmes réglages. Sa sortie n’est pas conservée.

Ask · Restart · Close

# config.toml — à la fin du terminal d’un volet
[terminal]
when_ended = "ask"                       # ou "restart", "close"

Profils de lancement et élévation

Settings › Profiles contient des profils de lancement nommés : un shell ou un programme, ses arguments, un répertoire de travail, des changements d’environnement, sa police, son icône et sa couleur, et s’il s’exécute avec des droits élevés. L’élévation passe par sudo, doas, pkexec, gsudo sous Windows, ou une commande de votre choix, à définir par hôte.

sudo · doas · pkexec · gsudo · une commande de votre choix

Thèmes et arrière-plans

Lasterm est livré avec neuf thèmes : Catppuccin Mocha (par défaut), One Half Dark, Dracula, Nord, Tokyo Night, Gruvbox Dark, One Half Light, Solarized Light et GitHub Light. Créez le vôtre ou importez-en un, et donnez à un hôte ou à un seul terminal son propre thème, sa police ou son fond d’écran. Lasterm peut suivre le mode sombre du système, avec un thème pour chaque mode.

Derrière le terminal, affichez un fond d’écran avec flou et assombrissement, ou laissez transparaître le bureau. Sous Windows 11, l’application de bureau peut y appliquer Mica ou Acrylic à la place.

9 thèmes · par hôte · par terminal · Mica et Acrylic sous Windows 11

L’application de bureau et votre navigateur

Le hub sert la même interface à un navigateur sur le même ordinateur, à son adresse https://127.0.0.1. Sauf si vous configurez un certificat, le hub génère le sien, que le navigateur vous demande d’accepter. Appairez le navigateur avec un code à 8 chiffres, obtenu par Generate Pairing Code dans la palette de commandes. Un code ne sert qu’une fois, dans les 60 secondes. Après un redémarrage du hub, le navigateur s’appaire de nouveau.

L’application de bureau et le navigateur peuvent afficher le même terminal. Un seul d’entre eux tape à la fois : les autres regardent jusqu’à ce qu’ils prennent la main.

L’appairage d’un navigateur sur un autre appareil est prévu.

code d’appairage · même ordinateur · un seul à taper à la fois