TTYのトゥルーカラーサポート

TTYのトゥルーカラーサポート

ttyで実際の色をサポートする方法があるかどうか疑問に思います。明確に言えば、ターミナルエミュレータを話すのではなく、ディスプレイサーバーが動作していないときに得られる実際のttyを言うことです。

答え1

Linuxコンソール24ビットRGBカラー指定子を含むECMA-48 SGRコードをサポートします。

for (( i = 0; i < 256; i++ )); do
    printf '\e[38;2;0;0;%dma\e[0m' "$i"
done
printf '\n'

ただし、コンソールがフレームバッファを使用しても、現在の実装ではこれをデフォルトのパレットに最も近い16色に縮小します。

Linuxのフレームバッファはデフォルトで24ビットカラーをサポートしているため、コンソールターミナルエミュレータを作成できます(例:Facebookの用語)は24ビットSGRコードを完全にサポートしていますが、現在は1つもわかりません。

次のツールfbiコンソールに真のカラー画像を表示するために使用できます。ソースfbidaターボールにはfbcon256色SGRをサポートするコードが含まれています。

for (( i = 0; i < 256; i++ )); do
    printf '\e[38;5;%dma\e[0m' "$i"
done
printf '\n'

256色を示すfbconのスクリーンショット

答え2

いいえ。

実際の端末は以下で実行されます。ビデオカード用の「テキストモード」。いくつかのテキストモードがあります。歴史的な理由から、最大色は16色です。長い間、テキストモードは改善を止め、グラフィックモードに置き換えられました。

したがって、理論的にはテキストモードで24ビットカラー(トゥルーカラー)を持つことは可能ですが、これには非常に珍しいハードウェアを見つける必要があります。

関連情報