
¿Hay alguna forma de modificar todos los colores disponibles en la consola/terminal virtual?
Por consola, me refiero a lo que obtienes después de presionar CTRL + ALT + F1 y nada como xterm o urxvt. Entonces, supongo que eso significaría alterar
Puedo cambiar 8 de los colores usando secuencias de escape como esta:
echo -en "\e]PY######"
donde Y es la identificación numérica del color (0 a 7) y ###### es el valor del color hexadecimal.
Mi objetivo final es trasladar el esquema de color solarizado a la consola, porque quiero lucir vim de todos modos independientemente de si estoy en la consola o en la X.
¿Alguna sugerencia sobre esto?
htop en xterm:
htop en xterm, colores solarizados
htop en consola, después de aplicar los 8 colores:
htop en consola, después de aplicar los 8 colores pude
Respuesta1
La consola TTY framebuffer no tiene forma de tener más de 8 a 16 colores sin piratear el kernel; consulte esta cita: "Aunque el frame-buffer de Linux admite 256 (o más) colores, el controlador de la consola Linux no; por lo tanto, las aplicaciones de la consola aún son limitado a 16 colores en la consola Linux, con frame-buffer o no."
Entonces no puedes tener más de 16 u 8 colores. Hay un tutorial sobre cómo cambiar los colores del terminal framebuffer (también conocido como ctrl+alt+1) usando los mismos comandos que describió en ~/.bashrc:colores en tutorial TTY
Respuesta2
Pruebe esta función bash en la consola. Oportunamente, no funciona en una terminal X (creo que por las pestañas). Consulte especialmente los tres archivos utilizados por última vez, a saber
/sys/module/vt/parameters/default_red
/sys/module/vt/parameters/default_grn
/sys/module/vt/parameters/default_blu
clr () {
clear # GFX bug otherwise
setterm -regtabs 4
Color_names="bla red gre yel blu mag cya whi"
Color_arr=($Color_names)
tput setaf 4
tput setab 7
echo -n " normal "
tput sgr0
echo -n " "
tput setaf 7
tput setab 4
echo " bright "
tput sgr0
for cmd in sgr0 bold
do
tput $cmd
for m in 0 1 2 3 4 5 6 7
do
tput setaf $m
echo -n ${Color_arr[$m]}" "
done
done
echo
tput sgr0
cat /sys/module/vt/parameters/default_red \
/sys/module/vt/parameters/default_grn \
/sys/module/vt/parameters/default_blu | sed s/,0/", "/g | \
sed s/^0/" "/g | \
tr "," "\t"
}
Editar en respuesta al comentario
Por ejemplo, cambie el segundo dígito en el archivo verde ( sys/module/vt/parameters/default_grn
) a 170
: esto le dará al segundo color (con índice 1) tanto verde como rojo, y nada de azul (al menos en mi caso, porque tengo el dígito correspondiente en default_red
170
, y 0
en default_blu
).
Ahora, escribe tput setaf 1; echo hi
. Aquí le pones el color de primer plano al color con índice 1 (el que cambiaste), luego lo imprimes. (Tenga en cuenta la línea con dos puntos para separar los comandos; de lo contrario, el mensaje puede restablecer el tput
intervalo).
Si te aparece igual que siempre, intenta echo -n '\033]R'
y luego tput
vuelve a marcar la línea. Ahora,ambosLos "hola" deberían ser algo amarillos.
Avísame si logras que funcione (o no).