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=truecolor junto com emacs -nw já 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 de screen/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/rxvt e “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/screen e 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 em tmux mais 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.