C'è un modo per alterare i colori usati nelle console TTY su Linux?


14

Per "alterare i colori" intendo qualcosa come cambiare il nero da #000000a #111111, e per "console TTY" intendo quello che ottieni quando fai Ctrl+ Alt+ F1da X11, non un emulatore di terminale come xtermo urxvt.

Sto usando Arch Linux, ma penso che abbia più a che fare con il programma che fornisce il TTY ( agetty, credo).


I terminali non funzionano in termini di colori esadecimali - usano codici colore come quelli che si trovano in "/ etc / shell-colors".
nuovo123456,

1
@ new123456 - Non ho nessun file chiamato "shell-colours" da nessuna parte sotto/
Austin Hyde

Huh. Non dichiari la tua distribuzione qui - sto eseguendo Zenwalk, quindi la tua distribuzione può variare. Cerca per color in bashottenere un elenco di tutte le fughe.
nuovo123456,

2
@ new123456 - Ho menzionato che stavo usando Arch e non sto cercando sequenze di escape bash per i colori, come \e[0;30mper il nero, sto cercando un modo per personalizzare il colore effettivo per ogni colore nominato.
Austin Hyde,

1. Ci dispiace: prima guardo i tag;) 2. Solo informazioni, non del tutto pertinenti alla domanda ma pertinenti al dominio.
nuovo123456,

Risposte:


3

Il comando setterm è quello che stai cercando.

setterm -foreground black -background white

MODIFICARE

No, non è possibile modificare i nomi dei colori come richiesto. Non sono referenziati in questo modo da nessuna parte in maledizioni, terminfo o nel terminale stesso. È possibile modificare le definizioni degli indici di colore (0-15 credo) modificando la sorgente del kernel e ricompilando.


No, non è quello che sto cercando. Voglio cambiare le definizioni dei colori, non il colore di primo piano e di sfondo.
Austin Hyde,

13

Questo è del tutto possibile ed è qualcosa che faccio nella mia configurazione Arch.

Puoi rilasciare qualcosa del genere in uno script di shell e farlo funzionare al login:

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

L' \e]P0a \e]PF(base 16) sono le sequenze di escape è necessario impostare il colore 16 (8 metà luminosa, 8 luminoso). Dopo di che inserisci il colore di sostituzione desiderato, ad es 151515.


non sembra funzionare in Ubuntu 16.04 con Bash Fwiw
G Gordon Worley III,

2

Questo è il miglior comando che conosco:

setterm -clear all -foreground green -bold -store

Per quanto ne so, puoi avere solo 8 colori diversi. Forse un po 'di più usando Bright di fronte a Basic 8?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.