Как работает цветовая палитра tmux?


140

Я пытаюсь установить что-то серое, но не могу понять, как. Единственная информация на страницах справки о цветах, которую я могу найти:

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.

Я также нашел сообщение в блоге, в котором повторяются цвета, но я не могу его ухватить, и не хочу весь день сидеть за терминалом, угадывая номера цветов, пока не сработает.

Ответы:


223

Вы можете получить список с этим bashфрагментом:

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

Тогда используйте colourxxxс tmux.


18
используйте $ reset, чтобы вернуть ваш быстрый цвет:>
lkraav

возможно, вам нужны три цифры цвета? Этот скрипт выводит как, color12но это не принимается tmux в качестве допустимого цвета.
artfulrobot

6
My tmux(1.6) принимает даже такие цвета, как colour12(обратите внимание на "u").
cYrus

1
Этот ответ все еще полезен! Помог мне выбрать цвета, которые я хотел.
asfallows

6
О, мой бог! Радуга на моем терминале. Как раз вовремя, чтобы отпраздновать равенство брака в США!
Гарбелини


22

В Subversion (что будет tmux 1.5) вы также можете использовать цвета #abcdef в шестнадцатеричном стиле, которые сопоставлены с ближайшей записью из 256 цветовых палитр. Вам нужны кавычки, поскольку они обрабатываются как строки, тогда как обычные имена цветов рассматриваются как именованные константы. Также обратите внимание, что трехбуквенное сокращение (# f00) недопустимо.

Пример:

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

1
Ты можешь? Я не могу понять, как ...
Эрик

5
set-option message-bg "#abcdef"; цитаты необходимы.
Chepner

Вы также, кажется, должны использовать полные 6 шестнадцатеричных символов, нет 3-х сочетаний клавиш, т.е. #fffне будет работать, вы должны использовать#ffffff
bschlueter



6

Основываясь на ответе @cYrus, я написал скрипт для разбивки вывода цветов на N столбцов, где N - первый аргумент

# 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

Попробуйте, сохранив его в файле с именем colors.sh, затем ./colors.sh 4

Не забудьте chmod +x colors.shсначала.


3
Скрипт show-256-colors.sh также может быть полезен для отображения цветов фона.
Максим Суслов

Вы должны по умолчанию сказать, по крайней мере, 4 столбца, чтобы отличить его от исходного сценария.
dbkeys
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.