¿Cómo funciona la paleta de colores tmux?

140

Estoy tratando de configurar algo en gris, pero no puedo entender cómo. La única información en la página del manual sobre los colores que puedo encontrar es:

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.

También encontré una publicación de blog que recorre los colores, pero no puedo asimilarla, y no quiero sentarme en la terminal todo el día adivinando los números de color hasta que uno funcione.

Lawrence
fuente

Respuestas:

223

Puede obtener una lista con este bashfragmento:

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

Luego use colourxxxcon tmux.

Ciro
fuente
18
use $ reset para recuperar su color de solicitud:>
lkraav
tal vez necesitas colores de tres dígitos? Este script genera como color12pero tmux no lo acepta como un color válido.
artfulrobot
66
Mi tmux(1.6) acepta incluso colores como colour12(cuidado con la "u").
cYrus
1
¡Esta respuesta sigue siendo útil! Me ayudó a elegir los colores que quería.
asfallows
66
¡Dios mio! Un arcoiris en mi terminal. ¡Justo a tiempo para celebrar la igualdad matrimonial en los Estados Unidos!
garbelini
75

Encontré que esta imagen es esclarecedora.

ingrese la descripción de la imagen aquí

Eddie Parker
fuente
16
Puede crearlo confor i in {0..255}; do printf "\x1b[38;5;${i}mcolor%-5i\x1b[0m" $i ; if ! (( ($i + 1 ) % 8 )); then echo ; fi ; done
12431234123412341234123
22

En Subversion (que será tmux 1.5) también puede usar los colores de estilo hexadecimal #abcdef que se asignan a la entrada de paleta de 256 colores más cercana. Necesita comillas ya que se trata como una cadena, mientras que los nombres de colores regulares se tratan como constantes con nombre. También tenga en cuenta que la taquigrafía de 3 letras (# f00) no es válida.

Ejemplo:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb
Mover
fuente
1
¿Puedes? No puedo ver cómo ...
Eric
55
set-option message-bg "#abcdef"; Las citas son necesarias.
chepner
También parecen tener que usar los 6 caracteres hexadecimales completos, no hay atajos 3 carbonilla es decir, #fffno va a funcionar, se tienen que utilizar#ffffff
bschlueter
6

A partir de la respuesta de @cYrus, escribí un script para dividir la salida de los colores en N número de columnas, donde N es el primer 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

Pruébelo guardándolo en un archivo llamado colors.sh, luego ./colors.sh 4

No te olvides de chmod +x colors.shprimero.

Andy Terra
fuente
3
El script show-256-colors.sh también puede ser útil para mostrar colores de fondo.
Maxim Suslov
Debería predeterminarlo para decir, al menos 4 columnas, para distinguirlo del script de origen.
dbkeys