unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#29473: 25.3; 'background-mode is 'light on console with black background
@ 2017-11-27 14:53 Tim Landscheidt
  2017-12-02 15:25 ` Noam Postavsky
  0 siblings, 1 reply; 6+ messages in thread
From: Tim Landscheidt @ 2017-11-27 14:53 UTC (permalink / raw)
  To: 29473

In newsticker tree view on a Linux console with black back-
ground (both KDE's konsole application and "native" console
(Alt-Ctrl-F2), all under Fedora), titles of folders with no
items are displayed black on black, i. e. they are still
copyable, but not visible.  Changing the selected title with
RET highlights that one correctly and hides the previous one
if it has 0 items, suggesting that the face
newsticker-treeview-face is at fault.

Changing (:foreground "black") to (:foreground "yellow") in
newsticker-treeview-face's (background light) case makes the
titles visible and indeed
(frame-parameter nil 'background-mode) returns 'light.  This
also happens with Emacs' current master branch.

After glancing at the manual, I'm unclear whether:

1. Emacs should set 'background-mode correctly by itself
   (and thus there is an error in the detection mechanism),

2. it is my duty to explicitly set background-mode (via
   initial-frame-alist?) when using Emacs on a console, or

3. newsticker should use a different technique (I've used
   Emacs on consoles many times and do not remember running
   into similar problems with other parts of Emacs).





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#29473: 25.3; 'background-mode is 'light on console with black background
  2017-11-27 14:53 bug#29473: 25.3; 'background-mode is 'light on console with black background Tim Landscheidt
@ 2017-12-02 15:25 ` Noam Postavsky
  2017-12-09  5:35   ` Tim Landscheidt
  0 siblings, 1 reply; 6+ messages in thread
From: Noam Postavsky @ 2017-12-02 15:25 UTC (permalink / raw)
  To: Tim Landscheidt; +Cc: 29473

Tim Landscheidt <tim@tim-landscheidt.de> writes:

> In newsticker tree view on a Linux console with black back-
> ground (both KDE's konsole application and "native" console
> (Alt-Ctrl-F2), all under Fedora),

> (frame-parameter nil 'background-mode) returns 'light.  This
> also happens with Emacs' current master branch.
>
> After glancing at the manual, I'm unclear whether:
>
> 1. Emacs should set 'background-mode correctly by itself
>    (and thus there is an error in the detection mechanism),
>
> 2. it is my duty to explicitly set background-mode (via
>    initial-frame-alist?) when using Emacs on a console, or

I'm pretty sure it's #1, the manual explains that background-mode nil
should use automatic detection, and it sounds like that detection is
going wrong.

I don't see anything in lisp/term/linux.el that sets the background mode
at all.  What does running 'echo $TERM' in a shell give you?

Looking at lisp/term/konsole.el, it looks like it uses the xterm
functions for everything.  Could you try stepping through/adding
'message' calls in terminal-init-xterm and see if/where it goes wrong?






^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#29473: 25.3; 'background-mode is 'light on console with black background
  2017-12-02 15:25 ` Noam Postavsky
@ 2017-12-09  5:35   ` Tim Landscheidt
  2017-12-09 14:05     ` Noam Postavsky
  0 siblings, 1 reply; 6+ messages in thread
From: Tim Landscheidt @ 2017-12-09  5:35 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 29473

Noam Postavsky <npostavs@users.sourceforge.net> wrote:

>> In newsticker tree view on a Linux console with black back-
>> ground (both KDE's konsole application and "native" console
>> (Alt-Ctrl-F2), all under Fedora),

