Cores no Console do Linux

Outro dia, eu estava falando com um amigo sobre como tão poucos programas que eu uso precisam do X. Com um pouco de adaptação, eu conseguiria sobreviver no console (com framebuffer, é claro) sem grandes problemas. Para os interessados em uber-minimalismo como eu, em breve comentarei que programas eu uso; mas por enquanto, traduzi um artigo que Aaron Griffin, o atual líder do Archlinux, escreveu (e me autorizou a traduzir). A quem interessar possa, o link original está aqui: Linux Console Colors.


Sim, estou falando sobre colorir o ‘console do linux’ – aquela coisa que aparece quando você loga sem iniciar o X.

A maioria das pessoas que conheço usam um framebuffer. Isso acontece devido ao fato que texto sem framebuffer é enorme por padrão. Geralmente, configura-se um vga=791 ou similar, o texto fica mais legível, e se deixa as coisas como estão.

Sim, algumas pessoas preferem bootsplash/gensplash/usplash/wtf-splash… Eu não (apesar de eu usar grub-gfx do AUR – grub com um patch para ter um pixmap de fundo). Entretanto, quando se dá boot com framebuffer, geralmente se escolhe uma profundidade de cores (pessoalmente, meu laptop não gosta de nada a cima de cores de 16 bits, mas isso é o bastante para mim).

Ok, então estou certo de que algumas pessoas se perguntaram “bem, se você não está usando uma tela de splash, para que falar tanto sobre profundidade de cores?” – Eu mostrarei. Meu ~/.bashrc contém as seguintes linhas:

if [ "$TERM" = "linux" ]; then
echo -en "\e]P0222222" #preto
echo -en "\e]P8222222" #cinza escuro
echo -en "\e]P1803232" #vermelho escuro
echo -en "\e]P9982b2b" #vermelho
echo -en "\e]P25b762f" #verde escuro
echo -en "\e]PA89b83f" #verde
echo -en "\e]P3aa9943" #marrom
echo -en "\e]PBefef60" #amarelo
echo -en "\e]P4324c80" #azul escuro
echo -en "\e]PC2b4f98" #azul
echo -en "\e]P5706c9a" #magenta escuro
echo -en "\e]PD826ab1" #magenta
echo -en "\e]P692b19e" #cian escuro
echo -en "\e]PEa1cdcd" #cian
echo -en "\e]P7ffffff" #cinza claro
echo -en "\e]PFdedede" #branco
clear #para artefatos do fundo
fi

É, é confuso, eu sei… de qualquer forma, esses são escapes do console para o console do linux.

Como com todos códigos de escape, esses começam com um pequeno prefixo indicando o que o escape está fazendo: nesse caso “e]P”, que é o escape de “escolher cor”. O formato para a informação é “XRRGGBB” onde X é o número da cor a ser modificada (em hexadecimal). Essa é uma notação padrão para 16 cores, as quais eu comentei a cima. As cores a cima são tiradas do meu ~/.Xdefaults, com “color0” convertido em “e]P0” e “color16” convertido em “e]PF”.

Note o último “clear”. Se você configurar essas cores sem limpar o terminal, a cor de fundo irá mudar (assumindo que “color0” mudou) apenas para novo texto. Você terá artefatos estranhos.

Aqui está um screenshot da minha configuração atual, sem X, usando a fonte terminus (ter-112n) e as cores a cima.

Aproveitem!


Esse é o texto original, eu gostaria de fazer mais alguns comentários. O primeiro é que os códigos a cima funcionam com outros shells também. Pelo menos eu não tive problema nenhum com meu zsh, basta colocar no ~/.zshrc ao invés de ~/.bashrc.

O segundo é na verdade outro esquema de cores, que eu gosto mais. Aqui está o screenshot e a configuração das cores:

if [ "$TERM" = "linux" ]; then
echo -en "\e]P0222222" #black
echo -en "\e]P8222222" #darkgrey
echo -en "\e]P1AE4747" #darkred
echo -en "\e]P9EE6363" #red
echo -en "\e]P26B862F" #darkgreen
echo -en "\e]PA89B83F" #green
echo -en "\e]P3BAA520" #brown
echo -en "\e]PBFFC135" #yellow
echo -en "\e]P4296087" #darkblue
echo -en "\e]PC5F7EA0" #blue
echo -en "\e]P59C2561" #darkmagenta
echo -en "\e]PDDC227F" #magenta
echo -en "\e]P665B2A4" #darkcyan
echo -en "\e]PE8FE7D7" #cyan
echo -en "\e]P7BBBB99" #lightgrey
echo -en "\e]PFEEEEBB" #white
clear #for background artifacting
fi

E por último, falarei sobre opções do vga em algum artigo vindouro, então aguardem.

Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: