したがって、st端末エミュレータを使用するTERM
ように変数を設定すると、256が表示されますst-256color
。tput colors
しかし、私が実行したいくつかのソースとテストによると、STはTRECOLORをサポートしているようです。バラよりhttps://github.com/termstandard/colors#complete-supporting
多くのプログラムやアプリケーションは色のサポートに依存しているTERM
か、COLORTERM
ほとんど検出できないようですが、これは問題があるようです。
ほとんどのオンライン情報では手動で設定しないことを強くお勧めしますので、TERM
問題がどのように解決されるのかわかりません。
TERM
STが変数を正しく設定しないのは問題ですか?色の機能を確認しないアプリケーションのバグですか?
この場合、トゥルーカラーサポートを検出する理想的な方法は何ですか?
答え1
これはTERM
単純な変数ではありません。どの端末設定を使用するかを指定します。デフォルトでは、端末は多くのエスケープシーケンスを理解します。ただし、異なる端末は同じエスケープシーケンスに対して異なる操作を実行できます。または、同じ操作に別のエスケープシーケンスが必要です。これは、ターミナルエスケープシーケンスデータベースを介して解決されますterminfo
。
/usr/lib/terminfo
(または* nixの好みに応じて)に移動すると、ファイルが実際に指す/usr/share/terminfo
多くのファイル(ディレクトリにグループ化されています)を見つけることができます。TERM
これは、制御シーケンスとエスケープシーケンスのペアのシーケンスで構成されるコンパイルされたバイナリです。
infocmp
terminfoファイルを実行してデコードできます。
man 5 terminfo
制御シーケンスの完全なリストと説明を表示するには、実行してください。
端末に真の色を表示するには、そのファイルを検索するか、terminfo
自分で作成します。その後、を使用して選択できますTERM
。