¿Cuál es el punto de los colores ANSI personalizados en las Preferencias de Terminal?

En las preferencias de la aplicación Terminal, puede configurar colores ANSI personalizados para azul, verde, amarillo, rojo brillante, etc., pero en realidad no cambian nada en el Shell. Por ejemplo, el uso de imágenes ls -Gfijas muestra los colores ANSI predeterminados. Sé que puede personalizar el texto, el cursor y los colores de fondo, pero ¿qué efecto tiene cambiar los colores ANSI? He intentado cambiar el LSCOLORSen el bash_profilepero eso no funcionó.

¿Cómo puedo hacer que los colores ANSI en el shell coincidan con los colores personalizados establecidos en las preferencias de la Terminal?

colores predeterminados

colores personalizados

¿Está preguntando por qué alguien querría cambiar el verde y el rojo a diferentes colores, ya que no pueden ver esos colores pero quizás podrían reasignarlos a naranja y azul? Básicamente, digamos que alguien explica una opinión o la razón por la que siente que existe. ¿Qué hará con ese conocimiento (o hay una pregunta práctica enterrada aquí que podemos abordar directamente?)?
Sé cómo intercambiar colores predeterminados, pero ¿cómo puedo hacer que aparezcan colores ANSI personalizados en el shell? ¿Cuál es el punto de establecer colores personalizados en el panel de preferencias si no tienen efecto en el shell?
Aah, entonces esto se trata más de por qué no todos los programas o todos los códigos adoptan estos colores en lugar de superponerse en estándares contradictorios y secuencias de escape...
He intentado cambiar el LSCOLORS... pero eso no funcionó. Creo que esta es la pregunta real aquí. Pero para responderla, necesitamos saber qué intentó y cuáles fueron sus resultados.

Respuestas (1)

Para comprender qué efecto tiene el cambio de esos colores, deberá comprender cómo funcionan los colores ANSI.

En los primeros días de los códigos de escape ANSI para colorear, la especificación permitía a los programadores (u otros usuarios) escribir códigos para elegir entre 8 colores (negro, rojo, verde, amarillo, azul, magenta, cian y blanco). Como una especie de estándar de facto, los fabricantes de terminales también permitieron elegir versiones más similares de los mismos colores (es decir, negro brillante, rojo brillante, etc.).

El color real de "rojo" o "verde" no está estandarizado y varía según el software del terminal. Estos son los colores que Apple te permite redefinir. Es decir, si desea que su "rojo" sea más o menos rojo (o algo completamente diferente), se lo permitirá.

Más tarde se ha trabajado para ampliar estos códigos de escape para permitir una gama de colores más amplia. En la versión estándar ISO de estos códigos de escape, el programador puede seleccionar cualquier color RGB de 24 bits emitiendo un código de escape que especifica la cantidad de rojo, verde y azul que se incluye en el color específico que desea.

Esto significa que si ejecuta un programa en la Terminal que utiliza el antiguo conjunto de códigos de escape que hacen referencia a "nombres" de color (es decir, rojo, verde, cian), puede cambiar el significado de esas referencias de color en las preferencias.

Sin embargo, para los programas que usan los códigos de escape más nuevos que hacen referencia a códigos de color específicos (es decir, rgb (123,74,101)), el programador ya solicitó explícitamente un color específico, y no puede como usuario cambiar eso desde la Terminal preferencias

¿Qué comandos de terminal utilizan códigos de color definidos por el usuario?