Introdução
Minha pergunta surge da necessidade de entender por que agora tenho (após várias tentativas) o Terminal e o tmux suportando 256 cores e tput colors
me dizendo que existem apenas 8 delas.
fundo
Vamos começar do começo.
Estou usando uma caixa do Ubuntu , Guake , tmux , Vim e adoro o tema Solarized . Eles estavam com uma aparência horrível, então decidi ativar o suporte para 256 cores e brincar um pouco.
Vamos ver o que acontece no meu terminal . tput colors
diz que existem 8 cores. Pessoalmente, defino-os como roxo, à esquerda e, claro, à direita, temos 2 tons diferentes de azul. $TERM
diz xterm
. (Para ter o colorido ls
I eval
este no meu .bashrc
.)
O Vim também parece bem, apesar do fato de eu chamá-lo com a 256
bandeira em um ambiente em que 256 cores não são suportadas.
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
O único cara que reclama do espaço reduzido de cores é o tmux . A chamada tmux
fornece os resultados esperados "errados".
Mas chamar tmux
com a -2
bandeira faz tudo funcionar bem, magicamente .
Agora, a única coisa que eu entendo é que -2
é equivalente a export TERM=screen-256color
( fonte ).
Guake se comporta de maneira análoga ao Terminal e os dois respondem xterm
à pergunta echo $TERM
.
Pergunta, questão
Basicamente, alguém entende por que tudo funciona, mesmo que não deveria?
- Estou sádico por reclamar por que as coisas funcionam? Talvez.
- Existe uma razão melhor? Claro: gostaria de corrigir a aparência de outras caixas do Ubuntu no meu escritório e gostaria de entender por que as coisas funcionam ou não.
Experiências adicionais
A execução desse script (ligeiramente modificado) no meu xterm
fornece o seguinte resultado: 256 cores, mas apenas 16 são exibidas corretamente.
Então, mudando o perfil do terminal, também essas 16 cores mudam.
Mais testes estão a seguir.
Da esquerda para a direita, de cima para baixo, temos o tema de cores Solarizeddircolor
ansi-dark
e 256dark
, em seguida , o esquema de cores padrão ( Tango ) dircolor
ansi-dark
e 256dark
.
Observação : em teoria, o dircolor
ansi-dark
on Solarizado esquema de cores deve ter jogo de perto a dircolor
256dark
. Isso não está acontecendo claramente para os arquivos listados específicos. Em vez disso, isso acontece quando no diretório de trabalho existem pastas , arquivos de texto e links simbólicos . Conclusão : não foi dada muita atenção ao codificar as 256dark
cores.
Conclusões preliminares
xterm
suporta 256 cores, apesar do que tput colors
diz. Os programas podem se referir à ansi
paleta (personalizável pelo usuário) ou definir suas cores, escolhendo um total de 256 cores.
tput colors
é um teste não confiável. Você poderia verificar minhas conclusões preliminares ?
tput colors
só é possível retornar um valor e, nos terminais que suportam qualquer uma das 2,8,16,88 ou 256 cores, apenas o primeiro valor (8 no seu caso) é retornado. Para obter o valor verdadeiro, use o script do meu último comentário. O que isso retorna?