¿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.

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.


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í


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

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.