Alguns terminais como o xterm permitem redefinir as cores através de arquivos de recursos ou dinamicamente, e se forem expostos corretamente na entrada terminfo para $ TERM, você pode fazer isso com:
tput initc 4 1000 0 0
Altere a cor ANSI 4 (normalmente azul) para RGB (1000, 0 0), que é vermelho brilhante.
Se o terminal não suportar a redefinição de cores (consulte infocmp -1 | grep initc
), você também pode, para aplicativos que usam terminfo, induzi-los a enviar sequências de escape diferentes para solicitar a cor 4 (azul).
infocmp -x > terminal.info
Edite terminal.info
, substitua o nome do terminal por algo como "myterm" e edite a propriedade "setab" (defina o plano de fundo ANSI).
Em vez de
setab=\E[4%p1%dm
Isto é:
tput setab 4
envia ^ [[44m, altere para:
setab=\E[4%?%p1%{4}%=%t1%e%p1%d%;m
O %? ....
é um if-then-else para enviar "1" quando solicitado "4" e o outro solicitado.
Então
tput setab 4
enviará ^[[41m
, (vermelho) e tput setab 5
enviará ^[[45m
Em seguida, compile com:
TERMINFO=$HOME/.terminfo tic -x terminal.info
e use-o como:
TERMINFO=$HOME/.terminfo TERM=myterm the-application-to-trick
Isso só funciona se o aplicativo usar o banco de dados terminfo para enviar sequências para o terminal.