Nilai $TERM
tidak memberikan banyak informasi tentang jumlah warna yang didukung. Banyak terminal mengiklankan diri mereka sebagai xterm
, 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 warna c
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):
printf '\e]4;%d;?\a' 42
if read -d $'\a' -s -t 1; then … # color 42 is supported
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.