¿Es posible desactivar el ajuste automático de colores de Terminal en Lion?

35

Si bien es genial que Terminal ahora tenga soporte incorporado para cambiar los colores ANSI, me resulta molesto que ajuste automáticamente los colores para mejorar el contraste, lo que significa que los colores que elijo a menudo terminan borrados o apagados de alguna otra manera . Aquí hay una captura de pantalla que explica el problema:

captura de pantalla de la configuración de color de OS X Terminal.app

Esto me molesta porque me gusta usar el mismo esquema de color en Terminal y MacVim, y con este manejo de colores por Terminal, no coinciden con los de MacVim.

¿Alguien sabe de una solución a esto? ¡Gracias!

Johan Sahlén
fuente
1
Buena pregunta - ajustes parecen también ser hecha por la transparencia de la ventana, no importa la representación de subpíxeles ...
Kopischke
@kopischke, el ajuste de contraste mínimo no tiene en cuenta la opacidad del color de fondo, si eso es lo que quiere decir.
Chris Page
Sería útil publicar una captura de pantalla que muestre los colores esperados sobre un fondo negro. Dejando a un lado los números, realmente no puedo ver una diferencia entre las muestras de color en la ventana de preferencias y los colores de texto en el terminal en su captura de pantalla, por lo que es difícil saber cuán significativa es la diferencia.
Chris Page
Ahora sé por qué desprecio OS X. Perdí más de 6 horas tratando de descubrir por qué un esquema de color que diseñé en Linux fue destrozado en la Mac de mi amigo: sospeché problemas con la conversión del espacio de color (sRGB vs Apple RGB), pero Nunca adivinaría que fue culpa del terminal ... Gracias por confirmar mi diagnóstico.
Jan Warchoł
Fuera de tema, pero iTerm2 le permite tener una campana visual impactante. Prefs> Avanzado> La campana visual muestra toda la pantalla, no solo un icono de campana.
user2551

Respuestas:

23

Aquí está el truco que necesita saber: los valores establecidos a través de RGB se alteran, los establecidos a través de HSB no.

Tuve un problema similar al usar el (excelente) esquema de color Solarized : MacVim tenía un color de fondo más oscuro (y correcto) que Terminal, a pesar de que estaba configurando todos los valores RGB correctos según la especificación Solarized. Mira aquí:

Básicamente lo que necesita saber cuáles son sus valores de color supone que para cada una de la terminal ANSI, de texto y de fondo (tenga en cuenta que éste es en la pestaña de ventana) y luego los colores establecidos a través del selector HSB en lugar de RGB. Ver este ejemplo:

Por alguna razón (sospecho que hay algún tipo de perfil, o tal vez un ajuste de contraste como sugieres), el color RGB que ingresas no es el que obtienes. También notará que una vez que haya configurado los valores a través de HSB, cambiar al selector RGB mostrará opciones diferentes de lo que esperaría. Todas las conversiones de valor solarizado están de acuerdo con Photoshop; parece ser algo que el selector de color de Apple está haciendo por ti.

Ryan Dlugosz
fuente
99
Esta es una respuesta increíblemente buena.
Jason Salaz
Parece que RGB no está destrozado como tal, solo modificado por la configuración de opacidad de los recolectores según la respuesta de @eirnym: la combinación de los 2 no solo lo explica, sino que lo resuelve de 2 maneras. ¡Excelente!
estuffe
2
No lloverá en el desfile, pero no puedo confirmar que esto solucione el problema: Terminal.app sigue modificando los valores que ingresé en el espacio de color HSB, incluso al establecer el fondo en los valores correctos (incluida la opacidad 100% y el desenfoque 0%) primero. Los valores brillantes parecen ser menos propensos a esto, los no brillantes lo son más. Tal vez el selector de color en Terminal.app tiene muchos errores, tal vez trata de ser "inteligente" con respecto al contraste y la gama de colores (no pondría ni Apple). Sea como sea, la solución anterior no funciona en mi sistema.
kopischke
... investigando un poco más, el problema parece estar enraizado en el mapeo de los colores solarizados desde el dispositivo independiente (espacio de color LAB / HSB) hasta el espacio de color dependiente del dispositivo (RGB). Se pueden lograr resultados consistentes al seleccionar el espacio de color HSB, como se muestra arriba, pero solo cuando también se asigna expresamente al dispositivo RGB (en el menú desplegable detrás de la pequeña flecha en el pequeño cuadrado de color a la izquierda del menú desplegable de espacio de color). Las diferencias en los valores RGB a las tablas de colores Solarized se explican por el hecho de que los mapas Solarized a sRGB, mientras que el selector de color siempre se asigna implícitamente al dispositivo RGB.
kopischke
... lo que dice que el selector de color OS X ha sido diseñado para personas que realmente saben de qué se trata este espacio de color (es decir, diseñadores gráficos), no nosotros, los gruñidos de Terminal :). [sí, OT, lo sé]
kopischke
10

