I starten av 2023 sluttet en av HashiCorp-grunnleggerne, Mitchell Hashimoto, i selskapet som kanskje er mest kjent for infrastructure-as-code-plattformen Terraform.
Etter at Hashimoto sluttet har han jobbet med det som opprinnelig bare var et sideprosjekt: En helt ny terminalemulator kalt Ghostty.
Ghostty har vært tilgjengelig i en lukket beta en god stund, og det har vært en masse hype rundt prosjektet – og en masse skryt fra de som har fått prøve den.
check out ghostty.org I've been using for a while - it's great! ✨ ... and it's just been open-sourced on github.com/ghostty-org/...
— daniel roe 🇺🇦 (@danielroe.dev) December 26, 2024 at 10:09 PM
[image or embed]
Og 2. juledag ble endelig Ghostty 1.0 lansert til macOS og Linux, og kan installeres av alle som vil prøve den. En Windows-versjon kommer senere.
– Hvis du fortalte meg for to år siden at jeg skulle lansere en terminalemulator, ville jeg ikke ha trodd deg, skriver Hashimoto i et blogginnlegg.
«Jeg begynte prosjektet i 2022 bare for å leke meg med Zig.»
Hvorfor i alle dager?
Mange lurer sikkert på hva som er poenget med å lansere en ny terminal i 2024.
Hashimoto skriver da også at selv om han alltid har vært en fan av terminalen og hele karrieren hans har handlet om å lage "terminal-first"-programvare, så tenkte han også at terminalen var et "problem som er løst"?
– Jeg begynte prosjektet i 2022 bare for å leke meg med Zig, gjøre litt grafikkprogrammering, og øke forståelsen min av terminaler. Jeg hadde aldri planer om å lansere den. Jeg trodde ikke det kunne være noe innovasjon her, skriver han.
Men etter hvert som han jobbet med Ghostty fant han ut at mange av de andre terminalene hadde begrensninger eller manglet funksjonalitet han ønsket seg.
Dermed ble Ghostty født – og nå altså lansert i 1.0-versjon som åpen kildekode med en MIT-lisens.
Dette kan den gjøre
Kjernen i Ghostty er som nevnt laget i programmeringsspråket Zig, med plattformspesifikk kode for GUI-ene. Det har gjort det mulig å dele 90 % av koden mellom de ulike plattformene.
Under 1% velger Zig: «Ikke lett å like Rust!»
Mens kjernen er skrevet i Zig, er GUI-et i macOS laget i Swift med AppKit og SwiftUI. For Linux-versjonen brukes Zig også til GUI-et, med GTK4 C API-et.
Dette for at Ghostty skal se ut og oppføre seg som en "native" applikasjon. Ghostty bruker for eksempel native UI-komponenter for faner, feilmeldinger, og så videre.
Dette er noe av det den støtter:
- Enkel å konfigurere
- GPU-aksellerert rendring
- Hundrevis av temaer som kan velges med én linje i konfigurasjonsfilen
- Fonter med ligaturer
- Grapheme-clustering, som betyr at avanserte emojier som viser hudfarge, flagg, etc. rendres riktig
- Kitty-grafikkprotokoll. Gjør det mulig å rendre bilder direkte i terminalen. Du kan til og med spille Doom i terminalen, takket være Kitty-støtten.
Ta en kikk på denne videoen med gjennomgang av Ghostty fra en av dem som fikk teste ut betaversjonen av Ghostty før den ble lansert: