прозрачный консольный фон ncurses - PullRequest
9 голосов
/ 08 марта 2010

В моей консоли включена прозрачность, когда я запускаю другие приложения ncurses, я вижу, что фон остается прозрачным. Я пытаюсь заставить свое приложение сохранять прозрачность и не применять темно-черный непрозрачный фон.

Это то, что я делаю до сих пор

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

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

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

Есть идеи?

Спасибо

1 Ответ

3 голосов
/ 04 апреля 2016

Если ваше приложение вызывает use_default_colors, ncurses (и NetBSD curses ) предоставляют расширение на основе ECMA-48 SGR 39 и 49 «цвета по умолчанию». Когда вы делаете это, ncurses воздерживается от явного окрашивания ячеек, цвет переднего плана и / или фона которых соответствует его предположению о цветах терминала.

Существует дополнительная функция assume_default_colors, которую можно использовать для улучшения функции цветов по умолчанию, когда терминал (например) использует черный текст на белом фоне.

Большинство используемых вами цветных терминалов поддерживают коды SGR 39/49, поэтому эту функцию можно использовать большую часть времени.

Дальнейшее чтение:

...