2010-03-08 83 views
8

我的控制檯已啓用透明度,當我運行其他ncurses應用程序時,我看到背景保持透明。我試圖讓我的應用保持透明度,而不是應用深黑色不透明背景。ncurses透明控制檯背景

這是我在做什麼,到目前爲止

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

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

refresh(); 
attroff(COLOR_PAIR(1)); 

任何想法?

感謝

+6

FIXED:use_default_colors(); – Josh 2010-03-08 18:01:03

+0

回答你自己的問題是被允許和鼓勵的。你甚至可能會得到一些代表。 – 2010-03-08 18:13:17

+0

指出,以便可以正確回答。 – 2016-04-03 19:59:00

回答

2

如果您的應用程序調用use_default_colors,ncurses的(和NetBSD curses)提供基於ECMA-48 SGR 39和49 「默認顏色」 的延伸。當你這樣做時,ncurses避免了明確着色其前景和/或背景顏色與其有關終端顏色假設相匹配的單元格。

還有一個附加功能assume_default_colors可用於改善終端在白色背景上使用黑色文本(例如)時的默認顏色功能。

您所使用的大多數支持彩色功能的終端都支持SGR 39/49代碼,因此大部分時間都可以使用該功能。

進一步閱讀: