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.

Lawrence
fonte

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.

cYrus
fonte
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
75

Achei esta imagem esclarecedora.

insira a descrição da imagem aqui

Eddie Parker
fonte
16
Você pode criá-lo comfor i in {0..255}; do printf "\x1b[38;5;${i}mcolor%-5i\x1b[0m" $i ; if ! (( ($i + 1 ) % 8 )); then echo ; fi ; done
12431234123412341234123 04/04
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
Prumo
fonte
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
11

O tmux a 1.9 suporta apenas a ortografia internacional da paleta de 256 cores, por exemplo

"colour121"

em oposição à ortografia americana que deixa cair o u

"color121"

Parece que isso será alterado em breve, http://sourceforge.net/mailarchive/message.php?msg_id=31049758

Joe Fortier
fonte
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.

Andy Terra
fonte
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