更改 curses 中的默认颜色
Changing a default color in curses
在使用 curses 库时,我发现如果使用 init_color 更改默认颜色(例如 COLOR_BLUE),则更改后的颜色将在停止和如果我不将其重置回其原始定义,则重新启动我的程序。即使创建一个新的终端 window 在其中 运行 程序,蓝色也会按照原始 windows 中的定义显示。它甚至在 运行 一个完全不同的程序中幸存下来。
这是怎么回事?我原以为会在启动新实例时使用原始定义。我只能推测这些默认颜色缓存在 OS 级别的某个地方。有人可以解释这里发生的事情吗?
我运行在 Centos 7.6 发行版上安装它。
给定终端的颜色是 maintained/cached/whatever。
如果terminal description有这个功能:
orig_colors oc oc Set all color pairs
to the original ones
ncurses 库将作为 exiting curses mode 的一部分发送。
它也 可能 作为 rs1
字符串的一部分由 reset
(or tput reset
) 命令发送。这不是自动的(除了作为初始化和重置字符串的副作用之外,这些命令对颜色没有任何特殊作用)。
xterm 支持将调色板重置为默认值的控制序列,该控制序列已添加到
中的终端描述中
2016-04-23
# + add 'oc' capability to xterm+256color, allowing palette reset for
# xterm -TD
指的是:
oc=\E]104[=11=]7,
使用 OSC 104,它是在 patch #252 (2009/12/7) 中为 xterm 开发的:
add OSC 104, for resetting ANSI/16/88/256 colors to default.
但是,在讨论 CentOS (RHEL) 时,您必须记住,它不会获得诸如此类的更新:
- 软件包信息说它有 8 years ago 几天前的 ncurses 开发快照。
- 您的终端may/may不支持控制序列。如果您使用的是 xterm,没问题。对于其他任何事情(使用那个版本的 CentOS),你都不走运了。 VTE 开发人员(例如 gnome-terminal)复制了 January 2014 中的功能,但是 版本的 VTE 发布为 0.35.2 , 而 CentOS 7 有 0.28.2
在使用 curses 库时,我发现如果使用 init_color 更改默认颜色(例如 COLOR_BLUE),则更改后的颜色将在停止和如果我不将其重置回其原始定义,则重新启动我的程序。即使创建一个新的终端 window 在其中 运行 程序,蓝色也会按照原始 windows 中的定义显示。它甚至在 运行 一个完全不同的程序中幸存下来。
这是怎么回事?我原以为会在启动新实例时使用原始定义。我只能推测这些默认颜色缓存在 OS 级别的某个地方。有人可以解释这里发生的事情吗?
我运行在 Centos 7.6 发行版上安装它。
给定终端的颜色是 maintained/cached/whatever。
如果terminal description有这个功能:
orig_colors oc oc Set all color pairs
to the original ones
ncurses 库将作为 exiting curses mode 的一部分发送。
它也 可能 作为 rs1
字符串的一部分由 reset
(or tput reset
) 命令发送。这不是自动的(除了作为初始化和重置字符串的副作用之外,这些命令对颜色没有任何特殊作用)。
xterm 支持将调色板重置为默认值的控制序列,该控制序列已添加到
中的终端描述中
2016-04-23
# + add 'oc' capability to xterm+256color, allowing palette reset for
# xterm -TD
指的是:
oc=\E]104[=11=]7,
使用 OSC 104,它是在 patch #252 (2009/12/7) 中为 xterm 开发的:
add OSC 104, for resetting ANSI/16/88/256 colors to default.
但是,在讨论 CentOS (RHEL) 时,您必须记住,它不会获得诸如此类的更新:
- 软件包信息说它有 8 years ago 几天前的 ncurses 开发快照。
- 您的终端may/may不支持控制序列。如果您使用的是 xterm,没问题。对于其他任何事情(使用那个版本的 CentOS),你都不走运了。 VTE 开发人员(例如 gnome-terminal)复制了 January 2014 中的功能,但是 版本的 VTE 发布为 0.35.2 , 而 CentOS 7 有 0.28.2