14 points par GN⁺ 2025-11-04 | 15 commentaires | Partager sur WhatsApp
  • Présentation des résultats de l’évaluation 2025 comparant les principaux émulateurs de terminal selon la précision de la prise en charge d’Unicode et les performances
  • Ghostty est un nouveau terminal développé en Zig, qui obtient le meilleur score grâce à une gestion précise d’Unicode
  • Kitty a obtenu un score comparable à celui de Ghostty et a publié son algorithme de segmentation du texte, contribuant ainsi à la standardisation
  • De nombreux terminaux ont montré des problèmes de baisse de performances et d’incohérence dans la prise en charge des DEC Private Modes ; en particulier, les terminaux basés sur VTE ne montrent aucune amélioration
  • L’émergence d’un protocole de texte à largeur variable ouvre la possibilité d’améliorer la lisibilité de nombreuses langues au-delà de la limite des cellules à largeur unique
  • Errant Champions : des challengers comme Ghostty et Kitty qui, au lieu de se contenter des spécifications classiques, repensent à la racine les problèmes de largeur de caractères, de rendu et d’Unicode dans les terminaux

Présentation de l’outil ucs-detect et du test

  • Suite de l’expérience comparative sur la prise en charge d’Unicode publiée en 2023, l’outil ucs-detect ajoute la détection des DEC Private Modes, du graphisme sixel, de la taille en pixels et de la version logicielle
    • L’outil envoie des séquences de contrôle de position du curseur et enregistre les écarts en comparant les réponses du terminal aux résultats de Python wcwidth
  • Le test vérifie la précision du calcul de largeur des caractères de chaque terminal, et les résultats quantifient la qualité de sa prise en charge d’Unicode

Le problème de largeur des caractères (The Width Problem)

  • Les terminaux ont une limite structurelle : ils doivent afficher divers caractères Unicode dans une grille à chasse fixe
  • Les caractères combinés, les séquences d’emoji et le zero-width joiner, entre autres, rendent souvent la prédiction de la largeur des caractères erronée
  • Ces erreurs provoquent des erreurs de position du curseur et une corruption de l’affichage, et vont jusqu’à déformer la position de saisie
  • Les résultats des tests identifient les terminaux qui causent le moins ces problèmes

Ghostty : le nouveau poids lourd

  • Ghostty est un nouveau terminal dévoilé en 2025, développé en Zig depuis zéro
    • Grâce à une implémentation rigoureuse de la prise en charge d’Unicode, il obtient la meilleure précision et le meilleur score du test
  • En 2023, le développeur Mitchell Hashimoto a étudié les principes de base dans son texte Grapheme Clusters and Terminal Emulators
  • Le tout nouveau libghostty pourrait devenir une alternative à libvte et fournir à l’avenir une base Unicode solide à l’écosystème des terminaux

Kitty : un autre champion

  • Kitty a obtenu un score presque identique à celui de Ghostty et a publié son algorithme de segmentation des cellules de texte
    • Cet algorithme est conforme à la spécification Python wcwidth et s’appuie sur une interprétation de la norme Unicode
  • Ces deux terminaux sont les seuls à prendre correctement en charge Variation Selector 15
    • Cette fonctionnalité a peu d’utilité pratique, mais elle devrait être intégrée à terme à la future norme de Python wcwidth

