Como funciona a paleta de cores tmux?


140

Estou tentando definir algo para cinza, mas não consigo descobrir como. A única informação na página de manual sobre cores que posso encontrar é:

message-bg colour
  Set status line message background colour, where colour is one of:
  black, red, green, yellow, blue, magenta, cyan, white, colour0 to
  colour255 from the 256-colour palette, or default.

Também encontrei uma postagem no blog que itera através das cores, mas não consigo entendê-la e não quero ficar sentada no terminal o dia todo, adivinhando os números das cores até que funcione.

Respostas:


223

Você pode obter uma lista com este bashtrecho:

for i in {0..255}; do
    printf "\x1b[38;5;${i}mcolour${i}\x1b[0m\n"
done

Então use colourxxxcom tmux.


18
use $ reset para recuperar sua cor imediata:>
lkraav

talvez você precise de três dígitos de cores? Este script gera como color12mas que não é aceito pelo tmux como uma cor válida.
Artfulrobot

6
Meu tmux(1.6) aceita cores iguais como colour12(observe o "u").
CYrus

1
Esta resposta ainda é útil! Me ajudou a escolher as cores que eu queria.
asfallows

6
AMD! Um arco-íris no meu terminal. Bem a tempo de celebrar a igualdade do casamento nos EUA!
Garbelini


22

No Subversion (que será o tmux 1.5), você também pode usar as cores #abcdef em estilo hexadecimal, que são mapeadas para a entrada da paleta de cores 256 mais próxima. Você precisa de aspas, pois é tratado como uma sequência, enquanto os nomes de cores regulares são tratados como constantes nomeadas. Observe também que a abreviação de 3 letras (# f00) é inválida.

Exemplo:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb

1
Você pode? Eu não posso ver como ...
Eric

5
set-option message-bg "#abcdef"; as citações são necessárias.
chepner

Você também parecem ter de usar do total de 6 caracteres hexadecimais, há 3 atalhos de char ou seja, #fffnão vai funcionar, você tem que usar#ffffff
bschlueter



6

Com base na resposta do @cYrus, escrevi um script para dividir a saída das cores em N número de colunas, onde N é o primeiro argumento

# colors.sh

#!/bin/bash
if [ -z $1 ]; then
    BREAK=1
else
    BREAK=$1
fi
for i in {0..255} ; do
    printf "\x1b[38;5;${i}mcolour${i} \t"
    if [ $(( i % $BREAK )) -eq $(($BREAK-1)) ] ; then
        printf "\n"
    fi
done

Experimente salvando-o em um arquivo chamado colors.sh e, em seguida, ./colors.sh 4

Não se esqueça de chmod +x colors.shprimeiro.


3
O script show-256-colors.sh também pode ser útil para mostrar cores de fundo.
Maxim Suslov

Você deve usar como padrão, pelo menos 4 colunas, para distingui-lo do script de origem.
dbkeys 26/08
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.