
Applications GUI dans le terminal avec Term.Everything❗
By WORMS David
16 sept. 2025
Ne ratez pas nos articles sur l'open source, le big data et les systèmes distribués, fréquence faible d’un email tous les deux mois.
Term.Everything❗ permet l’exécution d’applications GUI directement dans l’environnement du terminal. Cette fonctionnalité vous permet d’exécuter des applications comme Firefox depuis un serveur distant via SSH.
L’application est une implémentation complète d’un Compositeur Wayland. Selon l’annonce du développeur sur HackerNews, environ 80% du code est écrit en TypeScript pour faciliter l’engagement des développeurs et encourager les contributions. La page de documentation How I Did It! sur GitHub fournit une explication détaillée de la méthode d’implémentation.
L’outil s’avère inestimable lorsque vous devez accéder à des services nécessitant une interface graphique ou un navigateur web sur des serveurs distants protégés par des pare-feux où seules les connexions SSH sont autorisées.
Contrairement au transfert X11 traditionnel qui exige une installation fastidieuse d’un serveur X11 sur l’hôte distant et nécessite localement un environnement client X11 complet, Term.Everything❗ offre une simplicité remarquable. Avec le téléchargement d’un seul binaire compact, vous pouvez accomplir ce qui nécessitait auparavant une configuration étendue et de multiples composants. La solution est distribuée sous la forme d’un binaire AppImage auto-exécutable avec une empreinte compacte de moins de 50 Mo (la dernière version au moment de la rédaction fait 41,9 Mo).
Terminal
Bien que ce ne soit pas obligatoire, il est recommandé d’utiliser un terminal qui prend en charge le rendu d’images. La qualité visuelle de la fenêtre d’application est limitée par le nombre de lignes et de colonnes disponibles dans votre terminal. Les terminaux standards comme Gnome Terminal fonctionneront, mais avec une résolution limitée.
Cela représente une excellente occasion d’évaluer Ghostty, un terminal moderne disponible pour Linux et macOS.
snap install ghostty --classic
Cependant, la prise en charge de la souris dans Ghostty est limitée avec Term.Everything. De meilleurs résultats ont été obtenus avec Kitty sur Linux ou iTerm2 sur macOS. Les commandes suivantes installent et démarrent Kitty sur Ubuntu :
apt install -y kitty
kitty
Environnement de test
Term.Everything❗ peut être exécuté depuis un terminal local, à distance via SSH, ou dans une machine virtuelle. Pour les besoins de la démonstration, nous utiliserons une image Ubuntu exécutée comme conteneur Incus.
# Créer un conteneur Incus
incus --project default launch images:ubuntu/24.04 term-everything
incus --project default shell term-everything
Installation
Les étapes suivantes téléchargent le binaire AppImage auto-exécutable et le préparent pour l’utilisation.
L’AppImage nécessite deux bibliothèques spécifiques. Nous installerons également curl pour le téléchargement du binaire.
# Installer les dépendances requises
apt install -y curl libharfbuzz0b libfontconfig1 >/dev/null 2>&1
# Télécharger et préparer le binaire
curl -L -o term-everything https://github.com/mmulet/term.everything/releases/download/0.5.1/term.everything.mmulet.com-dont_forget_to_chmod_+x_this_file
# Le rendre exécutable
chmod u+x term-everything
Utilisation
Pour démontrer la fonctionnalité, nous allons créer un simple fichier HTML et l’ouvrir avec Firefox.
# Installer l'application cible
apt install -y firefox >/dev/null 2>&1
# Écrire un exemple de fichier HTML
echo '<h1>Bonjour</h1>' > test.html
# Démarrer Firefox, attendre quelques secondes
./term-everything firefox test.html
Pour lancer une application GUI, ajoutez la commande de l’application après term-everything
et observez l’interface graphique apparaître directement dans le terminal.
Nettoyage
Après les tests, le conteneur Incus est supprimé pour nettoyer l’environnement.
incus --project default delete --force term-everything