Paul B. Mahol wrote:
On 2/27/09, Grzegorz Junka <x...@poczta.onet.pl> wrote:
Paul B. Mahol wrote:
On 2/27/09, Grzegorz Junka <c...@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 .....

Have you seen the termcap file in FreeBSD? It is a quite complicated mess with aliases everywhere, xterm defined a dozen of times in different places and various Co values for each of them. I wouldn't know where to change it without screwing everything up. Besides that, why normal scripts can show all these colors and emacs has a problem with it?

But you was right, tput Co shows only 8 colors, regardless of what tput colors shows. Many thanks for that hint!

Regarding putty vs xterm vs cygwin: xterm(-color/-256color) is just the logical definition of the terminal and is independent on on the program used as the physical terminal. For instance both putty and xterm (under cygwin) can be configured to report the terminal type as xterm-256color or any other terminal available (and if not, the TERM env variable can be redefined). But I am sure you already know that. Because I am logging from Windows I can't use xterm natively, so I tried it under cygwin. But it shouldn't matter as long as I know that they support 256 colors (and I know that because I run these scripts).

So now the question is why tput Co reports only 8 colors and how to change that? I tried redefining TERM env variable but it doesn't change anything. If I need to change termcap then for which xterm? I don't really know how termcap/terminfo works, or what cap_mkdb is for and I would appreciate any more detailed explanation.

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to