Résumé de la comparaison des performances Unicode des émulateurs de terminal

  • 1er Ghostty, 2e Foot, 3e Kitty occupent le haut du classement
    • Tous trois obtiennent le score maximal sur les critères de précision du traitement Unicode (WIDE/LANG/ZJW/VS16)
    • Ghostty obtient 100 sur tous les critères et un score global de 100, avec les DEC Modes également enabled
    • Kitty offre une précision de tout premier plan, mais ses performances (Elapsed time 1748s) sont un peu plus lentes
  • Les terminaux basés sur VTE (GNOME Terminal, Terminator, LXTerminal, etc.) restent en bas du classement
    • Tous ont un Final Scaled Score inférieur ou égal à 5 et des temps de test très lents, entre 8000 et 18000 secondes
    • Aucune amélioration par rapport à 2023
  • Du point de vue des performances (Elapsed time), Foot, WezTerm, tmux, Konsole sont rapides (moins de 100 secondes)
    • iTerm2, Extraterm sont très lents en raison d’une forte utilisation CPU (plus de 4000 secondes)
  • La prise en charge du graphisme sixel n’est disponible que sur une partie des terminaux les mieux classés
    • Ghostty, Kitty, Konsole, contour la prennent en charge
    • GNOME Terminal et la plupart des terminaux de la famille VTE ne la prennent pas en charge
  • Seuls Ghostty et Kitty prennent correctement en charge Variation Selector 15 (VS15)
    • En matière de maturité du traitement Unicode, ces deux projets sont de fait dans une catégorie à part

Analyse des performances (The Long Road)

  • De nombreux terminaux affichent des performances très lentes, au point que l’exécution complète des tests prend plusieurs heures
    • iTerm2 et Extraterm utilisent excessivement le CPU, ce qui a obligé à réduire la durée des tests
    • GNOME Terminal et les terminaux basés sur VTE consomment peu de CPU, mais demandent plus de 5 heures
  • Python wcwidth, bien qu’écrit dans un langage de haut niveau, tient la cadence face à la plupart des terminaux
  • Pour optimiser les performances, des bit vectors, Bloom filters et caches LRU ont été testés, mais la combinaison recherche binaire + cache LRU s’est révélée la plus efficace
    • Le cache LRU est particulièrement utile pour traiter des ensembles de caractères récurrents
  • L’introduction d’un module C a aussi été envisagée, mais l’implémentation actuelle en Python offre déjà des performances suffisantes

Cas particuliers et problèmes (Tilting at Edges)

  • Terminology donne des résultats différents à chaque exécution, ce qui laisse penser à un possible état interne corrompu
  • iTerm2 signale tous les DEC Private Modes comme « pris en charge mais désactivés »
  • Konsole ne répond pas aux requêtes, mais certains modes sont pris en charge lorsqu’ils sont activés
  • Contour répond avec des numéros de mode erronés, ce qui l’a fait apparaître comme « non pris en charge », et une erreur de configuration de la touche ESC est apparue dans la release de décembre 2024
  • Les terminaux basés sur VTE/7600 conservent les mêmes faibles scores qu’en 2023
  • Les discussions autour de l’amélioration d’Unicode dans le projet libvte ont été critiquées, mais le problème de prise en charge des séquences d’emoji est perçu comme un signe d’amélioration pour 2026

À propos du Mode 2027

  • Le Mode 2027 se contente de distinguer si un terminal prend en charge Unicode ou non, sans renseigner le niveau de détail des fonctionnalités
  • En pratique, une méthode comme ucs-detect, qui teste directement les fonctionnalités individuelles et les code points, est plus précise

Au-delà de la chasse fixe (Beyond Fixed Widths)

  • La structure en cellules à chasse fixe dégrade la lisibilité de nombreuses langues
  • Le text sizing protocol propose une nouvelle approche pour résoudre ce problème
    • Kovid Goyal, de Kitty, l’illustre par cet exemple : « je veux voir le titre d’un fichier Markdown en plus grand »
  • Cette fonctionnalité ouvre la voie à une meilleure accessibilité et à une meilleure lisibilité des écritures complexes
  • À titre d’exemple, la comparaison de l’affichage de la langue Khün entre Contour et l’éditeur Kate montre que le rendu à largeur variable donne un résultat plus clair
  • Un mode à largeur variable permettant au moteur de police de rendre le texte sans contrainte de cellule est présenté comme une piste d’évolution future
  • L’introduction du protocole de taille de texte est considérée comme un progrès vers la résolution de ces problèmes

15 commentaires

 
sleepyeye 2025-11-10

Je recommande wezterm.

 
kaorw 2025-11-06

