如何获得 FreeBSD 无头控制台/终端的 256 色支持?

问题描述 投票:0回答:1

如何使用控制台/终端在 FreeBSD 13 无头机器上获得 256 色支持?

我的机器上安装了一个超级 GPU“AMD Radeon PRO WX 2100”。

基本上想避免桌面环境,因为我只需要使用纯粹基于“文本”的机器。

该机器将用于显示实时股票定价,我想使用颜色突出显示来使基于文本的实时图表终端/控制台应用程序更加用户友好和可读。

我找不到任何可理解或简单的指南来做到这一点,并且不知道从哪里开始。

我正在使用 ncurses 来制作应用程序。

当我在控制台中输入

tput color
时,我会返回一个值
80

terminal colors freebsd ncurses terminfo
1个回答
-1
投票

OP 误用了非桌面术语“无头”,但从对 ncurses 的引用中可以清楚地看出其意图。这是指 FreeBSD 控制台中的文本模式。

简短:你不能这样做。

更长:如果没有 X(桌面),除非您要开发一个终端模拟器来在 FreeBSD 上使用 256 色运行 ncurses,否则您就不走运了。例如,参见

concol
(也许是一个起点,但没有任何东西可以实际与 ncurses 一起使用)。

许多用户被 FreeBSD 开发人员选择将较新的控制台终端仿真器的

TERM
变量设置为“xterm”所误导,假设它可以显示 256 种颜色。在 XTerm FAQ “我可以通过颜色设置颜色吗” 的末尾提到了这一点,其中详细解释了 256 色功能是如何产生的。有一个 teken(FreeBSD 控制台模拟器的正确名称)的screenshot,显示它无法渲染 256 色。除了更改调色板以将其转向红色之外,自 2014 年以来一直没有变化。

FreeBSD 文档将 teken 称为“vt”。与旧的“sc”(syscons)一样,它仅适用于 VGA 颜色(8 种 ANSI 颜色与明亮/粗体属性相结合来模拟 16 种颜色)。

FreeBSD 控制台终端仿真器记录在 FreeBSD 控制台 仿真器的 ncurses 终端数据库部分中。特别是,在

teken-2018
条目之前对此有一个很长的评论。


关于这个:

当我在控制台中输入 tput color 时,我得到一个返回值 80。

这是 FreeBSD 配置的一个缺陷。它的 system 实用程序

tput
模仿了旧的基于 termcap 的实用程序(请参阅手册页)Keith Bostic 在 1989 年模仿 AT&T
tput
实用程序。这实际上晚了几年才被视为“原始 termcap”,但大多数用户不知道其中的区别。无论如何,作为一个 termcap 实用程序(表面上),仅使用
color
的前两个字符,给出
co
(termcap 相当于
columns
)。
colors
的 termcap 名称为
Co
(请参阅手册页):

      max_colors                  colors    Co     maximum number of
                                                   colors on screen

termcap 应用程序无法理解 ncurses 中用于颜色的终端描述。这种情况发生在 FreeBSD 控制台中的某种工作(针对 16 种颜色)中,因为它的外观下面是基于 terminfo 的 ncurses 库。


一些用户对文本和图形 VGA 模式之间的区别感到困惑。非桌面环境使用文本模式,它提供 3 位(8 种文本颜色)与一位(通常被视为粗体)相结合,形成 16 种颜色。

图形模式下,可以使用具有256种颜色的闪屏。这与 text 模式无关。

vidcontrol
程序显示当前视频模式的可用颜色。它可以列出可用的模式,如下所示。只有少数可用于 text(所有这些都是如上所述的 VGA):

它还可以显示颜色,但需要注意的是不同版本的 FreeBSD 具有截然不同的视频功能。这是 FreeBSD 11 的屏幕截图

FreeBSD 12

和 FreeBSD 13(其中 vidcontrol 不提供任何选择):

也许 FreeBSD 13 缺乏模式信息表明有人打算使其与其中一种图形模式一起工作,如手册页中所暗示的那样。但调色板还没有改进。手册页举例说

注意:vt VGA 硬件驱动不支持调色板配置。

进一步阅读:

© www.soinside.com 2019 - 2024. All rights reserved.