Terminal.app cambiando mágicamente los valores de color [duplicado]

Terminal.app hace un cambio de color muy extraño que hace que sea imposible hacer coincidir los colores de manera consistente, y me pregunto si hay alguna forma de desactivarlo o controlarlo mejor. La "magia" es lo que muestra púrpura en lugar de azul, por ejemplo, incluso cuando el color ansi para el tema se establece en azul claro.

Este comportamiento parece estar relacionado con la configuración del color de fondo... la configuración de cualquier color de fondo (con la función terminfo setab) deshabilita el cambio de color "mágico", mientras que un restablecimiento de atributo (sgr0) lo vuelve a habilitar.

Esta es mi prueba (establece el primer plano, imprime algunos bloques llenos de Unicode, establece explícitamente el fondo en negro, imprime de nuevo):

b=$'\xE2\x96\x88' && bs=$b$b$b$b$b$b$b$b &&
  tput setaf 4 && echo -n "$bs" &&
  tput setab 0 && echo "$bs"

Con el tema predeterminado, imprime morado (mágico) y luego azul (ansi). Entonces, mi primer intento fue probar el color púrpura y actualizar las preferencias para usar ese púrpura en lugar de azul... todo debería ser consistente ahora, ¿verdad?

En la siguiente ejecución, obtengo un púrpura ligeramente más brillante y luego el púrpura que ingresé. Al principio pensé que simplemente había puesto mal el color, pero a medida que seguí iluminando la configuración de color para que coincidiera con lo que mostraba Terminal.app sin el fondo establecido explícitamente, Terminal.app también se volvió más brillante, todo el camino hasta era blanco!

A partir de esto, me parece que Terminal.app está escalando automáticamente los colores que se muestran en el color de fondo predeterminado por algún factor, pero deja los colores en cualquier fondo establecido explícitamente solo; lo que hace imposible que los dos colores coincidan (excepto el blanco y el negro).

FWIW, el fondo de la ventana está configurado en negro completamente opaco.

¿Hay alguna manera de deshacerse de este comportamiento? Estoy pensando que esto es quizás digno de un informe de errores, pero tengo curiosidad por saber si hay algo que me estoy perdiendo.

Este es un duplicado de apple.stackexchange.com/q/29487/6883 . Vea mi respuesta allí: apple.stackexchange.com/a/216159/6883 . En resumen: no, no puede deshabilitar este comportamiento. Si poder controlar este comportamiento es importante para usted, le recomiendo informar a Apple mediante la presentación de un informe en developer.apple.com/bug-reporting utilizando cualquier ID de Apple.

Respuestas (1)

Para obtener el esquema de color correcto, el fondo debe declararse explícitamente dentro de LSCOLOR (gnu) o LS_COLOR (linux) y coincidir con el que no es ANSI establecido en su Terminal.app (es decir, Ventana> Fondo> Color y efectos).

Entonces, algo como LSCOLORS=eadafafacafafacacaeaeafuncionaría mientras que algo como LSCOLORS=exdxfxfxcxfxfxcxcxexexno lo haría.