
私の端末エミュレータがサポートしている色の数を確認するための確実な方法はありますか?
echo $TERM
印刷さxterm
れた場合明らかに私の端末エミュレータがいくつの色をサポートしているか教えてください。この情報をどのように確実に確認できますか?
答え1
の値は、$TERM
サポートされている色の数に関する多くの情報を提供しません。多くの端末は、自分自身をxterm
さまざまな色(2、8、16、88、256が共通の値)で宣伝してサポートできます。
以下を使用して各色の値を照会できます。OSC 4 ; c ; ? BEL
制御シーケンス。色番号付けがサポートされており、端末がこのc
制御順序を理解している場合、端末は色値で応答します。カラー番号付けがサポートされていない場合、または端末がこの制御順序を理解していない場合、端末は応答しません。以下は、カラー42がサポートされているかどうかを問い合わせるbash / zshスニペットです(必要に応じてターミナルに/からリダイレクト)。
printf '\e]4;%d;?\a' 42
if read -d $'\a' -s -t 1; then … # color 42 is supported
広く使用されている端末のうち、xtermおよびVTEライブラリベースの端末(Gnome-terminal、Terminator、Xfce4-terminalなど)はrxvt、konsole、screen、およびtmuxをサポートしていません。
より直接的な方法はわかりません。
答え2
あなたはそれを使用することができます
$ tput colors
ncurses-bin
私のDebianインストールでは、tputはデフォルトのインストールパッケージの一部です。
答え3
Perlスクリプトがあります。256色2.pl、端末にすべての色が表示されます。