Existe uma maneira de alterar as cores usadas nos consoles TTY no Linux?

14

Por "alterar cores", quero dizer algo como mudar o preto de #000000para #111111e, por "console TTY", quero dizer o que você obtém quando faz Ctrl+ Alt+ F1do X11, não um emulador de terminal como xtermou urxvt.

Estou usando o Arch Linux, mas acho que tem mais a ver com o programa que fornece o TTY ( agetty, acho).

Austin Hyde
fonte
Os terminais não operam em termos de cores hexagonais - eles usam códigos de cores como os encontrados em "/ etc / shell-colors".
233116
1
@ new123456 - Eu não tenho qualquer arquivo chamado "casca-cores" em qualquer lugar sob/
Austin Hyde
Hã. Você não indica sua distribuição aqui - estou executando o Zenwalk, portanto sua distribuição pode variar. Procure color in bashobter uma lista de todas as fugas.
233116
2
@ new123456 - Eu mencionei que estava usando o Arch e não estou procurando sequências de escape para cores, como \e[0;30mno preto, estou procurando uma maneira de personalizar a cor real de cada cor nomeada.
Austin Hyde
1. Desculpe - eu olho primeiro para as tags;) 2. Apenas informações, não inteiramente pertinentes à pergunta, mas pertinentes ao domínio.
new123456

Respostas:

3

O setterm comando é o que você está procurando.

setterm -foreground black -background white

EDITAR

Não, não há como alterar os nomes das cores conforme solicitado. Eles não são referenciados dessa maneira em nenhum lugar em maldições, terminfo ou no próprio terminal. Você pode alterar as definições dos índices de cores (0 a 15 eu acho) editando a fonte do kernel e recompilando.

h0tw1r3
fonte
Não, não é isso que estou procurando. Quero alterar as definições de cores, não as cores de primeiro e segundo plano.
Austin Hyde
13

Isso é totalmente possível e é algo que eu faço na minha configuração do Arch.

Você pode colocar algo assim em um script de shell e executá-lo no 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

As teclas \e]P0para \e]PF(base 16) são as seqüências de escape necessárias para definir as 16 (8 cores meio brilhantes e 8 cores brilhantes). Após o qual você coloca a cor de substituição desejada, por exemplo 151515.

Chris Kempson
fonte
não parece trabalho no Ubuntu 16.04 com fwiw festa
G Gordon Worley III
2

Este é o melhor comando que eu conheço:

setterm -clear all -foreground green -bold -store

Você só pode ter 8 cores diferentes, tanto quanto eu posso dizer. Talvez um pouco mais usando brilhante na frente do básico 8?

Shubham Chaudhary
fonte