all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Jan Djärv" <jan.h.d@swipnet.se>
To: Daniel Colascione <dancol@dancol.org>
Cc: Eli Zaretskii <eliz@gnu.org>, Chong Yidong <cyd@gnu.org>,
	emacs-devel <emacs-devel@gnu.org>
Subject: Re: [PATCH] Re: About the :distant-foreground face attribute
Date: Tue, 14 Jan 2014 21:01:00 +0100	[thread overview]
Message-ID: <381DEBDC-71D8-4FAC-BA55-897FEC73A2FC@swipnet.se> (raw)
In-Reply-To: <52D58632.3010106@dancol.org>

Hello.

14 jan 2014 kl. 19:47 skrev Daniel Colascione <dancol@dancol.org>:

> On 01/14/2014 03:44 AM, Jan D. wrote:
>> Daniel Colascione skrev 2014-01-14 11:44:
>>> On 01/14/2014 01:34 AM, Jan D. wrote:
>>>>>> Given the use case at hand, we know for a fact that the background is
>>>>>> the region background, so I don't understand why a calculated
>>>>>> foreground
>>>>>> is needed.  Just pick one that matches the background.
>>>>>> There might be other use cases where a calculated foreground makes
>>>>>> sense, but my imagination fails me here.
>>>>> 
>>>>> Calculated foreground colors look better: they resemble the font-lock
>>>>> colors on which they're based.
>>>> 
>>>> For the region case, that would imply the possibility of different
>>>> foregrounds for marked text, none which is the actual font-lock color.
>>> 
>>> It *is* the same color in the sense that the code we generate has the
>>> same hue. How on earth is that worse than changing arbitrary font-locked
>>> pieces of text to the system selection foreground color?
>> 
>> Because the system color foreground is (presumably) choosen to look good
>> together with the system color background.
> 
> Yes, and a color we algorithmically generate from a font-lock face will *also* look good against that background color, but 1) will be distinct from other faces replaced for lack of contrast, and 2) will be visually similar to the pre-highlight face. Have you tried the patch?

No.  If Emacs generates a color, Emacs desides what looks good.  If the system defines a color, the system (or the user if customized) desides what looks good.  I don't think it matters what I think about colors generated by your patch, I might even think they look better than many system defined colors.  But as a principle I think the desision is not Emacs to make *by default*.  Users may of course apply customizations to Emacs and change it.

