ncurses透明控制台背景

Jos*_*osh 9 c ncurses

我的控制台启用了透明度,当我运行其他ncurses应用程序时,我看到背景保持透明.我试图让我的应用程序保持透明度,而不是应用深黑色不透明背景.

这就是我到目前为止所做的

start_color();
init_pair(1, COLOR_GREEN, COLOR_BLACK);

attron(COLOR_PAIR(1));
mvprintw(10,10, "Hello");

refresh();
attroff(COLOR_PAIR(1));
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢

Tho*_*key 5

如果您的应用程序调用use_default_colors,ncurses(和NetBSD curses)提供基于 ECMA-48 SGR 39 和 49“默认颜色”的扩展。执行此操作时,ncurses 会避免对前景色和/或背景色与其对终端颜色的假设相匹配的单元格进行显式着色。

还有一个附加功能assume_default_colors可用于改进默认颜色功能,其中终端(例如)在白色背景上使用黑色文本。

您使用的大多数具有颜色功能的终端都支持 SGR 39/49 代码,因此大部分时间都可以使用该功能。

进一步阅读: