¿Hay alguna manera de alterar los colores utilizados en las consolas TTY en Linux?

14

Por "alterar colores", me refiero a algo como cambiar el negro de #000000a #111111, y por "consola TTY", me refiero a lo que obtienes cuando haces Ctrl+ Alt+ F1desde X11, no un emulador de terminal como xtermo urxvt.

Estoy usando Arch Linux, pero creo que tiene más que ver con el programa que proporciona el TTY ( agettycreo).

Austin Hyde
fuente
Los terminales no operan en términos de colores hexadecimales: utilizan códigos de color como los que se encuentran en "/ etc / shell-colors".
nuevo123456
1
@ new123456 - No tengo ningún archivo llamado "colores de concha" en ninguna parte debajo/
Austin Hyde
Huh No indica su distribución aquí: estoy ejecutando Zenwalk, por lo que su distribución puede variar. Busque para color in bashobtener una lista de todos los escapes.
nuevo123456
2
@ new123456 - Mencioné que estaba usando Arch, y no estoy buscando secuencias de escape de bash para colores, como el \e[0;30mnegro, estoy buscando una manera de personalizar el color real para cada color con nombre.
Austin Hyde
1. Lo siento, primero miro las etiquetas;) 2. Solo información, no del todo pertinente a la pregunta pero pertinente al dominio.
nuevo123456

Respuestas:

3

El comando setterm es lo que estás buscando.

setterm -foreground black -background white

EDITAR

No, no hay forma de alterar los nombres de los colores como solicitó. No se hace referencia de esa manera en ningún lugar en maldiciones, terminfo o el terminal en sí. Puede cambiar las definiciones de los índices de color (creo que 0-15) editando la fuente del núcleo y volviendo a compilar.

h0tw1r3
fuente
No, eso no es lo que estoy buscando. Quiero cambiar las definiciones de colores, no el color de primer plano y de fondo.
Austin Hyde
13

Esto es completamente posible y es algo que hago en mi configuración de Arch.

Puede colocar algo como esto en un script de shell y ejecutarlo al iniciar sesión:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0151515" # Black
    echo -en "\e]P1ac4142" # Red
    ...
    echo -en "\e]PEac4142" # Bright Cyan
    echo -en "\e]PFac4142" # Bright White
    clear # Clear artifacts
fi

El \e]P0a \e]PF(base 16) son las secuencias de escape que necesita para establecer los colores (mitad brillante 8, 8 brillante) 16. Después de lo cual pones el color de reemplazo deseado, p 151515.

Chris Kempson
fuente
no parece funcionar en ubuntu 16.04 con bash fwiw
G Gordon Worley III
2

Este es el mejor comando que conozco:

setterm -clear all -foreground green -bold -store

Solo puedo tener 8 colores diferentes por lo que puedo decir. ¿Quizás un poco más al usar brillante en frente de 8 básico?

Shubham Chaudhary
fuente