Eu só queria que o Emacs ficasse bonito – Usando cor de 24 bits em terminais
Os esforços para fazer o Emacs usar a cor plena de 24 bits “truecolor” dentro de emuladores de terminal expõem o quanto a complexidade histórica ainda sustenta os padrões de terminal, bancos de dados terminfo e variáveis de ambiente como `TERM` e `COLORTERM`. Os comentaristas trocam receitas práticas para fazer as cores funcionarem de forma confiável através de camadas como tmux, screen, SSH e TRAMP, e debatem se vale a pena mergulhar em códigos de escape ou simplesmente usar o Emacs gráfico ou terminais modernos com melhores padrões. O fio também destaca frustrações mais amplas com padrões legados, peculiaridades de compatibilidade entre plataformas (especialmente Terminal no macOS e Windows) e a troca entre mexer na estética do terminal e apenas usar editores mais integrados como VS Code.
Suporte a cores no terminal e configuração
- Muitos observam que o suporte a 24 bits/“truecolor” já funciona na maioria dos terminais (Linux, Windows 10+, iTerm2, Kitty, etc.) com sequências ANSI simples; muitas vezes
COLORTERM=truecolorjunto comemacs -nwjá basta. - Vários argumentam que hoje você raramente precisa mexer em terminfo; o artigo é visto como uma análise profunda impressionante, mas exagerada para configurações típicas.
- Outros relatam que
COLORTERMé inconsistente, especialmente através descreen/tmux, e mostram lógica de shell que define ou remove isso com base em$TERM. - Alguns preferem ajustar a paleta de 16 cores no próprio terminal e manter o Emacs usando nomes simbólicos de cores, para que tudo (Emacs,
ls, outros apps) pareça consistente sem depender de 24 bits.
Terminfo, TERM e dor na detecção
- Terminfo é amplamente descrito como arcano e frágil; as pessoas reclamam da manutenção conservadora e da dificuldade de adicionar capacidades modernas.
- Alguns autores de terminais simplesmente afirmam ser
xterm/rxvte “lidar com o efeito colateral” em vez de brigar com descrições do terminfo. - Outros enfatizam a importância de não despejar sequências de escape em saídas que não sejam TTY, defendendo verificações
isatty(), enquanto alguns querem o padrão oposto (sempre colorir, com flags explícitas para saída legível por máquina). Não surge consenso.
Emacs no terminal vs GUI
- Muitos argumentam que o caminho mais fácil é usar o Emacs gráfico, que tem suporte de GUI de primeira classe, fontes reais, imagens, integração com mouse e contorna completamente as limitações do terminal.
- Outros preferem fortemente o Emacs no terminal pela ubiquidade, uso via SSH, persistência de sessão com
tmux/screene atalhos idênticos localmente e remotamente. - Alguns usam o Emacs como emulador de terminal (buffers
shell/term/vterm) em vez de um app de terminal separado.
Edição remota e TRAMP
- TRAMP é frequentemente recomendado para evitar rodar o Emacs remotamente, mas vários comentaristas relatam problemas de desempenho, travamentos e dificuldade para integrar LSP/eglot ou ambientes em contêiner.
- Mitigações sugeridas incluem master control/persistência de conexões SSH, timeouts mais curtos e uso de caminhos TRAMP em
eshell/dired; ainda assim, vários acham Emacs remoto emtmuxmais confiável.
Temas, valor de 24 bits e ceticismo
- Autores de temas costumam mirar primeiro GUIs de 24 bits; mapear para paletas de 256 cores pode degradar visivelmente esquemas curados como Solarized.
- Usuários pró-truecolor dizem que paletas de 256 cores são mal projetadas e limitadas demais; céticos questionam se diferenças sutis de cor importam na prática e não gostam de terminais com “cores de palhaço”, preferindo realce mínimo ou até preto-e-branco puro.