elegir 'Dispositivo RGB' en el menú desplegable de muestras del Selector de color de Apple

  1. Abra el selector de color.
  2. Elija la pestaña de controles deslizantes
  3. Haga clic en la muestra debajo de la lupa, a la izquierda del menú desplegable del control deslizante
  4. Escoger Device RGB

Ahora los colores especificados por el valor hexadecimal no estarán sujetos a la conversión del espacio de color.

En Sierra, el selector de espacio de color ha cambiado al ícono de ajustes: Selector de espacio de color Sierra

Fuente

Daniel Holz
fuente
2
Genial, ¡gracias por esto! Para todas las destrezas de diseño de Apple, no es totalmente obvio que al hacer clic en esto se revele un menú.
Ryan Dlugosz
Nota: si esta solución de usar colores con diferentes espacios de color funciona, es probable que dependa de un error en el código de manejo del color, que se supone que funciona con cualquier color, y puede dejar de funcionar en el futuro cuando se solucione ese error.
Chris Page
1
Este truco funcionó para mí; el truco de HSB no lo hizo.
Jay
4

Los perfiles de color son definitivamente importantes, pero hay otro problema que acecha aquí: Terminal.app ilumina automáticamente cualquier color cuando se muestra sobre el fondo predeterminado. Aquí, por ejemplo, están los colores emitidos por Terminal.app ejecutando el tema de color Solarized , medido con DigitalColor Meter en modo sRGB, y comparado con los valores canónicos de sRGB Solarized.

Cuando se presenta sobre un fondo negro (o cualquier otro color), Terminal.app produce aproximadamente los colores correctos; sin embargo, en el fondo predeterminado, todos los colores excepto el texto en negrita predeterminado y predeterminado son sustancialmente demasiado brillantes.

una prueba de color en Terminal.app.  Los colores son los esperados cuando se presentan sobre fondos de color, pero se iluminan cuando se presentan sobre el fondo predeterminado.

April Arcus
fuente
Votaron en contra porque esta no es una respuesta. Parece ser un comentario sobre la pregunta.
Chris Page
2
¿Cómo generaste esa tabla de colores? Se ve muy práctico.
Luke Davis
2

Abra la configuración de la ventana para su tema, cambie el color de fondo, configure el desenfoque en 0% y la opacidad en 100%. Después de esto, sus colores serán los mismos que desee. También debe verificar cada color que elija para el texto de estos parámetros.

ingrese la descripción de la imagen aquí

Eir Nym
fuente
Se votó negativamente porque esto no se aplica a la pregunta, que trata sobre el comportamiento de contraste mínimo de Terminal y no se ve afectada por la opacidad de fondo.
Chris Page
2

En resumen: no, no hay medios compatibles para desactivar esto.

El terminal aplica automáticamente un contraste mínimo al mostrar un color ANSI (o tabla extendida de 256 colores) en el color de fondo del terminal, o al mostrar el color de primer plano / texto del terminal en un color de fondo ANSI.

Esto está destinado a ser una conveniencia, para que uno pueda establecer un color de fondo o primer plano y hacer que contrasten con los colores ANSI sin tener que ajustar todos los colores ANSI. Esto fue especialmente importante en versiones anteriores de Terminal, que carecían de soporte de preferencias para personalizar los colores ANSI.

Las versiones anteriores de Terminal aplicaban el contraste mínimo para todas las combinaciones de colores, pero eso significaba que, por ejemplo, el texto ANSI rojo sobre rojo podría ser legible, pero algunos programas muestran texto intencionalmente con el mismo color de primer plano y fondo para ocultarlo. (por ejemplo, para mostrar sugerencias de juegos o frases de broma). Debido a eso, las versiones más recientes de Terminal no aplican el contraste mínimo cuando se muestra un color ANSI sobre otro.

Ahora, en lugar de solo abordar el caso del mismo color, Terminal evita aplicar el contraste mínimo para todas las combinaciones de colores ANSI, porque se supone que si el usuario personaliza cualquier color ANSI, los personalizará para contrastar entre sí según lo desee . También se supone que esos usuarios ajustarán o tendrán en cuenta el fondo del terminal y los colores de primer plano para adaptarse a su esquema de color deseado.

Si la solución de usar colores con diferentes espacios de color, sugeridos en otras respuestas, funciona, es probable que dependa de un error en el código de manejo del color, que se supone que funciona con cualquier color, y puede dejar de funcionar en el futuro cuando ese error se corrige.

Si es importante para usted deshabilitar o ajustar explícitamente el comportamiento de contraste mínimo, le recomiendo avisar a Apple presentando un informe en https://developer.apple.com/bug-reporting/ utilizando cualquier ID de Apple.

Chris Page
fuente