J’utilise xshell et iterm2.. Il faudrait que j’en essaie aussi d’autres

 
hwhang0917 2025-11-05

Sur Mac et Linux, j’ai beaucoup utilisé ghostty, mais sur Windows, wezterm me semble être le meilleur.

 
botplaysdice 2025-11-05

En tant qu’utilisateur de Windows,

je me suis complètement installé avec le terminal cygwin (mintty) + mosh. Franchement, j’ai l’impression qu’il ne manque rien.

 
ndrgrd 2025-11-04

Kitty est riche en fonctionnalités, mais comme son mainteneur est pitoyable, je suis content qu’une alternative appelée Ghostty ait vu le jour.

 
savvykang 2025-11-04

J’utilise simplement Windows Terminal.

 
say8425 2025-11-04

Au final, je suis revenu à iTerm2.

 
ceruns 2025-11-04

Je finis toujours par revenir à Gnome Terminal...

 
sddsdd94 2025-11-04

Ce serait vraiment bien si Ghostty ou Kitty prenaient aussi en charge Windows. sanglot

Si on ajuste bien uniquement la config, WezTerm était aussi plutôt pas mal. (prise en charge de Windows)
https://fr.news.hada.io/topic?id=9270

 
coderred 2025-11-04

On dirait que tabby est un peu marginal… je vais devoir essayer ghostty, alors.

 
coderred 2025-11-04

Ah. ghostty n’existe pas pour Windows ;

 
barca105 2025-11-04

Avec les programmes CLI basés sur des LLM, on va probablement avoir de plus en plus souvent besoin d’utiliser dans le terminal diverses langues autres que l’anglais.
Dans cette optique, la prise en charge d’Unicode par les émulateurs de terminal me semble vraiment importante.

 
t7vonn 2025-11-04

Si seulement la fonction cmd+f arrivait dans ghostty, ce serait parfait. Son absence est discrètement gênante.

Et puis, une fois qu’on a fait un split, je ne sais pas comment le détacher dans une fenêtre séparée. Quelqu’un saurait-il comment faire ? ouin

 
jjpark78 2025-11-04

