18 pontos por GN⁺ 2024-12-27 | 4 comentários | Compartilhar no WhatsApp
  • 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 libghostty e lançá-lo como biblioteca independente

4 comentários

 
ahwjdekf 2025-02-03

No meu ambiente, o wezterm apresentava travamentos durante o uso, mas quando mudei para o ghostty ficou bem mais utilizável. Pode ser porque o meu MB Pro já é antigo, mas o ghostty parece muito mais fluido e leve.

 
ndrgrd 2024-12-28

Estou pensando em testar, mas no Linux ele tem alguma vantagem realmente diferenciada em comparação com o Wezterm?

 
redreamer 2024-12-28

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.

 
GN⁺ 2024-12-27
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.stringWidth do 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.