Re: Retrieving color names and hex values using list-colors-display for coding purposes
Eli Zaretskii <[email protected]> Fri, 17 Jul 2026 14:21:34 +0300
| Newsgroups | gmane.emacs.help |
|---|---|
| Message-ID | <[email protected]> |
> Date: Fri, 17 Jul 2026 11:02:17 +0000 > From: Heime <[email protected]> > Cc: [email protected], [email protected] > > On Friday, July 17th, 2026 at 6:08 PM, Eli Zaretskii <[email protected]> wrote: > > > > Date: Thu, 16 Jul 2026 20:50:36 +0000 > > > From: Heime <[email protected]> > > > Cc: Eli Zaretskii <[email protected]>, [email protected] > > > > > > On Friday, July 17th, 2026 at 3:48 AM, packrat386 <[email protected]> wrote: > > > > > > > "Heime" <[email protected]> writes: > > > > > > > > > On Thursday, July 16th, 2026 at 5:42 PM, Eli Zaretskii <[email protected]> wrote: > > > > > > > > > >> > Date: Thu, 16 Jul 2026 02:56:34 +0000 > > > > >> > From: Heime <[email protected]> > > > > >> > > > > > >> > > > > > >> > How can I get list of colour names and hex numbers (list-colors-display) > > > > >> > that I can then use in my code with a loop. > > > > >> > > > > >> The function defined-colors will return the list of names of supported > > > > >> colors. The function color-values will return the RGB triplet for the > > > > >> given color. > > > > > > > > > > How does the computation for white give 65535 ? > > > > > > > > > > "white" 65535 65535 65535 > > > > > > > > 65535 is 0xFFFF. So the RGB values are 16 bit integers and "white" means > > > > the max of all three. > > > > > > I do not understand this. If 16-bit numbers require a 4-digit hex value > > > like FFFF, why does the hex values for white when calling (list-color-display) > > > display #FFFFFF - which is only a 2-big hex value for each colour? > > > When I look for white using (list-color-display) I get a hex value of > > > #ffffff. I do not understand this because if each colour is 16-bit > > > > There are different representations for the RGB specification of a > > color, you can have 3 or 6 or 9 or 12 hex digits. See "Color Names" > > in the ELisp manual. The relations between them are somewhat complex, > > and you don't need or want to dig into this in almost all cases. Just > > use 16 bits per component and 12-digit specs all the time, and Emacs > > will do the rest. > > When I look at the definition of faces, I almost always see people > using #RRGGBB - 6 hex digits, 2 digits per colour. That is 256 > shades per colour. Furthermore, although (color-values colour-name) > gives values in the range 0-65535 per colour, the hex value displayed > at the end in still #RRGGBB - meaning that the actual colour is lost. WHY DO YOU CARE??? You ask questions and get the best answers we can provide. Until and unless what these answers say doesn't actually work when you try, why do you insist on digging into the Emacs's sources that might do stuff differently, for whatever reasons? I could perhaps sit down and explain to you in a very detailed fashion why you see in faces.el what you see, but why should I invest that non-trivial effort? And why should you insist on asking about that, when you evidently didn't even try what you were suggested to do? Understanding why we do in Emacs's sources what we do there requires a lot of knowledge about the internal workings and the history of Emacs. All of that is completely irrelevant to writing code on the level on which you are now. So please take the advice you are given and try it, and only ask followup questions about "other ways of doing that" if the advice doesn't work for some reason. Okay?