Tengo un esquema de color que me gusta cuando estoy en una terminal, pero entro en la máquina en la que trabajo desde varias fuentes (localmente, PuTTY, mi netbook, etc.) y quiero mantener el mismo esquema de color en todo momento. . ¿Es esto posible?
Lo quiero especialmente en PuTTY; es difícil cambiar los colores de PuTTY.
Respuesta aceptada:
Los colores en los terminales se determinan en dos pasos:
- el programa que se ejecuta en la terminal le dice a la terminal que use un determinado número de color;
- el terminal traduce cada número de color en un valor de color.
Xterm tiene una secuencia de escape para cambiar el valor de color asociado con un número de color. No recuerdo si PuTTY admite esta secuencia; Sé que Mintty lo hace.
set_color_value () {
printf "\e]4;$1;$2\a"
}
set_color_value 4 '#6495ed' # set color 4 (blue) to CornflowerBlue
Estas configuraciones no sobrevivirán a un reinicio de terminal. Puede superar esta dificultad agregando la secuencia de cambio de configuración del cursor a la cadena de reinicio de su terminal.
- En un sistema basado en terminfo usando ncurses, guarde la configuración de terminfo de su terminal en un archivo con
infocmp >>~/etc/terminfo.txt
. Edite la descripción para cambiar elrs1
(restablecimiento básico) secuencia, p. reemplazarrs1=Ec
porrs1=EcE]4;4;#6495edE\
. Con algunos programas y configuraciones, es posible que deba cambiar elrs2
(restablecimiento completo) también. Luego compile la descripción de terminfo contic ~/etc/terminfo.txt
(esto se escribe bajo el directorio$TERMINFO
, o~/.terminfo
si no está configurado). - En un sistema basado en termcap, tome la configuración de termcap de su base de datos termcap (normalmente
/etc/termcap
). Cambiar elis
(restablecimiento básico) yrs
(restablecimiento completo) secuencias para agregar su configuración, p.:is=EcEcE]4;4;#6495edE\:
. Establecer elTERMCAP
variable de entorno al valor editado (comenzando y terminando con:
).
Ahora puedes poner algo como esto en tu ~/.profile
:
if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
[ "$TERM" = "xterm" ]; then
set_color_value … # set color scheme
TERMCAP=… # if necessary
fi