Dans ncurses, existe-t-il un moyen simple d’utiliser chaque combinaison des 8 couleurs de premier plan et d’arrière-plan standard?

J’ai remarqué que (au moins sur ma plate-forme) COLOR_PAIRS est 64. J’ai lu que la paire de couleurs 0 est toujours la couleur de premier plan et d’arrière-plan par défaut et ne peut pas être modifiée. Avec 8 couleurs par défaut, cela signifie que nous pouvons définir explicitement chaque combinaison de ces 8 couleurs, sauf une. C’est un problème pour moi, car l’utilisateur n’a pas forcément un terminal blanc sur noir comme je le fais. Un autre problème potentiel pour moi est que j’ai un terminal transparent et que la paire de couleurs 0 conserve l’arrière-plan transparent, tandis que l’utilisation d’une paire de couleurs explicites avec un arrière-plan noir ne semble pas transparente sur mon terminal.

Existe-t-il un moyen d’utiliser les 64 combinaisons de couleurs qui ne sont peut-être pas mentionnées dans la documentation de merde pour ncurses que je continue de trouver sur Internet? Ou est-il prudent de modifier COLOR_PAIRS à 128 avant d’initialiser la bibliothèque pour étendre le nombre de paires de couleurs que je peux utiliser? Si je ne trouve pas de solution raisonnable, je peux simplement utiliser Termbox dans mon programme. Je voudrais utiliser ncurses pour son large support et le fait que la plupart des plates-formes de type Unix l’incluent par défaut, mais Termbox a une API plus simple.

Avec ncurses6 ( août 2015 ), la configuration par défaut prévoit 256 couleurs, 32767 paires de couleurs. Si vous avez une version actuelle de ncurses, vous pouvez facilement obtenir 64 paires de couleurs.

TermBox peut avoir une API plus simple, mais (lire le code source ) est moins capable, et apparemment pas en développement actif (dernier changement de code source il y a 8 mois).