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=Ecdirs1=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$TERMINFOo~/.terminfose 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 ilTERMCAPvariabile 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