>> (frame-parameter nil 'background-mode) returns 'light.  This
>> also happens with Emacs' current master branch.

>> After glancing at the manual, I'm unclear whether:

>> 1. Emacs should set 'background-mode correctly by itself
>>    (and thus there is an error in the detection mechanism),

>> 2. it is my duty to explicitly set background-mode (via
>>    initial-frame-alist?) when using Emacs on a console, or

> I'm pretty sure it's #1, the manual explains that background-mode nil
> should use automatic detection, and it sounds like that detection is
> going wrong.

> I don't see anything in lisp/term/linux.el that sets the background mode
> at all.  What does running 'echo $TERM' in a shell give you?

> Looking at lisp/term/konsole.el, it looks like it uses the xterm
> functions for everything.  Could you try stepping through/adding
> 'message' calls in terminal-init-xterm and see if/where it goes wrong?

(For the moment, I retract my claim that this also happens
on a "native" (Alt-Ctrl-F2) console because I can no longer
reproduce it and cannot remember my test setup, so the fol-
lowing is limited to konsole in Fedora 25.)

In konsole, $TERM is set to "xterm-256color":

| [tim@passepartout ~/src/emacs]$ echo $TERM
| xterm-256color
| [tim@passepartout ~/src/emacs]$

With interspersed message calls, I could find out that kon-
sole's response to the "Secondary Device Attributes (DA)"
query in terminal-init-xterm ("\e[>0c") is "^[[>0;115;0c":

| [tim@passepartout ~/src/emacs]$ perl -we 'print "\e[>0c";'; sleep 1; echo
| ^[[>0;115;0c
| [tim@passepartout ~/src/emacs]$

This version number (115) falls short of the test
"(>= version 242)" which would cause the background colour
to be queried, and rightly so, because konsole does not re-
spond to the query "\e]11;?\e\\":

| [tim@passepartout ~/src/emacs]$ perl -we 'print "\e]11;?\e\\";'; sleep 1; echo

| [tim@passepartout ~/src/emacs]$

(Sidenote: gnome-terminal reports back "^[[>1;4603;0c" and
"^[]11;rgb:2323/2727/2929^[\" but the latter is never que-
ried due to NUMBER1 being 1 and NUMBER2 being greater than
2000, so background-mode stills end up as 'light with gnome-
terminal.)

So then I tried to track down where background-mode's 'light
is actually coming from, and it seems to originate in
frame-set-background-mode's:

|            (default-bg-mode
|              (if (or (window-system frame)
|                      (and tty-type
|                           (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)"
|                                         tty-type)))
|                  'light
|                'dark))

with tty-type being "xterm-256color".  This logic was first
introduced in:

| commit 5ebc02b3656890d1d110c671129c64547bdbcdd6
| Author: Eli Zaretskii <eliz@gnu.org>
| Date:   Sat Oct 28 18:48:08 2000 +0000

|     (normal-top-level): If the value of $TERM indicates that
|     we are running from xterm or one of its work-alikes, default to a
|     light background mode.

Curious, I installed xterm and indeed it has black fore-
ground on white background which I had not only forgotten
about, but also for example Wikipedia uses a black back-
ground xterm to illustrate its article
(https://en.wikipedia.org/wiki/Xterm).  D'oh.

My assumption now is that Emacs's detection mechanism cannot
be "fixed" for konsole in Fedora 25 and I should manually
set frame-background-mode to 'dark.

But: In Fedora 26, konsole 17.04.1 (in contrast to Fedora
25's konsole 16.12.3) still returns "^[[>0;115;0c" as
version number, /but/ "\^[]11;rgb:0000/0000/0000^G" for the
background colour.

So one possible improvement could be to query the background
colour either unconditionally or also on "(= version 115)".
This would increase the start-up time by (at most) two se-
conds (xterm-query-timeout) for terminals that do not sup-
port this query AFAIUI.

(So that I don't forget: I used:

| [tim@passepartout ~/src/emacs]$ make && ./src/emacs -Q -L $PWD -nw --eval '(switch-to-buffer "*Messages*")'

for testing.)





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#29473: 25.3; 'background-mode is 'light on console with black background
  2017-12-09  5:35   ` Tim Landscheidt
@ 2017-12-09 14:05     ` Noam Postavsky
  2021-09-03  6:44       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 6+ messages in thread
From: Noam Postavsky @ 2017-12-09 14:05 UTC (permalink / raw)
  To: Tim Landscheidt; +Cc: 29473


Tim Landscheidt <tim@tim-landscheidt.de> writes:

> With interspersed message calls, I could find out that kon-
> sole's response to the "Secondary Device Attributes (DA)"
> query in terminal-init-xterm ("\e[>0c") is "^[[>0;115;0c":
> 
> | [tim@passepartout ~/src/emacs]$ perl -we 'print "\e[>0c";'; sleep 1; echo
> | ^[[>0;115;0c
> | [tim@passepartout ~/src/emacs]$
> 
> This version number (115) falls short of the test
> "(>= version 242)" which would cause the background colour
> to be queried, and rightly so, because konsole does not re-
> spond to the query "\e]11;?\e\\":
>
> | [tim@passepartout ~/src/emacs]$ perl -we 'print "\e]11;?\e\\";'; sleep 1; echo
>
> | [tim@passepartout ~/src/emacs]$

> (Sidenote: gnome-terminal reports back "^[[>1;4603;0c" and
> "^[]11;rgb:2323/2727/2929^[\" but the latter is never que-
> ried due to NUMBER1 being 1 and NUMBER2 being greater than
> 2000, so background-mode stills end up as 'light with gnome-
> terminal.)

Ah, interesting.  It seems the versions of gnome-terminal are rather
non-standard.  Which version of gnome-terminal is this, and does it
support the other xterm calls?

        ;; If version is 216 (the version when modifyOtherKeys was
        ;; introduced) or higher, initialize the
        ;; modifyOtherKeys support.
        (when (>= version 216)
          (xterm--init-modify-other-keys))
        ;; In version 203 support for accessing the X selection was
        ;; added.  Hterm reports itself as version 256 and supports it
        ;; as well.  gnome-terminal doesn't and is excluded by this
        ;; test.
        (when (>= version 203)
          ;; Most xterms seem to have it disabled by default, and if it's
          ;; disabled, C-y will incur a timeout, so we only use it if the user
          ;; explicitly requests it.
          ;;(xterm--init-activate-get-selection)
          (xterm--init-activate-set-selection))))))

> So then I tried to track down where background-mode's 'light
> is actually coming from, and it seems to originate in
> frame-set-background-mode's:
>
> |            (default-bg-mode
> |              (if (or (window-system frame)
> |                      (and tty-type
> |                           (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)"
                                                         ^^ 
Hmm, those backslashes are a bug, I think.
> |                                         tty-type)))
> |                  'light
> |                'dark))
>
> with tty-type being "xterm-256color".

> My assumption now is that Emacs's detection mechanism cannot
> be "fixed" for konsole in Fedora 25 and I should manually
> set frame-background-mode to 'dark.

Yes, looks like there is no way for Emacs to detect it.

> But: In Fedora 26, konsole 17.04.1 (in contrast to Fedora
> 25's konsole 16.12.3) still returns "^[[>0;115;0c" as
> version number, /but/ "\^[]11;rgb:0000/0000/0000^G" for the
> background colour.

Thanks for tracking all these details down!

> So one possible improvement could be to query the background
> colour either unconditionally or also on "(= version 115)".
> This would increase the start-up time by (at most) two se-
> conds (xterm-query-timeout) for terminals that do not sup-
> port this query AFAIUI.

Hmm, I think 2 seconds is too much.  Is there no way to distinguish
between konsole versions?  Perhaps file a bug against konsole to ask
them to bump the reported version?






^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#29473: 25.3; 'background-mode is 'light on console with black background
  2017-12-09 14:05     ` Noam Postavsky
@ 2021-09-03  6:44       ` Lars Ingebrigtsen
  2021-10-03  9:44         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 6+ messages in thread
From: Lars Ingebrigtsen @ 2021-09-03  6:44 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 29473, Tim Landscheidt

Noam Postavsky <npostavs@users.sourceforge.net> writes:

> Ah, interesting.  It seems the versions of gnome-terminal are rather
> non-standard.  Which version of gnome-terminal is this, and does it
> support the other xterm calls?

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

I can reproduce the problem on Emacs 27.1 (and older), but not in Emacs
28, so I think this problem (wrong background colour detection in Gnome
Terminal) is probably fixed now.

Is anybody else seeing problems in Emacs 28 with this combination (i.e.,
"emacs -nw" from the trunk and Gnome Terminal)?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#29473: 25.3; 'background-mode is 'light on console with black background
  2021-09-03  6:44       ` Lars Ingebrigtsen
@ 2021-10-03  9:44         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 6+ messages in thread
From: Lars Ingebrigtsen @ 2021-10-03  9:44 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 29473, Tim Landscheidt

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I can reproduce the problem on Emacs 27.1 (and older), but not in Emacs
> 28, so I think this problem (wrong background colour detection in Gnome
> Terminal) is probably fixed now.
>
> Is anybody else seeing problems in Emacs 28 with this combination (i.e.,
> "emacs -nw" from the trunk and Gnome Terminal)?

More information was requested, but no response was given within a
month, so I'm closing this bug report.  If the problem still exists,
please respond to this email and we'll reopen the bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-10-03  9:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-27 14:53 bug#29473: 25.3; 'background-mode is 'light on console with black background Tim Landscheidt
2017-12-02 15:25 ` Noam Postavsky
2017-12-09  5:35   ` Tim Landscheidt
2017-12-09 14:05     ` Noam Postavsky
2021-09-03  6:44       ` Lars Ingebrigtsen
2021-10-03  9:44         ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).