Ghostty : mon nouveau terminal sous Fedora 44

Ghostty : mon nouveau terminal sous Fedora 44

Récemment, j’ai profité de ma migration de Fedora 43 vers Fedora 44 pour faire quelques ajustements sur mon environnement de travail.

Pendant longtemps, j’ai utilisé GNOME Terminal sans vraiment me poser de questions. Puis j’ai découvert Tilix, que j’ai apprécié pour sa gestion des splits et son approche plus orientée « power user ». Le problème, c’est que le projet évolue très peu aujourd’hui et reste basé sur GTK3.

Il y a quelque temps, j’avais donc décidé de migrer vers Ptyxis, le nouveau terminal moderne de l’écosystème GNOME basé sur GTK4. L’intégration est excellente, mais il lui manque encore quelques fonctionnalités et possibilités de personnalisation qui me gênaient au quotidien.

Plus récemment, j’ai découvert Ghostty suite à l’annonce de son créateur concernant la migration du projet de GitHub vers Codeberg. Le terminal est volontairement minimaliste, très rapide et moderne. Toute la configuration passe par un simple fichier texte : ce n’est pas forcément l’approche la plus user-friendly, mais elle est finalement très efficace dès qu’on prend le temps de lire la documentation.

Pour l’installer, sous Fedora, pour le moment, il faut passer par Copr :

$ sudo dnf copr enable scottames/ghostty
$ sudo dnf install ghostty
Ghostty
Ghostty

Voici ma configuration actuelle :

language = fr

# Theme
theme = light:Nord Light,dark:Nord
background-opacity = 0.9
background-blur = true
unfocused-split-opacity = 0.2
mouse-hide-while-typing = true
 
# Font
font-family = "SauceCodePro Nerd Font Mono"
font-size = 11
font-feature = +liga

# SSH VS xterm-ghostty
shell-integration = zsh
shell-integration-features = ssh-env

Quelques explications sur les options utilisées :

language = fr

Force l’interface de Ghostty en français.

theme = light:Nord Light,dark:Nord

Utilise automatiquement le thème Nord clair ou sombre en fonction du thème GNOME actif.

background-opacity = 0.9

Ajoute une légère transparence au terminal.

background-blur = true

Active un flou sur l’arrière-plan lorsqu’une transparence est utilisée. L’effet dépend du compositeur Wayland utilisé.

unfocused-split-opacity = 0.2

Réduit l’opacité des splits inactifs afin de mieux distinguer le terminal actif.

mouse-hide-while-typing = true

Cache automatiquement le curseur de la souris pendant la frappe.

font-family = "SauceCodePro Nerd Font Mono"

Utilise SauceCodePro Nerd Font Mono, pratique pour les icônes et symboles utilisés par certains outils CLI modernes.

font-size = 11

Définit la taille de la police.

font-feature = +liga

Active les ligatures typographiques pour certains symboles (!=, =>, ==, etc.).

shell-integration = zsh

Active l’intégration native avec Zsh.

shell-integration-features = ssh-env

Transmet certaines variables d’environnement utiles lors des connexions SSH.

Le split sur Ghostty
Le split sur Ghostty

Cette configuration me permet d’obtenir un terminal sobre, moderne et bien intégré à GNOME, tout en gardant une apparence cohérente avec le thème Nord que j’utilise partout ailleurs.

Petite subtilité toutefois : au départ, j’avais configuré ceci :

shell-integration-features = ssh-env,ssh-terminfo

Le problème, c’est que Ghostty exportait alors une valeur TERM=xterm-ghostty. Certains serveurs distants ne connaissaient pas ce terminal et cela provoquait divers problèmes d’affichage ou de compatibilité avec certaines applications en console.

En retirant ssh-terminfo, Ghostty cesse de propager cette valeur distante et tout fonctionne beaucoup plus proprement sur les serveurs qui ne disposent pas des entrées terminfo adaptées.

Avatar de Guillaume Kulakowski

À propos de l’auteur

Commentaires

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.

Derniers articles sur le journal

  • SeedboxSync v4.1 : Authentification OIDC, Gravatar et refonte de l’administration
    Découvrez les nouveautés de SeedboxSync v4.1 : intégration d'un système d'authentification natif et OIDC (SSO), support de Gravatar, gestion des utilisateurs en CLI, formulaires Flask-WTForm et transition vers Peewee-Migrate.
  • De Jellystat à Jellydash : moderniser le suivi de mon serveur Jellyfin
    Pourquoi et comment j'ai remplacé Jellystat par Jellydash pour le suivi des statistiques de mon serveur Jellyfin. Retour d'expérience sur la découverte de cet outil moderne, léger et prometteur repéré dans la newsletter selfh.st.
  • SeedboxSync 4.0 : Fusion de l’IHM et du CLI
    La v4.0.0 de SeedboxSync marque un tournant majeur : fusion du CLI et du frontend en une seule application, migration de la configuration en base de données, planificateur Python natif et passage à SQLite WAL. Tour d'horizon des nouveautés et des changements d'architecture.
  • Modernisation du tooling dev sur SeedboxSync : Just, pnpm, uv & Ruff
    SeedboxSync fait peau neuve côté tooling ! Retour sur la modernisation de mon environnement de dev : abandon du bon vieux Makefile au profit de Just, transition vers pnpm pour un gain de temps spectaculaire côté frontend, et adoption de uv et Ruff pour booster l'écosystème Python. Moins de friction, plus de vitesse : découvrez le détail de cette mise à jour.

Articles à la une