Longtemps réservé aux bêta testeurs, l’émulateur de terminal Ghostty 1.0.0 est désormais (enfin !) disponible pour tous les utilisateurs de Linux et MacOS (une version Windows est prévue pour je ne sais pas quand). Le moins que l’on puisse dire c’est qu’il tient ses promesses.
Ghostty est né en 2021 d’un projet personnel de Mitchell Hashimoto. Son objectif ? Développer un émulateur de terminal très rapide et natif.
J’ai joué quelques heures avec et il est devenu mon terminal de travail (adieu iTerm).
Un émulateur de terminal natif
En étant natif, Ghostty tire parti de l’environnement sur lequel il s’exécute. Par exemple, l’interface graphique (GUI) de la version MacOS a été écrite en Swift et utilise les APIs de l’environnement MacOS. Ghostty hérite ainsi de fonctions propres à MacOS. Sur Linux, la GUI de Ghostty a été écrite dans le langage Zig et utilise les APIs GTK4 C.
Les GUIs de MacOS et Linux utilise un élément commun : libghostty
qui constitue le coeur de l’émulateur de terminal.
Rapide comment ?
Jusqu’ici j’utilisais iTerm 2 qui n’est certes pas réputé pour sa vélocité mais le contraste est d’autant plus flagrant comparé à Ghostty. Je n’ai pas encore eu le temps de faire des tests approfondis de performance, mais au delà du simple ressenti à l’usage, j’ai pu toutefois comparer leurs exécutions de DOOM-fire-zig. Les résultats parlent d’eux-même, jetez un oeil sur le FPS :
Dans iTerm2 le FPS atteint péniblement 48.55 (voir 50 par moments)
Sous Ghostty on atteint… 310 fps 🚀
Configuration de Ghostty
Dans cette toute première version, Ghostty ne propose pas d’interface graphique pour le configurer. Ghostty est toutefois prêt à l’emploi dès son installation.
Ghostty est livré avec beaucoup de thèmes différents dont la liste s’obtient par la commande :
ghostty +list-themes
La liste des fonts s’obtient par :
ghostty +list-fonts
Si vous souhaitez adapter la configuration (appliquer un thème, utiliser une font particulière etc.) il vous suffit de créer un fichier intitulé config
dans ~/.config/ghostty/
.
Mon fichier de configuration :
# Fonts
font-family = ""
font-family = "MesloLGL Nerd Font Mono"
font-size = 16
font-thicken
adjust-cell-height = -4
adjust-underline-position = +2
# Theme
theme = "catppuccin-mocha"
# Cursor setting
shell-integration-features = no-cursor
cursor-style = "block"
cursor-style-blink = "true"
adjust-cursor-height = -4
# Mouse
mouse-hide-while-typing
# Background
background-opacity = 0.85
# No title
title = " "
macos-titlebar-style = hidden
Conclusion
Ghostty est une excellente alternative pour ceux qui veulent un émulateur de terminal qui soit à la fois natif et rapide. Je n’ai pas rencontré d’obstacles à son utilisation durant mes tests (tmux, yazi, nvim, fzf etc.).