Apakah ada cara yang dapat diandalkan untuk memeriksa berapa banyak warna yang didukung emulator terminal saya?
Jika echo $TERM
mencetak xterm
, apakah itu dengan tegas memberi tahu saya berapa banyak warna yang didukung emulator terminal saya? Bagaimana saya bisa memeriksa informasi ini andal?
terminal-emulator
Amelio Vazquez-Reina
sumber
sumber
Jawaban:
Nilai
$TERM
tidak memberikan banyak informasi tentang jumlah warna yang didukung. Banyak terminal mengiklankan diri mereka sebagaixterm
, dan mungkin mendukung sejumlah warna (2, 8, 16, 88 dan 256 adalah nilai umum).Anda dapat meminta nilai setiap warna dengan
OSC 4 ; c ; ? BEL
urutan kontrol . Jika nomor warnac
didukung, dan jika terminal memahami urutan kontrol ini, terminal akan menjawab kembali dengan nilai warna. Jika nomor warna tidak didukung atau jika terminal tidak memahami urutan kontrol ini, terminal tidak menjawab apa pun. Berikut cuplikan bash / zsh untuk menanyakan apakah warna 42 didukung (dialihkan ke / dari terminal jika perlu):Di antara terminal populer, xterm dan terminal berdasarkan perpustakaan VTE (Gnome-terminal, Terminator, Xfce4-terminal, ...) mendukung urutan kontrol ini; rxvt, konsole, layar dan tmux tidak.
Saya tidak tahu cara yang lebih langsung.
sumber
read -d $'\a' -s -t 1
?\a
(karakter bel), tanpa input gema, dengan batas waktu 1 detik.tput colors
menanyakan basis data terminfo. Kemungkinannya adalah yang Anda milikiTERM=xterm
. Xterm dapat mendukung setidaknya 2, 8, 16, 88 atau 256 warna tergantung pada versi dan opsi kompilasi dan run-time, tetapi database terminfo hanya dapat menyimpan satu nilai. Anda dapat mengatur misTERM=xterm+256color
, tetapi kemudian Anda akan merasa terganggu ketika Anda masuk ke mesin yang tidak memiliki entri ini di database termcap / terminfo-nya.printf … >/dev/tty
) dan kemudian membaca dari terminal (read … </dev/tty
). Xterm meresponsOSC 4; …; ? BEL
urutan tersebut dengan menyuntikkan penekanan tombol.Ada skrip perl, 256colors2.pl , yang akan menampilkan semua warna pada terminal Anda.
sumber
Anda dapat gunakan
Pada debian saya menginstal tput adalah bagian dari
ncurses-bin
paket yang diinstal secara default.sumber
TERM
, bukan berapa banyak warna yang benar-benar dapat didukung dengan tepatTERM