为什么Linux终端仿真器不支持全色?


12

我刚刚将gnome-terminal升级为使用256色,但是对于终端仿真器无法支持任何现代桌面环境提供的完整调色板的原因我感到有些困惑。我想这是有技术原因的,但我不知道。


2
“终端”有点模棱两可...您是在谈论在许多Linux / Unix系统上F1到F6上找到的“ 虚拟终端”(“ VT”),还是像在X下使用的“终端仿真器 ”,不必使用VT,或者您指的是实际的“终端”-通过电缆连接到实际计算机的简单键盘屏幕组合(没有或仅具有最小的处理能力)?
巴德·科珀罗德

17
虚拟终端和终端仿真器都模拟具有标准化功能(例如vt100)的老式终端。当这些终端都在附近时,内存不再是一个大问题。因此,您可以在大像素/大字母和多种颜色之间选择,或者在小像素/小字母和几种颜色之间进行选择-任一组合都会占用留出的少量内存来表示屏幕上的点。它们仅用于纯文本程序,与许多颜色相比,适合许多文本(许多长行)更为重要。您无需使用多种颜色来“编码”不同类型的文本(例如,粗体/斜体)。
巴德·科珀罗德

3
@BaardKopperud应该是一个答案。
CVn

2
是的,我建议Baard发表该评论作为答案,因为这基本上是OP所要求的。但最终,有人可以开发出vt100 +(或其他任何产品)并支持他们想要的任何东西。我猜没有人这样做,因为如果您想要令人印象深刻的图形,那么您可能会对在X下而不是在终端下运行它更感兴趣。
Bratchley 2013年

3
有人问“我怎么...?” 而不是“为什么不...?” 对我来说更有意义。答案为“为什么不呢?” 可能是“您未能做到这一点”。

Answers:


7

没有技术原因无法实现。但是,没有很多理由使其不实用。字符在屏幕上所代表的屏幕房地产数量有限,您将很难在屏幕上同时使用超过256种颜色。

据我所知,终端客户端使用索引色彩空间。原因之一是,以最简单的形式,可以用一个字节描述256种索引颜色。RGB颜色空间需要两个或三个字节。考虑到终端流中颜色的编码方式,每种颜色至少应为两个字节+任何智能标记。这可能不是一个大问题,但是在实时网络流上时,它可能会增加延迟,特别是(如果我错了,请纠正我)每个字符都以其自己的包发送。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.