[英]How to get 256 color support for FreeBSD headless console/terminal?
如何使用控制台/终端在 FreeBSD 13 无头机器上获得 256 色支持?
我在机器上安装了一个矫枉过正的 GPU“AMD Radeon PRO WX 2100”。
基本上想避免使用桌面环境,因为我只需要使用纯粹基于“文本”的机器。
该机器将用于显示实时股票定价,我想使用颜色突出显示使基于文本的实时图表终端/控制台应用程序更加用户友好和可读。
我找不到任何可理解或简单的指南来这样做,也不知道从哪里开始。
我正在使用 ncurses 来制作应用程序。
当我在控制台输入tput color
时,我得到一个返回值80
。
OP 误用了“无头”一词来表示非桌面,但从对 ncurses 的引用中可以清楚地看出其意图。 这指的是 FreeBSD 控制台中的文本模式。
简而言之:你不能那样做。
更长:没有 X(桌面),除非你要开发一个终端模拟器,在 FreeBSD 上使用 256 色运行 ncurses,否则你就不走运了。 参见例如concol
(也许是一个起点,但没有什么可以与 ncurses 一起使用)。
许多用户被 FreeBSD 开发人员选择将较新的控制台终端仿真器的TERM
变量设置为“xterm”的选择误导了,假设它可以显示 256 色。 这在 XTerm 常见问题解答“我可以通过它的数字设置颜色吗”的末尾提到,其中详细解释了 256 色功能是如何产生的。 teken(FreeBSD 控制台模拟器的专有名称)的 屏幕截图显示它无法呈现 256 色。 除了更改调色板以将其移向红色之外,它自 2014 年以来没有变化。
FreeBSD 文档将teken称为“vt”。 与旧的“sc”(syscons)一样,它仅适用于 VGA 颜色(8 种 ANSI 颜色与明亮/粗体属性相结合以模拟 16 种颜色)。
FreeBSD 控制台终端仿真器记录在 FreeBSD 控制台仿真器的 ncurses 终端数据库部分。 特别是,在teken-2018
条目之前,对此有很长的评论。
关于这一点:
当我在控制台输入 tput color 时,我得到一个值 80 的返回值。
这是 FreeBSD 配置的错误特征。 它的系统实用程序tput
模仿了旧的基于 termcap 的实用程序(参见手册页),Keith Bostic 在 1989 年编写的模仿 AT&T tput
实用程序。 这实际上已经晚了几年才能被视为“原始termcap”,但大多数用户不知道其中的区别。 无论如何,作为一个termcap实用程序(表面上),只使用该color
的前两个字符,给出co
(termcap 等效于columns
)。 colors
的术语名称是Co
(参见手册页):
max_colors colors Co maximum number of
colors on screen
termcap 应用程序无法理解 ncurses 中用于颜色的终端描述。 这发生在 FreeBSD 控制台中的某种工作(16 色)中,因为在外观下面是基于 terminfo 的 ncurses 库。
一些用户对文本和图形 VGA 模式之间的区别感到困惑。 非桌面环境使用文本模式,它提供 3 位(8 种文本颜色)和 1 位(通常被视为粗体),形成 16 种颜色。
在图形模式下,可以使用 256 色的闪屏。 这与文本模式无关。
vidcontrol
程序显示当前视频模式的可用颜色。 它可以列出可用的模式,如此处所示。 只有少数可用于文本(所有这些都是如前所述的 VGA):
它还可以显示不同版本的 FreeBSD 具有大不相同的视频功能的警告。 这是来自 FreeBSD 11 的屏幕截图
自由BSD 12
和 FreeBSD 13(其中 vidcontrol 没有选择):
也许 FreeBSD 13 缺少模式信息表明有人打算让它使用其中一种图形模式,如手册页中所暗示的那样。 但是调色板还没有改进。 手册页例如说
注意:vt VGA 硬件驱动程序不支持调色板配置。
进一步阅读:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.