如何使终端背景亮白色?

如何使终端背景亮白色?

我在用:

setterm --foreground blue --background white --blink on

结果是文本在亮白色上显示为蓝色。但是,文本周围的背景是灰色的。如何让整个背景变成亮白色?

答案1

这取决于终端。通常,您不能使用“ANSI 颜色”来执行此操作,因为(而一些终端将粗体视频属性解释为“明亮的颜色”),没有标准的方法来改变背景的亮度。

某些终端支持转义序列来更改调色板终端使用的独立于“ANSI 颜色”。例如,Xterm 使用动态色彩功能,它允许更改默认的前景色和背景色(以及一些其他可能性,例如光标颜色)。这些总结在操作系统控制的部分XTerm 控制序列:

OSC Ps;铂ST
OSC Ps;铂贝尔
          设置文本参数。对于颜色和字体,如果 Pt 是“?”,则
          控制序列引起一个响应,其中包括
          trol 序列将设置相应的值。这
          dtterm 控制序列允许您确定图标名称
          和窗口标题。
...
          可以使用 1 0 设置或查询的 10 种颜色(如下)
          到 1 9 表示动态颜色,因为相应的
          ing 控制序列是设置 xterm 的第一个方法
          动态颜色,即在启动后。他们不是
          与 ANSI 颜色相同。这些控件可能被禁用
          使用allowColorOps 资源。至少有一个参数是
          预计 Pt。每个连续的参数都会改变下一个参数
          列表中的颜色。 Ps的值告诉了起点
          在列表中。颜色由名称或 RGB 指定
          根据 XParseColor 的阳离子。
...
            Ps = 1 0 -> 将 VT100 文本前景色更改为 Pt。
            Ps = 1 1 -> 将 VT100 文本背景颜色更改为 Pt。
            Ps = 1 2 -> 将文本光标颜色更改为 Pt。
            Ps = 1 3 -> 将鼠标前景色更改为 Pt。
            Ps = 1 4 -> 将鼠标背景颜色更改为 Pt。
            Ps = 1 5 -> 将 Tektronix 前景色更改为 Pt。
            Ps = 1 6 -> 将 Tektronix 背景颜色更改为 Pt。
            Ps = 1 7 -> 将突出显示背景颜色更改为 Pt。
            Ps = 1 8 -> 将 Tektronix 光标颜色更改为 Pt。
            Ps = 1 9 -> 将突出显示前景色更改为 Pt。

由于缺乏该功能,其他一些终端允许更改“ANSI 颜色”的值。同样,在 xterm 中,仍在操作系统控件集中:

          Ps=4; C;规格 -> 将颜色编号 c 更改为颜色规格 -
          由规格确定。这可以是名称或 RGB 规范
          XParseColor。可以给出任意数量的 c/spec 对。这
          颜色编号对应 ANSI 颜色 0-7,它们明亮
          版本 8-15,以及 88 色的其余部分(如果支持)
          或 256 色表。

虽然其他一些终端仿真器可能实现其中之一或两者,但通常它们不会对此进行记录。您必须进行试验以确定它们是否适用于其他终端。

与后者相同(修改调色板中的值),Linux 控制台支持可以更改其 16 色调色板的控制序列。 Xterm 不支持该控件,因为它不遵循格式标准 (ECMA-48)。

xterm控制程序支持其中一些转义序列,特别是动态色彩。但你可以制作一个脚本,例如,

#!/bin/sh
printf '\033]%s;%s\007' $1 $2

并使用该脚本设置颜色

myscript 11 rgb:ff/ff/ff

进一步阅读:

答案2

根据您的终端模拟器,可能可以在终端的配色方案中重新定义颜色“白色”:

echo -en "\e]PFffffff"
setterm --foreground blue --background white --blink on

答案3

如果你的终端背景是深色的,我认为你可以使用以下命令轻松地在整个终端上获得白色背景:

setterm --inversescreen on

相关内容