Algum colega já perguntou qual terminal você usa? Se já perguntaram, provavelmente estavam se referindo a um emulador de terminal – mas o que diabos é isso? Qual é a diferença entre terminais e um emulador de terminal? Neste post do blog, você vai aprender a diferença entre os dois, e vamos dar uma olhada nos emuladores de terminal Alacritty, Kitty e Ghostty e por que os desenvolvedores os acham úteis.
Terminais x Emuladores de Terminal
Todos os terminais de computador modernos são emuladores de terminal, mas nem todos os terminais eram emuladores. Originalmente, um terminal de computador era na verdade hardware, um exemplo de terminal daquela época é o VT100, construído pela Digital Equipment Corporation(DEC):
Esses dispositivos enviavam comandos através de conexões seriais e exibiam saídas como texto, mas não executavam programas localmente, eram dispositivos simples de entrada/saída. Eram máquinas “Teletype”, mas a palavra que ficou foi terminal.
Conforme a computação evoluiu e os sistemas de time-sharing se tornaram comuns, os terminais se transformaram em programas de software que emulavam aqueles dispositivos de hardware antigos – daí os emuladores de terminal!
O termo tty vem de “Teletype”, e ainda é usado até hoje em máquinas modernas, é por isso que emuladores de terminal populares como AlacriTTY, KiTTY e GhosTTY usam tty em seus nomes!
Quando você abre um terminal, o terminal em si não é o que entende os comandos que você digita, é apenas a janela que permite digitar e ver a saída. O que realmente processa os comandos é conhecido como o shell.
Um shell neste caso é um interpretador de linha de comando, um programa que pega os comandos de texto do terminal e diz ao SO o que fazer com eles. Exemplos populares incluem:
Um shell pega um comando simples como ls -l e:
- Analisa o comando
- Encontra o programa
ls - O executa
- Captura a saída
- Imprime essa saída de volta no terminal
Agora a sessão de shell em si, para simplificar, é uma instância interativa ativa de um shell ao qual você está conectado. Então se você usa um shell Bash, você está conectado a uma sessão de shell bash. Simples, não é?
Emuladores de Terminal Modernos
Então por que você deveria se importar com qual emulador de terminal está usando? Há mesmo benefícios substanciais em trocar daquele que você está usando atualmente?
A verdade é que emuladores de terminal variam muito por baixo dos panos, especialmente quando se trata de performance, renderização, configurabilidade e recursos modernos. Se você passa horas do seu dia usando o terminal como desenvolvedor, sysadmin ou para DevOps, por exemplo, as diferenças podem realmente impactar seu fluxo de trabalho.
Agora que cobrimos o básico, vamos ver por que os emuladores de terminal evoluíram tanto e por que os desenvolvedores são obcecados com qual usar!
O que Torna os Emuladores de Terminal Diferentes
Performance
Problemas modernos requerem soluções modernas, e máquinas modernas tendem a usar placas gráficas, e é aqui que os emuladores de terminal se voltam para aumentar sua performance.
Em vez de deixar seu processador renderizar a saída do seu terminal, eles descarregam essa renderização para sua GPU, tornando-os acelerados por GPU!
Emuladores de terminal “tradicionais” como GNOME Terminal, Konsole e xterm dependem da CPU e do toolkit de janelas do sistema, como GTK e Qt, para desenhar texto na tela.
Isso envolve renderizar cada glifo (caractere) e atualizar partes da janela quando a saída muda. A CPU faz a maior parte do trabalho pesado, frequentemente resultando em algum comportamento lento.
Emuladores de terminal acelerados por GPU, no entanto, usam APIs gráficas modernas como OpenGL, Metal ou Vulkan para lidar com renderização de texto e composição na GPU.
O terminal ainda analisa o texto e tal usando a CPU, mas o desenho real, a parte gráfica das coisas como renderizar fontes, caracteres e cores acontece na GPU, o que faz sentido, não é?!
Qualidade de Renderização
Cada emulador de terminal lida com coisas como fontes, ligaduras e cores de forma diferente. Emuladores de terminal modernos como Kitty e Ghostty suportam True Color(24 bits por pixel – bpp), isso permite um total de 16.777.216 combinações de cores possíveis!
Emuladores de terminal mais antigos eram carentes nesta área. Se você assistiu filmes mais antigos que mostravam o terminal de um hacker ou mexeu com computadores em um passado não tão distante, você vai lembrar que eles eram geralmente aquela combinação padrão de preto e verde.
Essa combinação de cores nostálgica não foi escolhida à toa, era devido às limitações de hardware da época! Isso não é mais um problema com emuladores de terminal modernos, mas muitos ainda usam esse esquema de cores tradicional!
Recursos Personalizados
Alguns emuladores de terminal são leves e minimalistas, enquanto outros vêm com recursos avançados prontos para uso. Aqui estão alguns recursos úteis que emuladores de terminal modernos têm:
- Abas e divisões -> Kitty, Ghostty, GNOME Terminal
- Renderização GPU -> Alacritty, Kitty, Ghostty
- Exibição de Imagem/Gráficos -> Kitty
- Rolagem sincronizada e controle remoto -> Kitty, Ghostty
Alguns emuladores de terminal abrem instantaneamente, enquanto os tradicionais como Konsole e GNOME Terminal demoram um pouco mais para iniciar, alguns desenvolvedores são loucos pela velocidade com que conseguem abrir suas instâncias de terminal e alternar em seus fluxos de trabalho.
Configuração e Personalização
Alguns emuladores de terminal podem ser configurados inteiramente através de arquivos de texto, um exemplo disso sendo a configuração YAML do Alacritty, enquanto outros fornecem alguma GUI integrada para uma experiência mais casual. Isso afeta quão facilmente você pode integrar o emulador de terminal com suas outras ferramentas de desenvolvimento. Por exemplo, se você usa um esquema de cores para seu sistema, você pode configurar seu terminal com o esquema de cores EXATO para integração perfeita!
Alacritty vs Kitty vs Ghostty – Os emuladores de terminal favoritos dos desenvolvedores
Ok…mas qual é o certo para você? Vamos comparar os “Top 3” que os desenvolvedores têm usado nos últimos anos!
Cada um deles tem uma abordagem diferente para resolver o mesmo problema: tornar seu terminal rápido, com visual incrível e melhorar sua produção!
Alacritty – O velocista sem frescuras
Se você já quis um terminal que abre instantaneamente e nunca trava, Alacritty pode ser o ideal para você!
Faça uma coisa e faça bem – desenhe texto o mais rápido possível
Escrito em Rust, é conhecido por sua filosofia performance em primeiro lugar, alacritty não é tão rico em recursos quanto os outros dois, mas sua simplicidade é mais que suficiente para a maioria das pessoas. Ele não vem com abas, divisões ou recursos de UI avançados, mas foca em fazer uma coisa melhor que seus concorrentes -> renderizar texto o mais rápida e suavemente possível.
Alacritty usa o ecossistema do Rust para manipulação eficiente de memória, e sua base de código é conhecida por ser limpa, focando a maioria das coisas na velocidade de renderização de texto e correção.
| Aceleração GPU | Tempo de Inicialização | Estilo de Config | Abas/Divisões | Renderização | Caso de uso |
|---|---|---|---|---|---|
| OpenGL | Instantâneo | YAML (alacritty.yml) | Nenhuma | Suporta ligaduras e True Color | Devs que querem um terminal leve e minimal |
Muitas pessoas combinam Alacritty com TMUX ou Zellij, multiplexadores de terminal, permitindo que múltiplas instâncias de terminal sejam executadas e compensem o recurso de aba/divisão que ele não tem, até superando terminais com aba/divisão nativos quando se trata de velocidade!
Alacritty não vem com temas integrados, mas tem um repositório dedicado com temas que a comunidade criou aqui.
De certa forma, Alacritty é considerado o padrinho dos emuladores de terminal modernos, com algumas pessoas morrendo na praia por ele quando o comparam com os próximos dois!
Kitty – A potência rica em recursos
Rico em recursos com renderização de imagem!
Escrito em C + Python, é parecido com alacritty mas com mais recursos, é assim que originalmente chamou a atenção das pessoas – mas o que manteve sua atenção foram suas configurações extensivas!
O motor de renderização principal é implementado em C, enquanto os recursos de alto nível, configuração e lógica de script são tratados em Python.
Kitty não só é acelerado por GPU, mas também otimiza o equilíbrio entre latência ao digitar para dar aquela sensação suave ao rolar pelo terminal usando instruções vetoriais de CPU para máxima performance. E melhor ainda, você pode ajustar esses recursos você mesmo com facilidade!
Kitty parece poderoso mas não inchado, abre rapidamente, torna multitarefas mais fácil com suas divisões e abas nativas, enquanto lida com cores e imagens lindamente! Você pode criar divisões horizontais, verticais ou até empilhadas usando alguns atalhos de teclado, perfeito para quando você precisa executar muitas instâncias, servidores, debuggar código e assim por diante.
Kitty vem com temas integrados mas também permite personalizar o terminal como quiser! Desde mudar cor da fonte, cores de destaque, proporções de borda e mais!
Seu arquivo de configuração é limpo, embora não seja tão fácil de ler quanto o arquivo YAML do Alacritty, mas ainda assim, para desenvolvedores, não é complicado de jeito nenhum, e sua documentação é ótima para ajudar a ajustá-lo ao seu gosto! Não é tão amigável para iniciantes quanto nosso próximo emulador de terminal, mas é o playground perfeito de um desenvolvedor devido ao número de coisas que você pode ajustar!
| Aceleração GPU | Tempo de Inicialização | Estilo de Config | Abas/Divisões | Renderização | Recursos extras | Caso de uso |
|---|---|---|---|---|---|---|
| OpenGL | Muito rápido, embora ligeiramente mais lento que Alacritty | Texto (kitty.conf) | Suporte nativo | Suporta ligaduras, True Color e emojis | Imagens inline, controle remoto, dicas de URL e copiar ao selecionar | Devs que querem recursos integrados poderosos |
Ghostty – O concorrente multiplataforma moderno
Pau para toda obra, velocidade linda
O novato no pedaço, mas já fez um nome e tanto para si mesmo entre os desenvolvedores! Construído por Mitchell Hashimoto, o criador do Vagrant, Terraform e mais como um projeto de paixão – Ghostty combina a performance do Alacritty, os recursos do Kitty e uma UX mais limpa e moderna.
É escrito em Zig, usa Metal, Vulkan ou DirectX dependendo do seu SO, executando nativamente no macOS, Linux e Windows. Ghostty usa a API gráfica nativa do seu SO para fornecer renderização GPU suave.
Ghostty também tem sua própria abordagem quando se trata de arquitetura, o núcleo do Ghostty é libghostty, uma biblioteca multiplataforma e de dependência mínima que expõe uma API C que pode ser integrada por qualquer aplicação de qualquer lugar!
Isso o torna um bloco de construção para outras plataformas, desde outras IDEs até logs de build remotos. Isso torna Ghostty incrível para desenvolvedores que se importam com consistência e possibilidades de integração, tornando-o mais que um app de UI.
Como Kitty, Ghostty vem com temas integrados, incluindo troca automática escuro/claro. Ele também fornece pequenos toques de qualidade de vida que os desenvolvedores amam como lembrar do último diretório de trabalho por aba, renderização instantânea de redimensionamento e zero lag de input enquanto comandos estão executando.
Mesmo sendo relativamente novo, Ghostty tem a comunidade open-source mais ativa apoiando-o, junto com um roadmap transparente, com Hashimoto compartilhando publicamente seu progresso.
| Aceleração GPU | Tempo de Inicialização | Estilo de Config | Abas/Divisões | Renderização | Recursos extras | Caso de uso |
|---|---|---|---|---|---|---|
| Metal/Vulkan/DirectX | Quase instantâneo | Texto (ghostty/config) | Suporte nativo | Anti-aliased, ligaduras, true color e emojis | Atalhos de janela nativos por SO, copy/paste inteligente, inicialização assíncrona, suporte nativo Wayland e macOS | Devs que querem uma experiência moderna pronta para uso em qualquer plataforma |
Agora que analisamos o que torna cada emulador de terminal especial, quero compartilhar um pouco da minha própria experiência experimentando com eles.
Experimente! Minhas experiências passadas com diferentes emuladores de terminal
A razão pela qual decidi escrever este blog em primeiro lugar é porque a quantidade pura de opções pode ser assustadora quando você é novo nisso, e estou aqui para dizer que não tem problema se você não tem certeza de qual emulador de terminal deveria experimentar.
Quando instalei uma distribuição linux pela primeira vez, escolhi Arch Linux com GNOME como ambiente de desktop porque um amigo tinha usado GNOME antes, então o nome era familiar para mim. O terminal GNOME tinha muitas opções de UI para ajustar usando as configurações de preferências do terminal ou usando Gnome Tweaks, uma ferramenta que permite mudar temas, fontes, ícones e algumas configurações de comportamento usando uma UI.
Eu queria que meu terminal “parecesse legal”, mas rapidamente descobri que o terminal GNOME, embora fornecesse uma quantidade decente de opções de configuração — também era limitado a elas. É seguro dizer que não gostei disso, então comecei a pesquisar no Google alternativas e fiquei impressionado com todos os vídeos do YouTube de pessoas fazendo rice de seus terminais de maneiras diferentes, havia até alguns terminais GNOME legais para ser honesto. Mas eu queria algo diferente.
Foi quando realmente ouvi falar de emuladores de terminal pela primeira vez, no meu tempo livre eu assistia um tutorial ou dois sobre como fazer “rice” de terminais e dei uma chance ao Kitty já que tinha aparecido mais nas minhas pesquisas. Eu podia adicionar uma leve transparência a ele, adicionar imagens de fundo para dar um pouco mais de personalidade, e assim por diante. Por um tempo fiquei com ele mas acabei quebrando meu SO em algum momento ops.
Se não conseguir da primeira vez…
Depois disso, decidi fazer dual boot do meu computador com arch linux novamente, mas desta vez usando KDE Plasma em vez de GNOME novamente. KDE vem com seu emulador de terminal nativo chamado Konsole e minha primeira impressão dele foi ótima, muito mais personalizável que o terminal GNOME. Gostei de como ele se adaptava perfeitamente a qualquer tema de ambiente geral que eu mudasse. Mas novamente, me envolvi nos vídeos de ricing e decidi tentar um emulador de terminal diferente – desta vez fui com Alacritty!
Logo de cara, notei a diferença na velocidade comparado ao Konsole e GNOME, especialmente, o suficiente para que eu realmente pensasse comigo mesmo sobre quanto tempo tinha desperdiçado no passado inicializando terminais(bem exagerado, mas na época senti assim). Também tentei usar TMUX na época para combinar com ele, foi divertido alternar entre janelas de terminal, mas infelizmente, isso não durou muito. Windows teve uma atualização de segurança naquela época que quebrou meu dual boot(esses animais!), consegui consertar depois de um tempo mas a experiência me traumatizou tanto que decidi instalar linux no meu laptop pessoal em vez de rodar um dual boot novamente.
Amava Arch mas queria algo novo, então desta vez fui com Manjaro que usa pacman e o AUR(Arch User Repository) e novamente, queria uma experiência diferente. Instalei um ISO minimal com GNOME, mas rapidamente o substituí por Hyprland — um gerenciador de janelas em mosaico. Isso dá tanto potencial para multitarefas prontas para uso e eu queria que meu terminal parecesse limpo, então fui com o que eu sabia que podia configurar para parecer incrível e instalei Kitty novamente.
Por quê?
- Rápido e bem leve
- Familiaridade, configuração fácil para combinar com meu tema, ajustar o padding do terminal e adicionar transparência
- Com suas abas e divisões, tenho ainda mais controle sobre meu ambiente, se encaixa muito bem com o gerenciamento de janelas do Hyprland
Conclusão
No fim das contas, o melhor emulador de terminal é aquele que se encaixa no seu fluxo de trabalho. Alguns desenvolvedores não se importam muito com qual emulador de terminal usam, enquanto outros simplesmente se acostumam com o que veio com seu sistema operacional décadas atrás e acabam defendendo-o como torcedores de esporte loucos em todos os cenários sociais imagináveis. Se você não sabia dos três que mencionei neste post do blog, recomendaria experimentar todos eles e então descobrir o que funciona para você!
Seja você querendo a velocidade pura do Alacritty, os recursos poderosos do Kitty ou o polimento moderno do Ghostty, todos os três representam o quão longe chegamos dos dias das máquinas Teletype verde-no-preto. E para ser honesto, um não é claramente melhor que o outro.
Seu terminal é seu espaço de trabalho, e há dezenas de alternativas populares também, explore até seu coração ficar contente antes de se decidir, torne-o seu!
Referências
- https://grokipedia.com/page/Computer_terminal
- https://alacritty.org/config-alacritty.html
- https://sw.kovidgoyal.net/kitty/
- https://ghostty.org/docs
- https://wezterm.org/index.html
We want to work with you. Check out our Services page!





