Carregando publicação…
Carregando publicação…
Após 7 meses de desenvolvimento e 2.889 commits, o emulador de terminal criado por Mitchell Hashimoto reduz o consumo de RAM em até 90%, multiplica o throughput de texto em 5,7x e adota GTK 4.18 e libadwaita 1.7.
Sete meses após o ciclo da versão 1.3, a equipe do Ghostty — o emulador de terminal acelerado por GPU idealizado por Mitchell Hashimoto (cofundador da HashiCorp) e mantido como projeto sem fins lucrativos — publicou oficialmente o Ghostty 1.4.0. O lançamento consolida 2.889 commits de 172 contribuidores e traz uma das maiores reengenharias internas da história do projeto, conforme destacado também pela cobertura do It's FOSS.
Entre os marcos técnicos estão a compressão transparente de scrollback em segundo plano (que derruba o uso de memória física entre 70% e 90%), um parser VT até 5,7 vezes mais rápido, a primeira implementação 100% completa do protocolo gráfico do Kitty fora do próprio Kitty e uma nova pipeline de renderização OpenGL sobre EGL + DMABUF no Linux. Em contrapartida, a exigência de GTK 4.18 e libadwaita 1.7 encerra o suporte a compilações nativas no Ubuntu 24.04 LTS.
Para usuários de Linux e FreeBSD, a mudança arquitetural mais visível do Ghostty 1.4 está na camada gráfica GTK. O aplicativo abandonou o widget GtkGLArea tradicional em favor de uma pipeline dedicada:
Na prática, isso resolve de vez a regressão histórica (#1938) em que textos e caracteres de desenho de caixa (box-drawing) ficavam borrados ao usar escalas fracionárias como 125% ou 150% no Wayland.
Além do novo renderizador, o aplicativo GTK recebeu recursos aguardados há meses:
Split Drag and Drop): Agora é possível clicar na alça superior de qualquer painel dividido e soltá-lo sobre outro painel — inclusive em outra aba ou janela — movendo instantaneamente o buffer, o diretório atual e os processos em execução (controlado pela opção drag-handle = auto | always | never).vicinae-hotkey-v1 em compositores como Hyprland 0.56+ e via XDG Desktop Portal nos demais, acompanhada da nova ação de CLI ghostty +toggle-quick-terminal para gerenciadores de janelas sem suporte a atalhos globais.Terminais abertos por dias com logs extensos de compilação ou sessões de agentes costumam acumular centenas de megabytes de memória residente (RSS). No Ghostty 1.4, páginas de scrollback que não estão visíveis na tela passam a ser comprimidas de forma transparente enquanto o terminal está ocioso, sendo descomprimidas sob demanda quando o usuário rola a página ou faz uma busca.
Os ganhos medidos pela equipe incluem:
scrollback-limit subiu de 10 MB para 50 MB por terminal — e um buffer cheio de 50 MB hoje consome menos RAM física do que 10 MB consumiam no Ghostty 1.3;Na frente de desempenho bruto, a equipe identificou um gargalo curioso no kernel do macOS que beneficiou toda a arquitetura multi-thread do Ghostty: o kernel limita cada leitura (read()) de um descritor pty a cerca de 1 KiB, independentemente do tamanho do buffer alocado. Nas versões anteriores, o Ghostty processava cada leitura assim que ela chegava, bloqueando o programa emissor a cada kilobyte.
No Ghostty 1.4, uma thread drena o pty continuamente enquanto outra thread realiza o parsing VT em paralelo, elevando o throughput de I/O de ponta a ponta entre 25% e 55%.
Combinado a otimizações pesadas de SIMD no parser de sequências de escape:
| Operação / Benchmark | Ghostty 1.3.x | Ghostty 1.4.0 | Ganho |
|---|---|---|---|
| Parser VT (texto ASCII puro) | 128 MB/s | 725 MB/s | 5,7x mais rápido |
| Parser VT (texto CJK / Unicode) | Base | 3,4x | +240% |
cat de arquivo de texto de 150 MB | 1,50 s | 566 ms | 2,65x mais rápido |
| Redimensionamento de janela (10k linhas) | Base | 6x mais rápido | Contenção de lock 2,7x a 11x menor |
| Parsing de imagens Kitty Graphics (64 MiB) | Base (byte a byte) | Parsing em lote SIMD | 16x mais rápido |
| Payloads de área de transferência OSC 52 | Base | 30x mais rápido | — |
ghostty +sshO Ghostty 1.4 (e a biblioteca em C libghostty-vt, já adotada por diversos outros emuladores de terminal) tornou-se o primeiro terminal fora do próprio Kitty a implementar 100% da especificação publicada do Kitty Graphics Protocol:
kitten icat agora exibem GIFs animados nativamente (pausando automaticamente quando a aba está oculta) e permitem ancorar imagens filhas à posição de imagens mães;OSC 5522): Enquanto o clássico OSC 52 suporta apenas texto puro, o protocolo OSC 5522 permite que aplicações rodando dentro do terminal leiam e escrevam múltiplos formatos MIME na área de transferência — como imagens PNG ou HTML — com diálogo de confirmação visual mostrando prévia da imagem e limite configurável (clipboard-write-limit-bytes, padrão de 64 MiB);ghostty +ssh: Substitui a lógica duplicada nos scripts de shell por um comando nativo que injeta automaticamente o terminfo (xterm-ghostty) no servidor remoto, encaminha variáveis COLORTERM e TERM_PROGRAM sem sobrescrever diretivas SetEnv do ~/.ssh/config, faz fallback limpo para xterm-256color caso tic não exista no host e mantém cache separado por endereço e porta (ghostty +ssh-cache --prune=30d).Seguindo a política oficial de dependências do projeto para Linux, o Ghostty 1.4 elevou os requisitos mínimos de compilação e execução nativa do GTK:
Como o Ubuntu 24.04 LTS (Noble Numbat) foi congelado com bibliotecas da geração GNOME 46 (GTK 4.14 / libadwaita 1.5), binários nativos .deb do Ghostty 1.4 encerram a execução na inicialização ao detectar bibliotecas antigas. Usuários do Ubuntu 24.04 têm três caminhos recomendados pelos mantenedores:
A atualização também corrige 10 avisos de segurança (GHSAs) auditados pela equipe, incluindo higienização de quebras de linha \r na proteção de colagem (GHSA-4hwh-wx3w-3fqg), limites contra leitura/exclusão arbitrária de arquivos em comandos maliciosos do protocolo gráfico Kitty (GHSA-mhff-mv4q-fp63) e proteção contra injeção de sequências de escape no prompt ao entrar (cd) em diretórios com nomes forjados (GHSA-2r63-vmw6-3m3c).