Currently there are 3 color schemes to choose from:
Other tools, e.g. GNU ls, manage to provide a default color scheme that's legible in both terminals with white and black backgrounds.
I would like to see ipython adopt similar default color scheme.
As far as I understand 2 bits are required:
This would be very nice to have, so by all means if you can whip up a PR, we'll be happy to review it... We'd want to test it carefully for usability on white, light yellow and black terminals, but if it really works well across all three, it could be a nice new default (leaving the others available for those who want them).
Two cents: Black/White contrast is not the only kind of contrast found in the colour spectrum. Text that has the same b/w balance can be perfectly readable if you use opposite colours wisely. Notice how Solarized is readable while avoiding overuse of b/w contrast.
Another way of dealing with this issue would be just to make it easier for the user to customise the colour scheme, rather than just revamping the default ones. As it is, to change the colour scheme I don't just have to change the definitions at IPython.utils.coloransi, but I have to make sure IPython.core.prompts, IPython.core.excolors, IPython.utils.PyColorize and IPython.core.oinspect all use the colours I defined and where I want them to. A central file with all the colours definitions would simplify that a lot. (Please note that I'm working on IPython-0.13)
Perhaps a 3rd party package can be used, e.g.:
or perhaps pygments + solarized? not clear if "ansi" output is well supported though, these packages tend to slant towards html.