Solo quería que Emacs se viera bonito – Usar color de 24 bits en terminales

Los esfuerzos por hacer que Emacs use el “truecolor” completo de 24 bits dentro de emuladores de terminal ponen de relieve cuánta complejidad histórica sigue sustentando los estándares de terminal, las bases de datos terminfo y variables de entorno como `TERM` y `COLORTERM`. Los comentaristas intercambian recetas prácticas para que los colores funcionen de forma fiable a través de capas como `tmux`, `screen`, SSH y TRAMP, y debaten si merece la pena profundizar en códigos de escape frente a simplemente usar Emacs gráfico o terminales modernos con mejores valores predeterminados. El hilo también destaca frustraciones más amplias con estándares heredados, peculiaridades de compatibilidad entre plataformas (especialmente Terminal de macOS y Windows) y el intercambio entre retocar la estética de la terminal o simplemente usar editores más integrados como VS Code.

Compatibilidad y configuración del color en terminales

  • Muchos señalan que el soporte de 24 bits/“truecolor” ya funciona en la mayoría de las terminales (Linux, Windows 10+, iTerm2, Kitty, etc.) con simples secuencias de escape ANSI; a menudo COLORTERM=truecolor junto con emacs -nw es suficiente.
  • Varios argumentan que hoy en día rara vez hace falta tocar terminfo; el artículo se ve como una inmersión profunda impresionante, pero exagerada para configuraciones típicas.
  • Otros informan que COLORTERM es inconsistente, especialmente a través de screen/tmux, y muestran lógica de shell que lo establece o lo desactiva según $TERM.
  • Algunos prefieren ajustar la paleta de 16 colores en la propia terminal y seguir usando Emacs con nombres de color simbólicos, de modo que todo (Emacs, ls, otras aplicaciones) se vea consistente sin depender de 24 bits.

Terminfo, TERM y problemas de detección

  • Terminfo es descrito ampliamente como arcano y frágil; la gente se queja del mantenimiento conservador y de la dificultad para añadir capacidades modernas.
  • Algunos autores de terminales simplemente afirman ser xterm/rxvt y “resolver las consecuencias” en lugar de pelear con las descripciones de terminfo.
  • Otros subrayan la importancia de no enviar secuencias de escape a salidas que no sean TTY, defendiendo comprobaciones isatty(), mientras que algunos prefieren el valor por defecto opuesto (siempre color, con banderas explícitas para salida legible por máquina). No surge un consenso.

Terminal frente a Emacs gráfico

  • Muchos sostienen que la ruta más fácil es usar Emacs gráfico, que tiene soporte GUI de primera clase, fuentes reales, imágenes, integración con el ratón y evita por completo las limitaciones de la terminal.
  • Otros prefieren con fuerza Emacs en terminal por su ubicuidad, el uso por SSH, la persistencia de sesión mediante tmux/screen, y los mismos atajos de teclado tanto local como remotamente.
  • Algunos usan Emacs como su emulador de terminal (buffers shell/term/vterm) en lugar de una aplicación de terminal separada.

Edición remota y TRAMP

  • TRAMP se recomienda con frecuencia para evitar ejecutar Emacs remotamente, pero varios comentaristas informan problemas de rendimiento, bloqueos y dificultades para integrar LSP/eglot o entornos en contenedores.
  • Entre las mitigaciones sugeridas están SSH control master/conexiones persistentes, tiempos de espera más cortos y el uso de rutas TRAMP en eshell/dired; aun así, varios encuentran más fiable ejecutar Emacs remoto dentro de tmux.

Temas, valor de 24 bits y escepticismo

  • Los autores de temas suelen apuntar primero a GUI de 24 bits; mapear a paletas de 256 colores puede degradar visiblemente esquemas cuidadosamente diseñados como Solarized.
  • Los usuarios a favor de truecolor dicen que las paletas de 256 colores están mal diseñadas y son demasiado limitadas; los escépticos cuestionan si las diferencias de color tan finas importan en la práctica y no les gustan las terminales de “color de payaso”, prefiriendo un resaltado mínimo o incluso blanco y negro puro.