Ne sous-estime pas alacritty~~~

 
GN⁺ 2025-11-04
Avis Hacker News
  • J’ai utilisé Windows Terminal pour la première fois à cause du travail
    Après avoir développé toute ma vie sur Linux, j’ai trouvé que Ctrl+C et Ctrl+V y fonctionnaient de manière très intelligente
    Quand il n’y a pas de sélection, Ctrl+C interrompt le processus ; quand il y a une sélection, il copie, et le collage se fait simplement avec Ctrl+V. Vraiment très pratique

    • Sur Linux, surtout avec Wayland, il est même possible de copier sans Ctrl+C
      Il suffit de sélectionner le texte pour le copier, puis de le coller dans une autre fenêtre avec le bouton central de la souris
      On appelle cela la Primary Selection, et elle fonctionne séparément du presse-papiers classique (Ctrl+C/V). Personnellement, je trouve cette méthode plus pratique
  • Ce qui est intéressant, c’est que les programmes qu’on appelle habituellement des « émulateurs de terminal » n’émulent pas complètement un terminal
    Mais c’est désormais possible. Il suffit de consulter comment émuler réellement un VT102 avec MAME
    Cela fonctionne aussi sous WSL, et on peut relier socat et mame pour l’utiliser comme un vrai terminal matériel
    J’avais autrefois envie de créer un émulateur VT220 de haut niveau ajoutant le contrôle de la souris et le collage pour VT220, et cet article m’y a fait repenser

  • Je suis heureux de voir Konsole de KDE si bien classé
    C’est un terminal vieux de plusieurs décennies, mais il rivalise encore en performances avec les terminaux modernes

    • Dans l’environnement KDE, on peut simplement utiliser Konsole, fourni par défaut
      Il est très personnalisable et suffisamment rapide
      J’apprécie particulièrement le fait qu’on puisse ouvrir directement Konsole dans le dossier courant depuis Dolphin avec un clic droit
      La fonction de scrollback infini est aussi utile. Les anciens logs sont automatiquement déplacés vers un fichier au lieu d’être perdus
      J’ai configuré Ctrl+Shift+X comme raccourci de réinitialisation complète et je m’en sers souvent
  • Parmi les ressources associées

  • DECterm manque dans la liste
    Comme on peut le voir dans la documentation de présentation de DECterm, il offrait la meilleure émulation VT220 sur le X Window System
    Très peu de terminaux prennent en charge les modes de caractères VT100 « double wide » ou « double high, double wide ». Ces énormes caractères étaient assez amusants

    • xterm prend en charge ce mode. J’avais autrefois publié un billet à ce sujet concernant la prise en charge des emojis : Can your terminal do emojis?
    • Curieusement, Windows Terminal prend en charge DECDHL, alors que c’est presque absent côté Linux
  • J’ai longtemps utilisé Alacritty avec satisfaction, mais j’ai récemment essayé Ghostty et j’ai été bluffé
    Son sélecteur de thèmes intégré est très pratique quand on travaille sur plusieurs machines
    Globalement, il semble être une meilleure alternative qu’Alacritty. Les développeurs ont vraiment fait un excellent travail

    • Mon seul regret avec Ghostty, c’est qu’il n’a pas encore de recherche dans le scrollback
      On peut bricoler quelque chose avec tmux, mais ce n’est pas exactement pareil
    • Un ticket pour la prise en charge des ligatures de police est ouvert dans Alacritty depuis 2017, mais cela n’a toujours pas été implémenté
      Il ne manquerait plus que la prise en charge de Windows dans Ghostty pour que ce soit parfait
    • Je pensais qu’un sélecteur de thèmes intégré allait de soi, mais apparemment non
  • Ce serait bien qu’un terminal puisse interroger la prise en charge d’une liste de caractères par la police
    Ainsi, lorsqu’un programme TUI utilise des caractères Unicode récents ou des caractères à usage privé (par exemple les icônes powerline ou font-awesome), il pourrait afficher automatiquement des caractères de remplacement s’ils ne sont pas pris en charge

  • Il est dommage qu’on parle si peu de Windows Terminal
    L’écosystème Linux est certes plus riche, mais aujourd’hui WT se situe bien au-dessus de beaucoup de terminaux Linux
    C’était inimaginable il y a dix ans

    • Dans les résultats du test, Windows Terminal (indiqué sous le nom « terminal.exe ») est arrivé en 4e place
      Au passage, je revois parfois cette vidéo, que j’aime bien à cause d’un easter egg cachant les noms des développeurs
    • C’est ce terminal qui me manque le plus depuis que j’ai quitté Windows
      Les onglets, les thèmes et le renommage des fenêtres sont excellents, et permettent de voir d’un coup d’œil à quoi sert chaque fenêtre
    • C’est aussi mon terminal préféré. J’utilise actuellement Ghostty sur macOS, mais il n’atteint pas le niveau de WT
  • Le terminal Foot est lui aussi excellent
    Il est réservé à Wayland, mais il est léger et se lance rapidement. Il consomme aussi peu de ressources

    • Moi aussi, j’utilise actuellement Foot comme terminal principal
      Ghostty était bien, mais pour ouvrir un simple terminal vide, l’écart de consommation mémoire dépasse les x10
  • Le terminal par défaut de macOS est arrivé 29e dans ce classement

    • J’utilise Terminal.app de macOS toute la journée, sans jamais me dire qu’il me faut « un meilleur terminal »
    • En réalité, Apple ne l’a presque pas mis à jour depuis qu’il a été hérité de NeXT à la fin des années 1990
      Cela dit, les versions récentes (macOS 26) prennent en charge Powerline et la couleur 24 bits
    • Pour référence, le terminal par défaut de Windows était 4e
    • J’ai l’impression que le classement a pris en compte des éléments annexes que je ne voulais pas y voir