Alterando a cor das saídas coloridas

0

Meu terminal tem um fundo branco. Quando os comandos imprimem texto amarelo no terminal, não consigo ver o texto claramente (devido ao baixo contraste). Eu pensei: não seria ótimo se todo o texto amarelo que será impresso fosse transformado em texto marrom? Dessa forma, posso aproveitar a saída colorida sem me esforçar para ver o texto impresso.

Suponha que um comando queira imprimir texto amarelo. Existe uma maneira de 'sequestrar' a seqüência de escape para que o texto marrom seja impresso? Ou existe outra maneira de conseguir transformações de cores?

Nota: estou usando gnome-terminal no Ubuntu 18.04.

    
por Flux 18.10.2018 / 16:13

1 resposta

1

Muitos dos terminais atuais (incluindo o gnome-terminal) usam duas ou até três paletas de cores: 8 cores, 256 cores e 24 bits (aproximadamente 16x10 ^ 6 cores). No entanto, muitas vezes os dois primeiros conjuntos podem ser escolhidos arbitrariamente a partir do último e novamente esse é o caso de gnome-terminal (e, por exemplo, seu primo terminator ).

Agora, para alterar a paleta de cores específica da paleta de 24 bits do rgb, precisamos do \e]4 código de escape seguido por um número de código de cor alterado e cor rgb. No seu caso

printf '\e[33mTEST\e[m\n'           # first print "TEST" to see yellow text
printf '\e]4;3;rgb:b0/4a/00\e\'    # now we change yellow to brown
printf '\e[33mTEST\e[m\n'           # test again

O apelido amarelo é 3 e para marrom eu escolhi arbitrariamente b04a00 . Após essa modificação, você notará que todo o texto amarelo foi alterado, mesmo o impresso anteriormente.

    
por 18.10.2018 / 16:52