Red Hat Bugzilla – Bug 58659
emacs-21.1.80-2 shell prompt almost invisible in reverse-video TTY
Last modified: 2007-04-18 12:39:08 EDT
I use a black background for all of my windows.
If I run X emacs and run M-x shell, the shell prompt comes up in light blue,
which is quite pleasant and readable.
If I run TTY emacs in xterm and run M-x shell, the shell prompt comes up in
dark, almost-black blue which is impossible to read.
I don't think this happened with previous Rawhide Emacs versions.
I think this may have to do with the fact that (frame-parameter (selected-frame)
'background-mode) returns 'light even when the background is black. This is
apparently because Emacs does not know how to find out the color of the xterm in
which it is running. Is there a TTY control sequence that Emacs can send to a
color xterm to ask what its background color is? If so, it needs to be taught
to use it.
If you want to set the color, you can do it with e.g.
Just changing the background isn't necesarrily a good idea
(and this didn't change in recent emacsen either, BTW)
I think perhaps you missed the point of my bug report.
I don't want to set the background color. I already have a background color in
my xterm window, i.e., black, and Emacs isn't behaving properly with respect to
This *did* change in recent emacsen. I have kept up-to-date with Raw Hide Emacs
releases continuously. My shell prompt only became impossible to read in emacs
windows running in color xterm on Sunday when I upgraded to 21.1.80-2. The last
time I upgraded before that was January 14; that version of Emacs did not have
The workaround I found for this problem was to tell Emacs explicitly that I have
a dark background color:
(if (not window-system)
;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
'(frame-background-mode (quote dark))))
But if I have to do this now when I didn't have to do this in previous Emacs
versions, then I think there's a bug.
WONTFIX - the emacs developers say there isn't a way for emacs to know this
colour in a terminal.
Workaround: Specify the colours you want.