Subject: bug#6332: Colors lost from list-colors-display

From: Juri Linkov <[email-masked]>
Date: Fri, 04 Jun 2010 19:20:45 +0300

> The current order is quite deliberate, as the comment in common-win.el
> makes clear:
>
>   ;; The ordering of the colors is chosen for the user's convenience in
>   ;; `list-colors-display', which displays the reverse of this list.
>   ;; Roughly speaking, `list-colors-display' orders by (i) named shades
>   ;; of grey with hue 0.0, sorted by value (ii) named colors with
>   ;; saturation 1.0, sorted by hue, (iii) named non-white colors with
>   ;; saturation less than 1.0, sorted by hue, (iv) other named shades of
>   ;; white, (v) numbered colors sorted by hue, and (vi) numbered shades
>   ;; of grey.
>
> I have experimented with pure HSV ordering, and the results were
> unsatisfactory, as it breaks apart groups of clearly-related color names
> (e.g. purple[1-4]).  I don't object to adding an option that controls
> how the colors are sorted.  However, the default must be a
> human-specified ordering, since there is never any satisfactory way to
> map a multi-dimensional space into one dimension.

Actually, I don't care about the default because there is no good
default scheme.  That's why leaving the human-specified ordering
of rgb.txt would be a good idea.  Or at least, allow an sorting option
that will sort colors by their order in rgb.txt.

> It should be noted that while only the colors listed in `x-colors' are
> displayed by list-colors-display, Emacs recognizes any color in rgb.txt.
> So even if "dark green" is not in x-colors, setting a face color to
> "dark green" still works.  Some of the colors in rgb.txt have duplicate
> names, and I think are rightly omitted from x-colors.  For instance,
> there is no need for us to list "grey99" and "gray99" separately.

With a full list of colors, `list-colors-display' already takes care of
duplicated color names, and displays different names on the same line, e.g.

dim gray               dim grey, DimGray, DimGrey

Please keep this because it is much easier to find the necessary color
using Isearch with one of the variant, i.e. if the user doesn't remember
which variant of gray/grey is preferred, the user can search for either
"gray" or "grey", and still find the color.

Please leave all colors from rgb.txt in x-colors because they help
to find the color by the color name in the *Colors* buffer.

-- 
Juri Linkov
http://www.jurta.org/emacs/