> 
>>> But that's exactly what
>>> happens when we put gtk_selection_bg_color in a color spec! Why are you
>>> fine with allowing gtk_selection_bg_color as a color (producing a color
>>> that's presumably workable but unknown to a theme writer) but adamantly
>>> opposed to a feature that selects good colors another way?
>> 
>> I'm objecting to having the system default colors replaced with
>> generated colors for the default case.  What themes other than the
>> default does is irrelevant.  We are just talking about defaults here.
> 
> We already replace the system default colors with colors from font-lock faces.

We at least try to use text selection colors and tool tip colors where we can.  For some ports of Emacs this is harder (i.e. not using Gtk+).  I haven't seen any system defined colors that corresponds exactly to an Emacs font-lock face, Emacs defines tons of faces that most GUI system don't.  So yes, we replace system colors, when Emacs can't figure out the system color.  What else should Emacs do?

> 
>>> I've produced working code that allows Emacs to act how you prefer *and*
>>> how I prefer based on user configuration. What is your problem with that
>>> code?
>> 
>> I have no problem with the code, just the defaults.
>> 
>>> Have you responded to the numerous objections to
>>> :distant-foreground with anything other than retrenchment?
>> 
>> So far the objections have been mostly opinions.  If there was a
>> concrete case or a bug it exposes that would be another issue.
>> The most concrete objection is the case of inheriting faces Yidong
>> brought up in another mail, which indeed is a real problem.
> 
> Problems with usability in UI or API design don't result in clear "bugs" in the same way that logic errors or crashes do. Fixing them relies on judgment, and that relies chiefly on informed opinion. You can't dismiss others' opinions about this feature while not subjecting your own to the same treatment.

I have not put forth any usability or design argument for the current implementation, it is a bug fix plain and simple.  Informed opinion sounds like a copout to avoid having to motivate your opinion.  If you can't motivate your informed opinion, it is not worth anything.  Design can be motivated, and so can usability, there are tons of books on the subjects.  I have not read any such arguments here, just assertions that this is bad.
Take "attribute is to narrow".  It may very well be, but on what motivation?  How can I know if I want to add another attribute if it will be to narrow too?  Because person X and Y says so?  That would be OK if X and Y where appointed design chiefs for Emacs or this aspect of Emacs.  I don't think any value of X or Y has been so appointed, except for the Emacs maintainers.

> 
>>> And a theme designer can opt not to use the feature or to explicitly
>>> turn it off --- but a theme designer should never have to bother,
>>> because the feature only activates when the contrast is awful, which
>>> happens only when a theme designer screws up or deliberately relies on
>>> system colors.
>> 
>> Why should a theme designer rely on system colors?  That does not sound
>> like a good theme.  Again, the default should rely on system colors, not
>> arbitrary themes.
> 
> You are not responding to the point I make in the text you quote. I don't know why a theme designer would use system colors either. That's not the point. I'm saying that explicitly-chosen themes should never trigger the code under discussion if they're well-designed.

Okay.  I don't know why that is relevant though.

> 
>>>> That is not a use case.  A use case describes what an actual user does
>>>> and in what situation automatically calculates colors enters the
>>>> picture.
>>> 
>>> This entire thread describes the use case. There are abundant examples.
>>> Your objection here is baseless.
>> 
>> There is a lot of handwaving and describing of mechanisms, but not one
>> real world example, i.e. what major mode and which font lock faces and
>> possible other faces are involved, and what does the user do to trigger
>> the generated color.
> 
> Message-ID: <52D4A23E.4030802@dancol.org>
> From: Daniel Colascione <dancol@dancol.org>
>> So to put the discussion in more concrete terms: say I run a stock
>> GTK3 Emacs on a system with a background color exactly equal to
>> "Blue1", which is the color we use for font-lock-function-name-face.
>> I visit xfaces.c, search for "UNSPECIFIEDP", and hit C-a C-SPC C-e.
>> What colors do you propose we use for the text "UNSPECIFIEDP" on that
>> line?

You can do that today and see which color gets used.
It is the one Emacs trunk uses today, the Gtk selection foreground color.

> 
>> 
>>>>> :distant-foreground has far too narrow a justification to warrant being
>>>>> a face property by itself.
>>>> 
>>>> Also, just an opinion, not based on some documented design rule in any
>>>> Emacs or GNU document.
>>> 
>>> So only GNU documents count now, not reasoned arguments?
>> 
>> No, but if documentation of some design rule existed it would give
>> weight to your argument.  But your statement about :distant-foreground
>> being too narrow is just your personal opinion which you have not
>> motivated with any reasoned argument, just asserted.
> 
> I'm not the only one who's expressed concerns about the design of the feature.

Good, then you should be able to motivate your design rules with no effort.

	Jan D,





  reply	other threads:[~2014-01-14 20:01 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07 12:55 About the :distant-foreground face attribute Chong Yidong
2014-01-07 15:00 ` Jan Djärv
2014-01-07 17:28   ` Drew Adams
2014-01-07 18:01     ` Eli Zaretskii
2014-01-07 18:09     ` Joel Mccracken
     [not found]     ` <<8361pvsmbk.fsf@gnu.org>
2014-01-07 18:44       ` Drew Adams
2014-01-07 19:01         ` Eli Zaretskii
     [not found]         ` <<83zjn7r4z3.fsf@gnu.org>
2014-01-07 19:06           ` Drew Adams
2014-01-07 19:15             ` Eli Zaretskii
2014-01-07 21:57   ` Chong Yidong
2014-01-08  3:45     ` Eli Zaretskii
2014-01-08  5:24       ` Chong Yidong
2014-01-08  9:35         ` Jan Djärv
2014-01-08  9:52           ` Chong Yidong
2014-01-08 10:10             ` Jan Djärv
2014-01-08 14:49               ` Chong Yidong
2014-01-08 16:37                 ` Jan Djärv
2014-01-08 17:08                   ` Drew Adams
2014-01-08 16:57                 ` Drew Adams
2014-01-08 14:05         ` Stefan Monnier
2014-01-08 17:43         ` Eli Zaretskii
2014-01-09 16:15           ` Chong Yidong
2014-01-09 17:02             ` Stefan Monnier
2014-01-09 17:07               ` Drew Adams
2014-01-09 17:46                 ` Eli Zaretskii
2014-01-09 18:21                   ` Chong Yidong
2014-01-09 22:25                     ` Drew Adams
2014-01-09 22:48                     ` David Engster
2014-01-12 11:14                       ` David Engster
2014-01-12 11:40                         ` Jan Djärv
2014-01-12 12:21                           ` David Engster
2014-01-12 12:56                             ` Jan Djärv
2014-01-12 13:07                               ` David Engster
2014-01-12 13:17                                 ` Jan Djärv
2014-01-12 20:14                         ` Chong Yidong
2014-01-12 21:20                           ` Drew Adams
2014-01-12 22:07                           ` Jan Djärv
2014-01-13  0:57                             ` Drew Adams
2014-01-12 22:59                           ` Stefan Monnier
2014-01-13  4:14                             ` chad
2014-01-09 17:05             ` Eli Zaretskii
2014-01-09 17:22               ` David Engster
2014-01-09 17:27                 ` Lars Magne Ingebrigtsen
2014-01-09 17:50                   ` Jan D.
2014-01-09 20:58                 ` Darren Hoo
2014-01-09 21:17                   ` David Engster
2014-01-09 22:29                     ` Darren Hoo
2014-01-09 22:25                   ` Drew Adams
2014-01-09 22:24                 ` Drew Adams
2014-01-09 17:39               ` Josh
2014-01-09 17:57                 ` Eli Zaretskii
2014-01-09 17:49               ` Jan D.
2014-01-13 13:13           ` [PATCH] " Daniel Colascione
2014-01-13 16:27             ` Jan Djärv
2014-01-13 16:33             ` Jan Djärv
2014-01-13 18:41               ` Daniel Colascione
2014-01-13 21:29                 ` Jan Djärv
2014-01-13 21:36                   ` Daniel Colascione
2014-01-13 23:01                     ` Drew Adams
2014-01-13 23:11                       ` Daniel Colascione
2014-01-14  1:32                         ` Drew Adams
2014-01-14  1:45                           ` Stefan Monnier
2014-01-14 19:32                             ` Drew Adams
2014-01-14  2:34                           ` Daniel Colascione
2014-01-14 19:32                             ` Drew Adams
2014-01-14 22:38                               ` Daniel Colascione
2014-01-15  0:31                                 ` Drew Adams
2014-01-15  0:54                                   ` Daniel Colascione
2014-01-15  3:07                                     ` Drew Adams
2014-01-15  3:52                                       ` Daniel Colascione
2014-01-15  4:59                                         ` Drew Adams
2014-01-15  5:12                                           ` Daniel Colascione
2014-01-15  5:39                                             ` Drew Adams
2014-01-15 14:38                                               ` Stefan Monnier
2014-01-15  4:50                               ` Yuri Khan
2014-01-15  7:50                                 ` Jan D.
2014-01-15  7:52                                   ` Daniel Colascione
2014-01-15  8:17                                     ` Jan D.
2014-01-15 17:23                                     ` Drew Adams
2014-01-13 23:57                     ` Stefan Monnier
2014-01-14  0:07                       ` Daniel Colascione
2014-01-14  1:45                         ` Stefan Monnier
2014-01-14  2:41                           ` Daniel Colascione
2014-01-14  8:47                       ` Chong Yidong
2014-01-14  9:42                         ` Jan D.
2014-01-14 19:32                       ` Drew Adams
2014-01-14  7:47                     ` Jan D.
2014-01-14  8:18                       ` Daniel Colascione
2014-01-14  9:34                         ` Jan D.
2014-01-14 10:44                           ` Daniel Colascione
2014-01-14 11:44                             ` Jan D.
2014-01-14 17:56                               ` Stefan Monnier
2014-01-14 18:06                                 ` Jan Djärv
2014-01-14 18:31                                   ` Daniel Colascione
2014-01-14 18:51                                 ` John Yates
2014-01-14 22:19                                   ` Stefan Monnier
2014-01-14 18:47                               ` Daniel Colascione
2014-01-14 20:01                                 ` Jan Djärv [this message]
2014-01-14 20:06                                   ` Daniel Colascione
2014-01-14 22:05                                     ` [PATCH] " Jan Djärv
2014-01-14 22:14                                       ` Daniel Colascione
2014-01-15  6:33                                         ` Jan Djärv
2014-01-15  8:05                                           ` Daniel Colascione
2014-01-15  9:25                                             ` Jan D.
2014-01-15 14:43                                               ` Stefan Monnier
2014-01-14 20:39                                   ` [PATCH] " Daniel Colascione
2014-01-14 21:58                                     ` [PATCH] " Jan Djärv
2014-01-14 22:06                                       ` Drew Adams
2014-01-15  3:52                                         ` Eli Zaretskii
2014-01-15  4:22                                       ` Stefan Monnier
2014-01-15  4:25                                         ` Daniel Colascione
2014-01-15  6:39                                           ` Jan Djärv
2014-01-15 15:39                                           ` Eli Zaretskii
2014-01-15 14:41                                         ` Stefan Monnier
2014-01-15 15:38                                         ` Eli Zaretskii
2014-01-15 16:17                                           ` Stefan Monnier
2014-01-15 16:53                                             ` Eli Zaretskii
2014-01-15 17:33                                               ` Stefan Monnier
2014-01-15 17:51                                                 ` Eli Zaretskii
2014-01-15 18:43                                                   ` Stefan Monnier
2014-01-15 19:06                                                     ` Eli Zaretskii
2014-01-15 20:05                                                       ` Josh
2014-01-15 20:40                                                         ` Eli Zaretskii
2014-01-15 21:03                                                           ` Daniel Colascione
2014-01-15 21:12                                                             ` Eli Zaretskii
2014-01-15 21:15                                                               ` Daniel Colascione
2014-01-15 21:31                                                             ` John Yates
2014-01-15 22:11                                                             ` Drew Adams
2014-01-15 23:58                                                     ` Stefan Monnier
2014-01-07 22:50   ` Jan Djärv
2014-01-08  3:13 ` Darren Hoo
     [not found] <<87bnzo9cja.fsf@gnu.org>
     [not found] ` <<59B7E7FC-48D0-4737-B1BB-FFAC5BA9E07A@swipnet.se>
     [not found]   ` <<874n5f3162.fsf@gnu.org>
     [not found]     ` <<83fvozf86g.fsf@gnu.org>
     [not found]       ` <<87r48javwe.fsf@gnu.org>
     [not found]         ` <<83bnzmfjxe.fsf@gnu.org>
     [not found]           ` <<87bnzlyvwb.fsf@gnu.org>
     [not found]             ` <<jwvppo1dr9r.fsf-monnier+emacs@gnu.org>
     [not found]               ` <<b53f01f5-1974-417a-b95b-a7e1b6906467@default>
     [not found]                 ` <<83wqi9cakl.fsf@gnu.org>
2014-01-09 21:12                   ` Drew Adams
2014-01-09 21:22                     ` Eli Zaretskii
     [not found]           ` <<52D3E689.6050902@dancol.org>
     [not found]             ` <<8E16225F-53EF-498A-AB35-66EB9B33B859@swipnet.se>
     [not found]               ` <<52D43360.6050605@dancol.org>
     [not found]                 ` <<9BD01B88-AF13-44DD-8DBE-4598BAC136DD@swipnet.se>
     [not found]                   ` <<52D45C73.6090906@dancol.org>
     [not found]                     ` <<52D4EBA9.8050802@swipnet.se>
     [not found]                       ` <<52D4F2C2.8080800@dancol.org>
     [not found]                         ` <<52D504A7.80104@swipnet.se>
     [not found]                           ` <<52D514FF.7010404@dancol.org>
     [not found]                             ` <<52D52312.6070106@swipnet.se>
     [not found]                               ` <<52D58632.3010106@dancol.org>
     [not found]                                 ` <<381DEBDC-71D8-4FAC-BA55-897FEC73A2FC@swipnet.se>
     [not found]                                   ` <<52D5A072.5010508@dancol.org>
     [not found]                                     ` <<064CFFB5-6E50-40D5-B2CB-2BECC656D93F@swipnet.se>
     [not found]                                       ` <<174db5f5-db14-4484-a2f9-9478d2f5fea1@default>
     [not found]                                         ` <<83y52h52cd.fsf@gnu.org>
2014-01-15  3:56                                           ` [PATCH] " Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=381DEBDC-71D8-4FAC-BA55-897FEC73A2FC@swipnet.se \
    --to=jan.h.d@swipnet.se \
    --cc=cyd@gnu.org \
    --cc=dancol@dancol.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.