Emacs doesn't want to support 256 colors in terminal window

Paul B. Mahol onemda at gmail.com
Fri Feb 27 16:52:25 PST 2009


On 2/27/09, Grzegorz Junka <xgjx at poczta.onet.pl> wrote:
> Paul B. Mahol wrote:
>> On 2/27/09, Grzegorz Junka <cv at gjunka.com> wrote:
>>
>>> Hi,
>>> I hope someone will be able to help with this. I've already checked all
>>> resources I could google but still can't get it to work. Basically my
>>> terminal can show more than 16 colors but emacs doesn't want to use
>>> these colors.
>>>
>>> I run FreeBSD (7.1-RELEASE) as a virtual machine and use it without any
>>> X interface, only through ssh from a Windows machine (the host). I have
>>> set up both putty and ssh in cygwin to report term type as
>>> 'xterm-256color' (putty in the configuration window and xterm using -tn
>>> command line parameter).
>>>
>>> That part works fine because I can run scripts available on the internet
>>> (256colors2.pl, colortest), which surely show more than 8 colors in my
>>> terminal window. The problem is when I run emacs and type: M-x
>>> list-colors-display. Emacs shows only boring 8 colors (not even 16).
>>>
>>> A bit about my configuration. Emacs was compiled without X11 support
>>> (from ports emacs-nox11-22.3). I also don't have xterm installed. I
>>> tried to set env variable TERM=xterm-256color but it didn't help. There
>>> is a special note about using terms in emacs in
>>> "/usr/local/share/emacs/22.3/lisp/term/README" I unpacked xterm.el.gz
>>> from that folder and tried to supply it as term/xterm-256color.el or
>>> term/xterm.el to emacs, but that also didn't work.
>>>
>>> It is interesting to note, that when I type: tput color I get different
>>> values depending on the user and terminal:
>>>
>>> user grzesiu, putty, TERM=xterm-256color, tput colors: 114
>>> the same user, putty and TERM value, but tput colors: 123, another trial
>>> and output is 80
>>> user root, putty, TERM=xterm, tput colors: 184
>>> the same user and putty, but TERM=xterm-256color, tput colors: 115
>>> user grzesiu, ssh from cygwin, TERM=xterm-256color, tput colors: 139
>>>
>>> I don't understand these values because when I run these scripts above I
>>> don't see any difference in colors shown (subjectively). In neither of
>>> these configurations emacs show more than 8 colors. Any ideas or
>>> suggestions greatly appreciated.
>>>
>>
>> This looks like emacs problem. Are you sure that emacs was compiled
>> with 256 color support? (at least I know that elinks can be configured
>> to support 88 and/or 256 and/or real colors)
>> Also is there some kind of termcap option in emacs to be changed/read?
>> I dont use emacs but in vim:
>> :set t_Co=256
>> will show 256 colors if terminal supports it.
>> Actually if t_Co termcap setting is N, vim will not try to show more
>> than N colors even if terminal supports X(>N) colors.
>>
>>
> FreeBSD port doesn't allow to configure Emacs in any way, neither from
> the original port, nor from the nox11 version. I don't think there is
> any special option for emacs to show 256 colors. Wherever I could find
> some information about this, people were saying that Emacs version >=22
> supports 256 colors without any additional configuration. As I
> mentioned, Emacs not only doesn't show 256 colors, but not even 16,
> which I bet should be supported without any problems. No matter what I
> get only 8 colors, even if terminal is able to shows much much more.
>
> Another strange thing is that as far as I can see xterm-256color in
> FreeBSD termcap is simply an alias to xterm. Nevertheless, with these
> scripts mentioned above I can view more than 16 colors even if TERM is
> defined only as xterm.
>
> Do you think I should report it as a defect in emacs ports?

Not really.
You can try changing Co cap from 8 to 256 inside termcap file, dont
forget to use cap_mkdb after that, and dont make stupid mistakes.
Perhaps emacs should like vim enable changing Co cap inside itself.

Related to tput command, you should use "tput Co"
"tput colors" tends to report number of columns.

Also it is very hard to follow you: putty vs xterm vs cygwin; dont
forget that your terminal may use terminfo instead of termcap .....

-- 
Paul


More information about the freebsd-questions mailing list