Jak działa paleta kolorów Tmux?

140

Próbuję ustawić coś na szary, ale nie mogę zrozumieć, jak to zrobić. Jedyne informacje na stronie kolorów o kolorach, które mogę znaleźć, to:

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.

Znalazłem też post na blogu, w którym powtarzane są kolory, ale nie mogę tego całkowicie pogmatwać i nie chcę siedzieć przy terminalu przez cały dzień zgadując numery kolorów, dopóki jeden nie zadziała.

Lawrence
źródło

Odpowiedzi:

223

Możesz uzyskać listę za pomocą tego bashfragmentu:

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

Następnie użyj colourxxxz tmux.

Cyrus
źródło
18
użyj $ reset, aby przywrócić natychmiastowy kolor:>
lkraav
może potrzebujesz trzycyfrowych kolorów? Ten skrypt generuje takie, color12ale tmux nie akceptuje go jako prawidłowego koloru.
artfulrobot
6
Mój tmux(1.6) akceptuje nawet takie kolory jak colour12(pamiętaj o „u”).
cyr
1
Ta odpowiedź jest nadal pomocna! Pomógł mi wybrać kolory, które chciałem.
asfallows
6
o mój Boże! Tęcza na moim terminalu. W samą porę, aby uczcić równość małżeństw w USA!
garbelini
75

Uważam, że ten obraz jest pouczający.

wprowadź opis zdjęcia tutaj

Eddie Parker
źródło
16
Możesz go utworzyć za pomocąfor 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

W Subversion (co będzie tmux 1.5) możesz również używać #abcdef kolorów w stylu heksadecymalnym, które są odwzorowane na najbliższy wpis palety 256 kolorów. Potrzebujesz cudzysłowów, ponieważ są one traktowane jako ciąg znaków, podczas gdy zwykłe nazwy kolorów są traktowane jak nazwane stałe. Pamiętaj również, że trzyliterowy skrót (# f00) jest nieprawidłowy.

Przykład:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb
Kok
źródło
1
Czy możesz? Nie wiem, jak ...
Eric,
5
set-option message-bg "#abcdef"; cytaty są konieczne.
chepner
#fff#ffffff
Wygląda na
11

tmux do 1.9 obsługuje tylko międzynarodową pisownię dla palety 256 kolorów, np

"colour121"

w przeciwieństwie do amerykańskiej pisowni, która upuszcza u

"color121"

Wygląda na to, że wkrótce zostanie to zmienione, http://sourceforge.net/mailarchive/message.php?msg_id=31049758

Joe Fortier
źródło
6

Opierając się na odpowiedzi @ cYrus, napisałem skrypt dzielący wynik kolorów na N liczby kolumn, gdzie N jest pierwszym argumentem

# 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

Wypróbuj, zapisując go w pliku o nazwie colors.sh ./colors.sh 4

Nie zapomnij chmod +x colors.shnajpierw.

Andy Terra
źródło
3
Skrypt show-256-colors.sh może być również przydatny do wyświetlania kolorów tła.
Maxim Suslov,
Powinieneś domyślnie powiedzieć co najmniej 4 kolumny, aby odróżnić go od skryptu źródłowego.
dbkeys