Bagaimana cara kerja palet warna tmux?

140

Saya mencoba untuk mengatur sesuatu menjadi abu-abu, tetapi tidak tahu caranya. Satu-satunya info di halaman manual tentang warna yang dapat saya temukan adalah:

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.

Saya juga menemukan posting blog yang beralih melalui warna, tapi saya tidak bisa mengerti, dan tidak ingin duduk di terminal sepanjang hari menebak angka warna sampai satu berfungsi.

lawrence
sumber

Jawaban:

223

Anda bisa mendapatkan daftar dengan bashcuplikan ini :

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

Kemudian gunakan colourxxxdengan tmux.

cYrus
sumber
18
gunakan $ reset untuk mendapatkan kembali warna prompt Anda:>
lkraav
mungkin Anda membutuhkan tiga digit warna? Script ini menghasilkan seperti color12tapi itu tidak diterima oleh tmux sebagai warna yang valid.
artfulrobot
6
My tmux(1.6) menerima warna genap seperti colour12(mind the "u").
cYrus
1
Jawaban ini masih membantu! Membantu saya memilih warna yang saya inginkan.
asfallows
6
ya Tuhan! Pelangi di terminal saya. Tepat pada waktunya untuk merayakan kesetaraan pernikahan di AS!
garbelini
75

Saya menemukan gambar ini mencerahkan.

masukkan deskripsi gambar di sini

Eddie Parker
sumber
16
Anda dapat membuatnya denganfor 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

Dalam Subversion (apa yang akan menjadi tmux 1.5) Anda juga dapat menggunakan warna #abcdef hex-style yang dipetakan ke entri palet 256 warna terdekat. Anda perlu mengutip karena diperlakukan sebagai string, sedangkan nama warna biasa diperlakukan sebagai konstanta bernama. Perhatikan juga steno 3 huruf (# f00) tidak valid.

Contoh:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb
Bob
sumber
1
Bisakah kamu? Saya tidak bisa melihat bagaimana ...
Eric
5
set-option message-bg "#abcdef"; Kutipan diperlukan.
chepner
Anda juga tampaknya harus menggunakan 6 karakter hex penuh, tidak ada 3 pintas char yaitu #ffftidak akan berfungsi, Anda harus menggunakan#ffffff
bschlueter
6

Membangun jawaban @cYrus, saya menulis sebuah skrip untuk memecah keluaran warna menjadi sejumlah N kolom, di mana N adalah argumen pertama

# 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

Cobalah dengan menyimpannya ke file bernama colors.sh, lalu ./colors.sh 4

Jangan lupa chmod +x colors.shdulu.

Andy Terra
sumber
3
Script show-256-colors.sh dapat berguna untuk menampilkan warna latar belakang juga.
Maxim Suslov
Anda harus secara default mengatakan, setidaknya 4 kolom, untuk membedakannya dari skrip asal.
dbkeys