- Emulador de terminal multiplataforma rápido e repleto de recursos. Oferece UI nativa em macOS/Linux e usa aceleração por GPU
- Fornece atalhos de teclado flexíveis, vários temas de cores e inúmeras opções de configuração
Principais recursos
1. Binário nativo
- Funciona como aplicativo nativo no macOS e no Linux
- macOS: a GUI foi escrita em Swift e usa AppKit e SwiftUI
- Linux: a GUI foi escrita em Zig e usa a API C do GTK4
- Implementa recursos como abas, painéis divididos e mensagens de erro usando componentes de UI específicos de cada plataforma
- Suporta atalhos padrão de teclado e mouse de acordo com as convenções de cada plataforma
- Integra recursos exclusivos por plataforma
- macOS: Quick Look, Force Touch, API de entrada segura, restauração do estado das janelas após reinicialização etc.
2. Vários recursos de terminal e do aplicativo
- Recursos de terminal:
- Suporta o protocolo gráfico do Kitty, notificações de modo claro/escuro, hiperlinks etc.
- Permite aproveitar mais recursos em aplicativos de terminal como Neovim e Zellij
- Recursos do aplicativo:
- Abas nativas, painéis divididos, terminal suspenso para macOS, alternância entre modo claro/escuro etc.
3. Desempenho
- O Ghostty foi projetado com o objetivo de alcançar desempenho no mesmo nível dos emuladores de terminal mais rápidos
- Tem desempenho competitivo em vários indicadores e foi otimizado para não parecer lento
- Ex.: velocidade de inicialização, velocidade de rolagem, throughput de IO, taxa de quadros etc.
- Usuários iniciais avaliam que a melhoria de desempenho do Ghostty é perceptível no uso cotidiano
Arquitetura
- O núcleo do Ghostty é o
libghostty, uma biblioteca compatível com C-ABI multiplataforma- Fornece recursos de emulação de terminal, processamento de fontes e renderização
- Os aplicativos com GUI funcionam com base no
libghostty- App para macOS: escrito em Swift, usa AppKit e SwiftUI
- App para Linux: escrito em Zig, usa a API C do GTK4
- A separação clara entre emulação de terminal e GUI permite criar um ecossistema em que vários projetos de emuladores de terminal possam aproveitar o
libghostty - Objetivo futuro:
- Estabilizar a API do
libghosttye lançá-lo como biblioteca independente
- Estabilizar a API do
4 comentários
No meu ambiente, o
weztermapresentava travamentos durante o uso, mas quando mudei para oghosttyficou bem mais utilizável. Pode ser porque o meu MB Pro já é antigo, mas oghosttyparece muito mais fluido e leve.Estou pensando em testar, mas no Linux ele tem alguma vantagem realmente diferenciada em comparação com o Wezterm?
Assim como no Wezterm, a digitação em coreano funciona bem. Especialmente no Mac, também é legal que as fontes em coreano apareçam de forma diferente conforme a composição NFC. Parece que as atualizações do Wez estão meio estagnadas.
Comentários do Hacker News
O Ghostty é o resultado de dois anos de trabalho apaixonado, e espero que muitas pessoas o usem e sintam todo o carinho e esforço colocados nele. O Ghostty não afirma ser superior a outros terminais, já que cada um tem objetivos de design e concessões diferentes. Existem vários terminais excelentes, como Kitty, WezTerm, Foot, iTerm2 e Rio.
O Ghostty é rápido e tem ótimo desempenho, especialmente quando exibe muitas informações de depuração, sem que o terminal se torne um gargalo. Isso faz uma grande diferença em sistemas de desenvolvimento.
O Ghostty é composto por código Zig muito bem escrito, com renderização de texto precisa e todos os recursos necessários. Ele usa parte do código de
Bun.stringWidthdo Bun.Fico curioso se o Ghostty tem um conceito de Session/Workspace; parece haver coisas a aprender com a forma como o Alacritty se integra ao tmux.
O Ghostty tem um recurso oculto chamado "quake mode", que pode ser configurado com um atalho de teclado específico no macOS. Não há uma opção para definir a altura padrão da janela de "quick terminal", mas é possível ajustá-la arrastando a janela.
Depois de testar várias ferramentas de emulador de terminal, escolhi o wave terminal e compartilhei uma lista de ferramentas disponíveis para macOS e Linux. Não uso o Warp porque é um produto de VC.
Um site da comunidade que ajuda a gerar configurações do Ghostty é útil.
O Ghostty é um software open source de alta qualidade lançado recentemente, o que traz esperança para um futuro sem assinaturas. Obrigado, Mitchell.
No começo eu estava cético em relação à expressão "platform-native UI", mas achei interessante que ele use GTK no Linux e SwiftUI no macOS. Testar novos emuladores de terminal é sempre divertido. É uma pena que não ofereça suporte a fontes bitmap.
Um post de blog explicando parte da mágica do Ghostty é interessante.