Owner

Current status

Detailed Description

Many terminal programs (like vim and ls for example) can take advantage of 256 color terminals,
and all xterms I know of support at least 256 colors and sometimes more.
So let's break through the artificial 8 color limit!

Also when preparing this page, while searching the net I noticed that
Mac OS X Terminal's default $TERM value is xterm-256color since Lion 10.7
That will ease some of the compatibility issues noted below.

You can see vim's default appearance using the above expanded palette at:

Benefit to Fedora

By having 32 times more colors available gives much better scope for using more appropriate default colors.
For example, users could set their terminal backgrounds to dark or light and have ls use colors
that are appropriate to either.

Scope

This will be mainly configuration changes.
After some discussion it was thought best to update each terminal to adjust the TERM environment variable,
to indicate that 256 colors are supported.

Here are notes on setting $TERM on various terminals:
setting 256 colors in various terminals
Note there was the fact that it's not configurable in gnome-terminal (vte) yet.
There is a related bug to set $TERM to 'gnome' 'gnome-256color',
though we probably should stick to 'xterm' to reduce remote interop issues
(ubuntu precise for example doesn't support TERM=gnome)

For quick testing and development you can also use this /etc/profile.d/256color.sh file.
That keeps the config central, and set things up in a standard way such that LS_COLORS will
be set appropriately.

As an optional additional improvement, we could adjust the 256 color values used in ls by
editing the /etc/DIR_COLORS.256color file in the coreutils package, as it
doesn't take as much advantage of the color range as it could.

As the default vim color scheme has some issues in 256 colors, we should also provide updates on this. Search, SpellLocal, ColorColumn and MatchParen are hardly readable (see :hi under vim). We should also avoid uses of bold attribute in vim highlighting as it can look bad especially at smaller font sizes.
There are only a couple of uses of bold in the 256 color scheme so they can be easily avoided.
Bold should be left in the vim 8 color scheme due to the effective doubling of colors that provides.

User Experience

Dependencies

Contingency Plan

Documentation

Caveats

The linux terminal (i.e. those on virtual consoles) doesn't support 256 colors and will break if applications send 256 color codes to it. This is handled in the config file above.

Local xterms support this feature fine, though once you connect to other systems with SSH (which propagates the TERM environment variable), they will have to support the $TERM, or otherwise you will have a degraded experience. Debian for example traditionally didn't support xterm-256color unless the ncurses-term package was installed. Note ubuntu 12.04 at least does support xterm-256color so this is improving. Also as noted above Mac OS X 10.7 defaults to xterm-256color and so they're paving the way somewhat in this regard, so there should be less issues in connecting to older systems going forward.

Release Notes

Probably worth mentioning the case where users may need to reset their TERM to 'xterm' etc. when sshing to older systems.
This issue is well known and similar to where you need to reset TERM on some systems when using the rxvt-unicode terminal for example.
Something simple like this should suffice:

If you receive "unknown" or "not fully functional" terminal status messages when using remote systems over ssh,
when you didn't before, then reset the TERM environment variable to 'xterm' for the remote system.