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

Si bien es genial que Terminal ahora tenga soporte integrado 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 realmente elijo a menudo terminan desteñidos 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 parte de Terminal, no coinciden con los de MacVim.

¿Alguien sabe de una solución a esto, además de cambiar a iTerm 2 (que preferiría no hacerlo? Me gusta el resto de Terminal, especialmente algunos toques de GUI como la campana visual pulsante). ¡Gracias!

Buena pregunta: parece que también se han realizado ajustes para la transparencia de la ventana, no importa la representación de subpíxeles...
@kopischke, el ajuste de contraste mínimo no tiene en cuenta la opacidad del color de fondo, si eso es lo que quieres decir.
Sería útil si publicara 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 del texto en la terminal en su captura de pantalla, por lo que es difícil saber qué tan significativa es la diferencia.
Ahora sé por qué desprecio OS X. He perdido más de 6 horas tratando de averiguar por qué un esquema de color que diseñé en Linux estaba destrozado en la Mac de mi amigo. Sospechaba problemas con la conversión del espacio de color (sRGB vs Apple RGB), pero Nunca diría que fue culpa de la terminal... Gracias por confirmar mi diagnóstico.
Fuera de tema, pero iTerm2 te permite tener una campana visual vibrante. Prefs > Advanced > Visual bell muestra toda la pantalla, no solo un ícono de campana.

Respuestas (5)

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 solarizado: MacVim tenía un color de fondo más oscuro (y correcto) que Terminal, aunque estaba configurando todos los valores RGB correctos según la especificación solarizada. Mira aquí:

Básicamente, necesita saber cuáles se supone que son los valores de color para cada uno de los colores Terminal ANSI, texto y Fondo (tenga en cuenta que este está en la pestaña Ventana) y luego configurarlos a través del selector HSB en lugar de RGB. Mira este ejemplo:

Por el motivo que sea (sospecho que se trata de algún tipo de perfil, o tal vez un ajuste de contraste como sugieres), el color RGB que ingresas no es lo que obtienes. También notará que una vez que haya establecido los valores a través de HSB, cambiar al selector RGB mostrará opciones diferentes a las esperadas. Todas las conversiones de valor solarizadas concuerdan según Photoshop; parece ser algo que el selector de color de Apple está haciendo por ti.

Esta es una respuesta increíblemente buena.
Parece que RGB no está destrozado como tal, solo modificado por la configuración de opacidad de los selectores según la respuesta de @eirnym: la combinación de los 2 no solo lo explica, sino que lo resuelve de 2 maneras. ¡Estupendo!
Para no arruinar el desfile, pero no puedo confirmar que esto solucione el problema: Terminal.app sigue modificando los valores que ingreso en el espacio de color HSB, incluso cuando configura el fondo con los valores correctos (incluida la opacidad al 100 % y el desenfoque al 0 %). primero. Los valores brillantes parecen ser menos propensos a esto, los no brillantes más. Tal vez el selector de color en Terminal.app tenga serios errores, tal vez intente ser "inteligente" en cuanto al contraste y la gama de colores (no dejaría pasar a Apple); sea como sea, la solución anterior no funciona en mi sistema.
… investigando un poco más, el problema parece estar arraigado en el mapeo de colores solarizados desde el espacio de color independiente del dispositivo (espacio de color LAB/HSB) al 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 flecha pequeña en el pequeño cuadrado de color a la izquierda del menú desplegable del espacio de color). Las diferencias en los valores RGB de las tablas de colores Solarized se explican por el hecho de que Solarized se asigna a sRGB, mientras que el selector de color siempre se asigna implícitamente al dispositivo RGB.
… lo que indica 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 para nosotros, gruñidos de Terminal :). [sí, OT, lo sé]
@kopischke sí: definitivamente está relacionado con la forma en que Apple traduce los colores para los propósitos del perfil de pantalla seleccionado, o algo por el estilo. Creo que si configurara (incorrectamente) su perfil de visualización en sRGB, parecería que "funcionaría" como se esperaba. Esto es a lo que me refería cuando dije "algún tipo de perfil" en mi respuesta; ¡Gracias por proporcionar más información! (Dicho esto, no tuve que hacer el paso RGB del dispositivo que hiciste, pero tal vez algunas personas lo hagan).
Para agregar una nota final: aunque los resultados son consistentes en la medida en que Terminal.app no ​​restablece los valores elegidos en el selector de color cuando se sigue el procedimiento descrito anteriormente, los colores reales de la pantalla aún se modifican sutilmente , los colores claros más que los oscuros unos – solo verifique usando la lupa del selector de color. Solarized base03(color oscuro de la ventana), por ejemplo, se procesa correctamente, pero base3(color claro de la ventana) no lo hace del todo. Y aunque la diferencia es tan sutil que es casi insignificante, el enfoque de HSB a dispositivo RGB no anula por completo el efecto descrito en la pregunta del OP.
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 de color, que se supone que funciona con cualquier color, y puede dejar de funcionar en el futuro cuando se corrija ese error.
Esto no funcionó para mí en High Sierra. Parece que el error al que se refería @Chris Page se ha solucionado.

eligiendo 'Dispositivo RGB' en el menú desplegable de la muestra Selector de color de Apple

  1. Abre 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. EscogerDevice RGB

Ahora los colores especificados por 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 icono de engranaje:Selector de espacio de color Sierra

Fuente

Genial, ¡gracias por esto! A pesar de toda la destreza de diseño de Apple, no es del todo obvio que hacer clic en esto revelaría un menú.
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 de color, que se supone que funciona con cualquier color, y puede dejar de funcionar en el futuro cuando se corrija ese error.
Este truco funcionó para mí; el truco de HSB no lo hizo.

Los perfiles de color son definitivamente importantes, pero hay otro problema al acecho aquí: Terminal.app ilumina automáticamente cualquier color cuando se muestra sobre el fondo predeterminado. Aquí, por ejemplo, están los colores generados por Terminal.app que ejecuta el tema de color solarizado , medidos con DigitalColor Meter en modo sRGB y comparados con los valores canónicos de sRGB solarizados.

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

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

Votado negativo porque esta no es una respuesta. Parece ser un comentario sobre la pregunta.
¿Cómo generaste esa tabla de colores? Se ve muy útil.

En resumen: no, no hay medios admitidos para deshabilitar esto.

La terminal aplica automáticamente un contraste mínimo cuando muestra un color ANSI (o una tabla de 256 colores extendida) en el color de fondo de la terminal, o cuando muestra el color de primer plano/texto de la terminal en un color de fondo ANSI.

Esto pretende ser una conveniencia, de modo que uno pueda establecer un color de fondo o de primer plano y hacer que contrasten con los colores ANSI sin tener que ajustar todos los colores ANSI. Esto era 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 podía ser legible, pero algunos programas muestran intencionalmente el texto con el mismo color frontal y de fondo para ocultarlo. (para mostrar pistas de juegos o chistes, por ejemplo). Por eso, las versiones más nuevas 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 que contrasten entre sí como desee. . También se supone que esos usuarios ajustarán o tendrán en cuenta los colores de fondo y de primer plano de la terminal para que se ajusten al esquema de color deseado.

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

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

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

ingrese la descripción de la imagen aquí

No se votó porque esto no se aplica a la pregunta, que trata sobre el comportamiento de contraste mínimo de Terminal y no se ve afectado por la opacidad del fondo.