Terminales: más colores, más opciones para usuarios

Fuentes: Terminals should generate the 256-color palette

Si eres usuario de la terminal, probablemente has personalizado tu esquema de colores con un tema base16. Estos temas son excelentes porque centralizan la definición de colores, facilitando su uso en diferentes programas. Sin embargo, la limitación de solo 16 colores puede ser un problema para aplicaciones que requieren una paleta más amplia. La alternativa, usar 'truecolor' (16 millones de colores), introduce complejidades: múltiples archivos de configuración, dificultad para cambiar esquemas de color y necesidad de soporte específico para el cambio entre modos claro y oscuro. Además, 'truecolor' es más lento y no es compatible con todos los terminales.

Existe una solución intermedia: la paleta de 256 colores. Ofrece más opciones que base16 pero con menos sobrecarga que 'truecolor'. El problema es que la paleta predeterminada de 256 colores suele chocar con los temas base16 y presenta problemas de legibilidad debido a contrastes inconsistentes y una interpolación incorrecta de los colores.

La solución propuesta es que los terminales generen automáticamente la paleta de 256 colores a partir de los colores definidos en el tema base16 del usuario. Esto permitiría a los programas aprovechar una gama de colores más amplia sin la complejidad de 'truecolor'. La paleta de 256 colores se estructura de la siguiente manera: los primeros 16 colores corresponden a la paleta base16, los siguientes 216 forman un 'cubo de color' (6x6x6) y los últimos 24 son una escala de grises. La clave está en generar este cubo y la escala de grises de forma consistente, utilizando el espacio de color LAB para asegurar una percepción de brillo uniforme.

La implementación de esta generación automática simplificaría el desarrollo de aplicaciones para la terminal, facilitaría el cambio de temas y mejoraría la compatibilidad. El código para generar esta paleta está disponible públicamente y es de dominio público, fomentando su adopción y modificación. En esencia, se trata de aprovechar lo mejor de ambos mundos: la simplicidad de los temas base16 y la expresividad de una paleta de colores más amplia, todo ello sin la complejidad de 'truecolor'.