TTY 中的真彩色支持

TTY 中的真彩色支持

我想知道是否有任何方法可以在 tty 中获得真彩色支持。需要明确的是,我不是指终端模拟器,而是指没有运行显示服务器时获得的实际 tty。

答案1

Linux 控制台支持 ECMA-48 SGR 代码,包括 24 位 RGB 颜色说明符:

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

然而,即使控制台正在使用帧缓冲区,当前的实现也会将其折叠为默认调色板中最接近的十六种颜色。

Linux 中的帧缓冲区本身确实支持 24 位颜色,因此可以编写一个控制台终端模拟器(例如脸书术语),完全支持 24 位 SGR 代码,但我目前不知道有哪一个。

工具如fbi可用于在控制台上显示真彩色图像。源fbidatarball 包括fbcon支持 256 色 SGR 代码:

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

显示 256 色的 fbcon 的屏幕截图

答案2

不。

实际终端运行在视频卡的“文本模式”。有多种文本模式。由于历史原因,最大着色为 16 种颜色。很久以前,文本模式停止改进,取而代之的是图形模式。

因此理论上可以在文本模式下拥有 24 位颜色(真彩色),但您必须为此找到一个非常不寻常的硬件。

相关内容