Solo quería que Emacs se viera bonito — usar color de 24 bits en la terminal
- La comunidad de Emacs está activa y ofrece autocompletado moderno y verificación de tipos en línea mediante LSP.
- En entornos gráficos, Emacs soporta automáticamente color de 24 bits, pero en la terminal no es así.
Códigos de escape ANSI
- Las primeras terminales de hardware ofrecían códigos de control incompatibles entre sí, y ANSI los estandarizó.
- Mediante SGR (Select Graphics Rendition) se pueden configurar varios atributos de visualización de caracteres.
Colores de 3, 4 y 8 bits
- Cuando se introdujo el color, había 8 colores básicos, y más tarde se añadieron colores brillantes para llegar a un total de 16.
- En 1999, Todd Larason añadió a xterm un parche con soporte para 256 colores.
¿De dónde viene el soporte para color de 24 bits?
- La forma de enviar colores de 8 bits y 24 bits a terminales compatibles está bien documentada.
- A través del proceso de estandarización ANSI en los años 70 y de ISO 8613-6 (ITU T.416) en los 90, 38 y 48 quedaron definidos como modos extendidos de color de primer plano y de fondo.
Terminfo
- Terminfo proporciona una base de datos de capacidades de terminal, y mediante la variable de entorno TERM le indica a los programas qué registro de terminfo usar.
xterm-256color y xterm-direct soportan, respectivamente, 256 colores y colores RGB.
Configuración de TERM: el problema del punto y coma
- Como muchas terminales solo soportan la sintaxis con punto y coma, hay que comprobar que TERM esté configurado correctamente.
Configuración de Emacs
- Emacs documenta cómo detectar el soporte de truecolor.
RGB es la capacidad de color predeterminada de Emacs, y primero busca las cadenas setf24 y setb24.
Terminales anidadas
- Un flujo de trabajo común usa varias terminales anidadas.
- Todas las capas deben entender el color de 24 bits y convertirlo correctamente.
Emulador de terminal gráfica
- La mayoría de las terminales configuran TERM con un valor predeterminado razonable o permiten sobrescribirlo.
ssh
ssh transmite el valor de TERM al host remoto.
tmux
- Dentro de
tmux, hay que configurar un TERM como tmux-direct.
Opinión de GN⁺
- Lo más importante de este artículo es la demanda de los usuarios por usar colores de alta calidad incluso en entornos de terminal, y los avances técnicos que lo hacen posible.
- El soporte para color de 24 bits es una función importante que permite a los desarrolladores ofrecer una mejor experiencia de usuario, especialmente en herramientas como editores de código, donde mejora mucho la comodidad visual.
- Este artículo será interesante y útil para usuarios de terminal y de Emacs, y ofrece información valiosa para quienes buscan una excelente experiencia visual incluso en entornos de trabajo basados en terminal.
1 comentarios
Opiniones en Hacker News
Expresa sorpresa por la complejidad de las aplicaciones de terminal y agradece a los desarrolladores de aplicaciones de terminal como iTerm y Kitty.
terminfocon la forma antigua de conectarse por HTTP o SMTP mediante telnet.Personalmente, considera que ajustar la paleta de 16 colores en cada app de terminal es más fácil que hacer coincidir con precisión el código de terminal del lado de la aplicación.
.Xdefaultsy en archivos de tema personalizados.el.ls, entre otros.Supone que el autor habría tenido una mejor experiencia si hubiera conocido
export COLORTERM=truecolor.Destaca que al usar Emacs no es obligatorio usar una terminal, ya que se puede utilizar un frontend "gráfico" para macOS, Windows, X.org o Wayland.
Señala que la computación pudo haber perdido el rumbo al mantener sistemas de producción que usan emuladores de terminal, editores y versiones de sistemas operativos de los años 70.
Bromea con que quiere usar Cool Retro Term para que Emacs se vea más genial.
Descubre que en el símbolo del sistema de Windows 10 funcionan las secuencias de escape ANSI estándar y que el color de 24 bits también funciona bien.
Menciona que una de las mejores cosas de Emacs, frente a vim/neovim, es que el soporte de GUI se trata como un ciudadano de primera clase.
Dice que no usará esta función porque utiliza una configuración de Emacs con colores mínimos, pero aun así le resultó muy agradable de leer.
Critica que es realmente una vergüenza que los estándares estén atados a precios tan altos, obligando a la gente a llegar a estos extremos sin poder comprarlos.