web-dev-qa-db-fra.com

Comment fonctionne la palette de couleurs tmux?

J'essaie de mettre quelque chose en gris, mais je n'arrive pas à comprendre comment. La seule information dans la page de manuel sur les couleurs que je peux trouver est la suivante:

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.

J'ai également trouvé un article de blog qui itère à travers les couleurs, mais je ne peux pas tout à fait le comprendre, et je ne veux pas rester au terminal toute la journée à deviner les numéros de couleurs jusqu'à ce que l'un d'eux fonctionne.

128
lawrence

Vous pouvez obtenir une liste avec cet extrait bash:

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

Ensuite, utilisez colourxxx avec tmux.

209
cYrus

J'ai trouvé cette image éclairante.

 enter image description here

64
Eddie Parker

Dans Subversion (ce qui sera tmux 1.5), vous pouvez également utiliser les couleurs de style hexadécimal #abcdef qui sont mappées sur l'entrée de palette de 256 couleurs la plus proche. Vous avez besoin de guillemets car ils sont traités comme une chaîne, alors que les noms de couleur normaux sont traités comme des constantes nommées. Notez également que le raccourci de 3 lettres (# f00) n’est pas valide.

Exemple:

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

tmux à travers 1.9 ne prend en charge que l’orthographe internationale de la palette 256 couleurs, par ex.

"colour121"

par opposition à l'orthographe américaine qui laisse tomber le u

"color121"

On dirait que cela va bientôt changer, http://sourceforge.net/mailarchive/message.php?msg_id=31049758

9
Joe Fortier

J'utilise le xterm-color-table.vim script. Toute table de couleur de terminal de 256 couleurs fonctionnera.

5
86me

En m'appuyant sur la réponse de @cYrus, j'ai écrit un script pour décomposer la sortie des couleurs en N nombre de colonnes, N étant le premier argument.

# 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

Essayez-le en l'enregistrant dans un fichier nommé colors.sh, puis ./colors.sh 4

N'oubliez pas de chmod +x colors.sh en premier.

3
Andy Terra