Eu só queria deixar o Emacs bonito — usando cores de 24 bits no terminal
- A comunidade do Emacs é ativa e oferece recursos modernos de autocompletar e verificação de tipos inline por meio de LSP.
- Em ambientes gráficos, o Emacs oferece suporte automático a cores de 24 bits, mas no terminal isso não acontece.
Códigos de escape ANSI
- Os primeiros terminais de hardware ofereciam códigos de controle incompatíveis entre si, e o ANSI os padronizou.
- Com SGR (Select Graphics Rendition), é possível definir vários atributos de exibição de caracteres.
Cores de 3, 4 e 8 bits
- Quando as cores foram introduzidas, havia 8 cores básicas e, mais tarde, foram adicionadas cores brilhantes, totalizando 16 cores.
- Em 1999, Todd Larason adicionou ao xterm um patch com suporte a 256 cores.
De onde veio o suporte a cores de 24 bits?
- A forma de enviar cores de 8 bits e 24 bits para terminais compatíveis está bem documentada.
- No processo de padronização ANSI dos anos 70 e depois com o ISO 8613-6 (ITU T.416) nos anos 90, 38 e 48 foram definidos como modos estendidos de cor de primeiro plano e plano de fundo.
Terminfo
- O Terminfo fornece um banco de dados de recursos de terminais, e a variável de ambiente TERM informa aos programas qual registro terminfo usar.
xterm-256color e xterm-direct oferecem suporte a 256 cores e cores RGB, respectivamente.
Configuração de TERM: o problema do ponto e vírgula
- Como vários terminais suportam apenas a sintaxe com ponto e vírgula, é preciso verificar se o TERM está configurado corretamente.
Configuração do Emacs
- O Emacs documenta como detectar suporte a truecolor.
RGB é um recurso básico de cores do Emacs, e ele procura primeiro pelas strings setf24 e setb24.
Terminais aninhados
- Um fluxo de trabalho comum envolve o uso de vários terminais aninhados.
- Todas as camadas precisam entender cores de 24 bits e convertê-las corretamente.
Emulador de terminal gráfico
- A maioria dos terminais define TERM com um valor padrão razoável ou permite sobrescrevê-lo.
ssh
ssh transmite o valor de TERM para o host remoto.
tmux
- Dentro do
tmux, é preciso definir um TERM como tmux-direct.
Opinião do GN⁺
- O ponto mais importante deste texto é a demanda dos usuários por cores de alta qualidade mesmo em ambientes de terminal, junto com os avanços técnicos que tornam isso possível.
- O suporte a cores de 24 bits é um recurso importante que permite aos desenvolvedores oferecer uma experiência de usuário melhor, especialmente em ferramentas como editores de código, melhorando bastante o conforto visual.
- Este texto será interessante e útil para usuários de terminal e do Emacs, oferecendo informações valiosas para quem busca uma excelente experiência visual mesmo em ambientes de trabalho baseados em terminal.
1 comentários
Comentários no Hacker News
Expressa surpresa com a complexidade dos aplicativos de terminal e agradece aos desenvolvedores de aplicativos de terminal como iTerm e Kitty.
terminfocom a forma antiga de conectar via telnet a HTTP ou SMTP.Pessoalmente, acha mais fácil ajustar a paleta de 16 cores em cada aplicativo de terminal do que acertar exatamente o código de terminal do lado da aplicação.
.Xdefaultse em arquivos de tema personalizados.el.lse afins.Supõe que o autor teria tido uma experiência melhor se soubesse de
export COLORTERM=truecolor.Enfatiza que não é obrigatório usar terminal ao usar Emacs, já que é possível usar frontends "gráficos" para MacOS, Windows, X.org ou Wayland.
Aponta que a computação pode ter perdido o rumo ao manter sistemas de produção usando emuladores de terminal, editores e versões de sistemas operacionais dos anos 1970.
Brinca dizendo que quer usar Cool Retro Term para deixar o Emacs mais estiloso.
Descobre que sequências de escape ANSI padrão funcionam no Prompt de Comando do Windows 10 e que cores de 24 bits também funcionam bem.
Afirma que a melhor coisa do Emacs em comparação com vim/neovim é que o suporte a GUI é tratado como cidadão de primeira classe.
emacsclient(não sabe se funciona via TCP).Diz que provavelmente não usará esse recurso porque usa uma configuração de Emacs com o mínimo de cores, mas ainda assim achou a leitura muito agradável.
Critica como é realmente vergonhoso que os padrões estejam presos a preços altos, forçando as pessoas a seguir por esse caminho sem poder comprá-los.