TERM変数が端末エミュレータのTrue Colorサポートを反映していない理由

TERM変数が端末エミュレータのTrue Colorサポートを反映していない理由

したがって、st端末エミュレータを使用するTERMように変数を設定すると、256が表示されますst-256colortput colors

しかし、私が実行したいくつかのソースとテストによると、STはTRECOLORをサポートしているようです。バラよりhttps://github.com/termstandard/colors#complete-supporting

多くのプログラムやアプリケーションは色のサポートに依存しているTERMか、COLORTERMほとんど検出できないようですが、これは問題があるようです。

ほとんどのオンライン情報では手動で設定しないことを強くお勧めしますので、TERM問題がどのように解決されるのかわかりません。

TERMSTが変数を正しく設定しないのは問題ですか?色の機能を確認しないアプリケーションのバグですか?

この場合、トゥルーカラーサポートを検出する理想的な方法は何ですか?

答え1

これはTERM単純な変数ではありません。どの端末設定を使用するかを指定します。デフォルトでは、端末は多くのエスケープシーケンスを理解します。ただし、異なる端末は同じエスケープシーケンスに対して異なる操作を実行できます。または、同じ操作に別のエスケープシーケンスが必要です。これは、ターミナルエスケープシーケンスデータベースを介して解決されますterminfo

/usr/lib/terminfo(または* nixの好みに応じて)に移動すると、ファイルが実際に指す/usr/share/terminfo多くのファイル(ディレクトリにグループ化されています)を見つけることができます。TERMこれは、制御シーケンスとエスケープシーケンスのペアのシーケンスで構成されるコンパイルされたバイナリです。

infocmpterminfoファイルを実行してデコードできます。

man 5 terminfo制御シーケンスの完全なリストと説明を表示するには、実行してください。

端末に真の色を表示するには、そのファイルを検索するか、terminfo自分で作成します。その後、を使用して選択できますTERM

関連情報