Comment fonctionne la palette de couleurs tmux?

140

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 parcourt les couleurs, mais je ne peux pas tout dire et je ne veux pas rester au terminal toute la journée à deviner les numéros de couleur jusqu'à ce que l'un d'entre eux fonctionne.

Lawrence
la source

Réponses:

223

Vous pouvez obtenir une liste avec cet bashextrait:

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

Ensuite, utilisez colourxxxavec tmux.

cYrus
la source
18
utilisez $ reset pour récupérer la couleur de votre invite:>
lkraav
peut-être avez-vous besoin de couleurs à trois chiffres? Ce script color12affiche le résultat comme mais ce n’est pas accepté par tmux comme une couleur valide.
artfulrobot
6
Mon tmux(1.6) accepte même les couleurs telles que colour12(attention le "u").
cYrus
1
Cette réponse est toujours utile! M'a aidé à choisir les couleurs que je voulais.
Asfallows
6
OMG! Un arc-en-ciel sur mon terminal. Juste à temps pour célébrer l'égalité du mariage aux États-Unis!
Garbelini
75

J'ai trouvé cette image éclairante.

entrez la description de l'image ici

Eddie Parker
la source
16
Vous pouvez le créer avecfor 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

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 couleurs ordinaires 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
Bob
la source
1
Peut tu? Je ne vois pas comment ...
Eric
5
set-option message-bg "#abcdef"; les citations sont nécessaires.
Chepner
Vous semblez également devoir utiliser les 6 caractères hexadécimaux complets, pas de raccourcis 3 caractères, c’est #fff-à- dire que cela ne fonctionnera pas, vous devez utiliser#ffffff
bschlueter
11

tmux à 1.9 ne supporte que l’orthographe internationale de la palette 256 couleurs, par exemple

"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

Joe Fortier
la source
6

En me basant sur la réponse de @cYrus, j'ai écrit un script pour séparer le nombre de couleurs 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 d' chmod +x colors.shabord.

Andy Terra
la source
3
Le script show-256-colors.sh peut être utile pour afficher également les couleurs de fond.
Maxim Suslov
Par défaut, vous devez indiquer au moins 4 colonnes pour le distinguer du script d'origine.
dbkeys