Présentation de Ghostel
Ghostel est un émulateur de terminal pour Emacs, basé sur la bibliothèque libghostty-vt. Il utilise un module dynamique écrit en Zig pour gérer l'état du terminal, le rendu et les entrées/sorties locales. L'interface Elisp gère les raccourcis clavier, les tampons, les commandes et l'intégration des processus distants.
Fonctionnement de Ghostel
Ghostel suit une architecture à deux couches, similaire à emacs-libvterm, mais utilise le moteur VT de Ghostty à la place de libvterm. Cela lui permet de supporter les protocoles clavier et graphiques Kitty, les styles de soulignement riches, les hyperliens OSC 8, les requêtes de couleur OSC 4/10/11 et la sortie synchronisée (DEC 2026). Le module natif est téléchargé automatiquement au premier usage, il n'est donc pas nécessaire d'avoir une chaîne d'outils pour l'installation standard.
(use-package ghostel :bind (("C-x m" . ghostel)))
Caractéristiques et performances
Ghostel offre plusieurs modes d'entrée, notamment le mode semi-caractère, le mode caractère, le mode ligne, le mode emacs et le mode copie. Il prend en charge l'intégration du shell, y compris la navigation dans les répertoires et la détection des invites de mot de passe. Les performances de Ghostel sont optimisées grâce à l'utilisation d'un module dynamique pour les opérations de terminal.
Les exigences pour utiliser Ghostel incluent Emacs 28.1 ou supérieur avec une prise en charge des modules dynamiques, ainsi que macOS, Linux, FreeBSD ou Windows natif. Des binaires précompilés sont disponibles pour plusieurs plateformes, notamment aarch64-macos, x86_64-macos, x86_64-linux, aarch64-linux, x86_64-freebsd, x86_64-windows et aarch64-windows.
Installation et configuration
L'installation de Ghostel peut se faire via MELPA, en utilisant use-package avec :vc ou :load-path, ou manuellement en ajoutant le chemin d'accès au répertoire lisp de Ghostel à la liste de chargement d'Emacs. La configuration peut être personnalisée en utilisant des commandes Elisp pour définir les raccourcis clavier, les modes d'entrée et d'autres paramètres.