18 points par GN⁺ 2024-12-27 | 4 commentaires | Partager sur WhatsApp
  • Un émulateur de terminal multiplateforme rapide et riche en fonctionnalités. Il propose une interface native sur Mac/Linux et utilise l’accélération GPU
  • Offre des raccourcis clavier flexibles, de nombreux thèmes de couleurs et une multitude d’options de configuration

Principales caractéristiques

1. Binaire natif

  • Fonctionne comme une application native sur macOS et Linux
    • macOS : l’interface graphique est écrite en Swift et utilise AppKit et SwiftUI
    • Linux : l’interface graphique est écrite en Zig et utilise l’API C de GTK4
  • Utilise des composants d’interface propres à chaque plateforme pour implémenter des fonctions comme les onglets, les volets divisés et les messages d’erreur
  • Prend en charge les raccourcis clavier et souris standard conformément aux conventions de chaque plateforme
  • Intègre des fonctionnalités spécifiques à chaque plateforme
    • macOS : Quick Look, Force Touch, API de saisie sécurisée, restauration de l’état des fenêtres au redémarrage, etc.

2. Nombreuses fonctionnalités terminal et applicatives

  • Fonctionnalités terminal :
    • Prise en charge du protocole graphique Kitty, des notifications de mode clair/sombre, des hyperliens, etc.
    • Permet de tirer parti de davantage de fonctions dans des applications de terminal comme Neovim, Zellij, etc.
  • Fonctionnalités applicatives :
    • Onglets natifs, volets divisés, terminal déroulant pour macOS, bascule mode clair/sombre, etc.

3. Performances

  • Ghostty a été conçu avec pour objectif d’atteindre un niveau de performance comparable à celui des émulateurs de terminal les plus rapides
  • Il reste compétitif sur divers indicateurs de performance et est optimisé pour ne jamais sembler lent
    • Ex. : vitesse de démarrage, vitesse de défilement, débit d’E/S, fréquence d’images, etc.
  • Les premiers utilisateurs estiment que les améliorations de performance de Ghostty sont nettement perceptibles à l’usage quotidien

Architecture

  • Le cœur de Ghostty est libghostty, une bibliothèque compatible C-ABI multiplateforme
    • Elle fournit les fonctions d’émulation de terminal, de gestion des polices et de rendu
  • Les applications GUI fonctionnent sur la base de libghostty
    • App macOS : écrite en Swift, utilise AppKit et SwiftUI
    • App Linux : écrite en Zig, utilise l’API C de GTK4
  • La séparation claire entre l’émulation de terminal et l’interface graphique permet de créer un écosystème dans lequel divers projets d’émulateurs de terminal pourront exploiter libghostty
  • Objectif futur :
    • stabiliser l’API de libghostty et la publier comme bibliothèque autonome

4 commentaires

 
ahwjdekf 2025-02-03

Avec wezterm, j’avais des ralentissements dans mon environnement pendant l’utilisation, mais en passant à Ghostty, c’est devenu tout à fait utilisable. C’est peut-être parce que mon MB Pro date un peu, mais Ghostty donne une impression bien plus fluide et légère.

 
ndrgrd 2024-12-28

J’envisage de l’essayer, mais sur Linux, a-t-il des avantages vraiment marquants par rapport à Wezterm ?

 
redreamer 2024-12-28

Comme avec Wezterm, la saisie en coréen fonctionne bien. J’aime particulièrement le fait que sur Mac, les polices coréennes s’affichent différemment selon la composition NFC. On dirait que les mises à jour de Wez sont au point mort.

 
GN⁺ 2024-12-27
Avis Hacker News
  • Ghostty est le résultat de deux années de travail passionné, et l’auteur espère que tous ceux qui l’utiliseront sentiront l’amour et les efforts qui y ont été consacrés. Ghostty ne prétend pas être supérieur aux autres terminaux, chacun ayant des objectifs de conception et des compromis différents. Il existe de nombreux excellents terminaux comme Kitty, WezTerm, Foot, iTerm2 et Rio.

  • Ghostty est rapide et très performant, en particulier lorsqu’il affiche beaucoup d’informations de débogage, sans que le terminal devienne un goulot d’étranglement. Cela fait une grande différence sur un système de développement.

  • Ghostty est composé d’un code Zig très bien écrit, avec un rendu de texte précis et toutes les fonctionnalités nécessaires. Une partie du code de Bun.stringWidth de Bun est utilisée.

  • Quelqu’un se demande si Ghostty a une notion de Session/Espace de travail, et pense qu’il y aurait peut-être des choses à apprendre de la façon dont Alacritty s’intègre à tmux.

  • Ghostty dispose d’une fonctionnalité cachée appelée « quake mode », configurable avec un raccourci clavier spécifique sur macOS. Il n’existe pas d’option pour définir la hauteur par défaut de la fenêtre de « terminal rapide », mais on peut l’ajuster en la redimensionnant à la souris.

  • Après avoir essayé plusieurs outils d’émulation de terminal, quelqu’un a choisi wave terminal et fournit une liste d’outils disponibles sur MacOS et Linux. Warp n’est pas utilisé car c’est un produit de VC.

  • Un site communautaire qui aide à générer la configuration de Ghostty est utile.

  • Ghostty est un logiciel open source de grande qualité, sorti récemment, qui redonne espoir en un avenir sans abonnement. Merci à Mitchell.

  • L’expression « platform-native UI » suscitait d’abord du scepticisme, mais le fait d’utiliser GTK sur Linux et SwiftUI sur MacOS a paru intéressant. Essayer un nouveau terminal est toujours amusant. L’absence de prise en charge des polices bitmap est regrettable.

  • Un billet de blog expliquant une partie de la magie de Ghostty est intéressant.