I can't get the terminal color palette to work with curses.
import curses
def main(stdscr):
curses.use_default_colors()
for i in range(0,7):
stdscr.addstr("Hello", curses.color_pair(i))
stdscr.getch()
curses.wrapper(main)
This python script yields the following screen:
However, I do have more colors in my gnome-terminal palette. How can I access them within curses?
The following I figured out by experiment on my own pc (Ubuntu 14.04, python 3).
Consider the following testing code.
Add this to your .bashrc
:
# Set proper $TERM if we are running gnome-terminal
if [ "$COLORTERM" == "gnome-terminal" ]
then
TERM=xterm-256color
fi
Put this in a python file and run it.
import curses
def main(stdscr):
curses.start_color()
curses.use_default_colors()
for i in range(0, curses.COLORS):
curses.init_pair(i + 1, i, -1)
try:
for i in range(0, 255):
stdscr.addstr(str(i), curses.color_pair(i))
except curses.ERR:
# End of screen reached
pass
stdscr.getch()
curses.wrapper(main)
Running it will yield the following output.
As you see, the colors pairs 1-16 are the terminal color palette for foreground colors.