From https://invisible-island.net/ncurses/ncurses.faq.html:
Если описание вашего терминала не содержит возможности orig_pair или orig_colors, вы не сможете сбросить цвета до состояния pre-curses. Это происходит, например, с aixterm.
Однако, если ваш терминал поддерживает сброс цветов до состояния по умолчанию, ncurses будет использовать это при выходе из режима Curses. Типы терминалов, которые делают это, включают консоль Linux, rxvt и XFree86 xterm.
Чтобы узнать, может ли ваш терминал сбрасывать цвета, выполните:
infocmp -L | grep orig
Mine может сбрасывать только пары, но не цвета. Я не нашел API, чтобы проверить это в самой программе, но нет реальной причины проверять это, если вы не реализовали несколько способов работы с цветами. У меня, кстати, есть, и я не доволен ни тем, ни другим.
Я пробовал переопределить цвета выше в палитре, но мне все равно удалось изменить цвета для других программ. Я по-прежнему считаю разумным избегать 16 первых цветов, но похоже, что нет цветов, которые можно было бы безопасно изменить.
Я также пробовал использовать цвета по умолчанию из https://jonasjacek.github.io/colors/, но я не мог добиться желаемого эффекта. Возможно, я мог бы упростить тему и при этом сделать ее красивой, но я не мог воспроизвести тот вид, к которому стремился.
Похоже, лучшее решение - создать красивую тему с цветами по умолчанию, если это невозможно, и в этом случае вам просто придется признать, что в результате другие программы могут выглядеть не очень хорошо. В любом случае открыть новый терминал не так уж сложно, и тогда ваши цвета снова будут отсортированы.