Ho una combinazione di colori che mi piace quando sono in un terminale, ma entro nella macchina su cui lavoro da più fonti (localmente, PuTTY, il mio netbook, ecc.) e voglio mantenere la stessa combinazione di colori per tutto il tempo . È possibile?
In particolare lo voglio in PuTTY; è difficile cambiare i colori PuTTY.
Risposta accettata:
I colori nei terminali sono determinati in due passaggi:
- il programma in esecuzione nel terminale dice al terminale di utilizzare un certo numero di colore;
- il terminale traduce ogni numero di colore in un valore di colore.
Xterm ha una sequenza di escape per modificare il valore del colore associato a un numero di colore. Non ricordo se PuTTY supporta questa sequenza; So che Mintty lo fa.
set_color_value () {
printf "\e]4;$1;$2\a"
}
set_color_value 4 '#6495ed' # set color 4 (blue) to CornflowerBlue
Queste impostazioni non sopravviveranno a un ripristino del terminale. Puoi superare questa difficoltà aggiungendo la sequenza di modifica della configurazione del cursore alla stringa di ripristino del tuo terminale.
- Su un sistema basato su terminfo che utilizza ncurses, salva le impostazioni di terminfo del tuo terminale in un file con
infocmp >>~/etc/terminfo.txt
. Modifica la descrizione per cambiarers1
(reset di base) sequenza, ad es. sostituiscirs1=Ec
dirs1=EcE]4;4;#6495edE\
. Con alcuni programmi e impostazioni, potrebbe essere necessario modificarers2
(reset completo). Quindi compila la descrizione di terminfo contic ~/etc/terminfo.txt
(questo si scrive nella directory$TERMINFO
o~/.terminfo
se non impostato). - Su un sistema basato su termcap, prendi le impostazioni di termcap dal tuo database di termcap (in genere
/etc/termcap
). Cambiais
(ripristino di base) ers
(ripristino completo) sequenze per aggiungere le impostazioni, ad es.:is=EcEcE]4;4;#6495edE\:
. Imposta ilTERMCAP
variabile di ambiente al valore modificato (iniziando e terminando con:
).
Ora puoi inserire qualcosa di simile nel tuo ~/.profile
:
if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
[ "$TERM" = "xterm" ]; then
set_color_value … # set color scheme
TERMCAP=… # if necessary
fi