When I run emacs -nw
in an X terminal window, and I ask for M-x list-colors-display
, I am offered a paltry palette:
black
red
green
yellow
blue
magenta
cyan
white
I am told it is possible to get 265 colors. Setting the TERM
environment variable to xterm-256color
does not do the job. What does?
According to this you need ncurses-term
library in addition to setting TERM
to xterm-256color
.
Okay, this has some other things to try like :
The xterm in Ubuntu Edgy does not advertise 256 color support by
default. To fix this you need to install a 256 color terminfo entry,
and tell xterm to use it:
apt-get install ncurses-term
echo XTerm.termName: xterm-256color \
>>~/.Xdefaults
xrdb -merge ~/.Xdefaults
and :
So you need a file term/screen-256color.el in your load-path. Emacs
22 expects it to contain a terminal-init-screen defun. Emacs 21
expects it to contain a bunch of top-level forms. Here's what I use:
;;; This is for GNU Emacs 22
(defun terminal-init-screen ()
"Terminal initialization function for screen."
;; Use the xterm color initialization code.
(load "term/xterm")
(xterm-register-default-colors)
(tty-set-up-initial-frame-faces))
;;; This is for GNU Emacs 21
(if (= 21 emacs-major-version)
(load "term/xterm-256color"))
For Emacs 21, you also need to install the xterm-256color.el file from
http://www.splode.com/~friedman/software/emacs-lisp/src/term/xterm-256color.el
Setting TERM
to xterm-256color
is what you want to do. Also, Emacs 22 (at least) didn't need any special config from me in order to display 256 colors. See this related question. With the ncurses-term
package installed, I was able to get 256 colors on Emacs using the vanilla xterm that came with my version of Ubuntu (Interpid, in this case, but I'm guessing it'll be fine on earlier versions). I also got 256 colors using Gnome Terminal, Konsole, and PuTTY, for what that's worth.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With