in reply to Re^2: Viewing Tk Colours (Colors) by name
in thread Viewing Tk Colours (Colors) by name

I am not absolutely sure what you meant by "I seems possible to add localized list of color name?"

The X11 RGB defintions are found in the xorg.conf file, whose location may be different for different linux distributions, and I don't know where MSWindows puts it.

On my Slackware system, it is in /etc/X11/xorg.conf, and there is an entry in xorg.conf for the RGB definitions

Section "Files" # The location of the RGB database. Note, this is the name of the # file minus the extension (like ".txt" or ".db"). There is normally # no need to change the default. RgbPath "/usr/share/X11/rgb"

And my /usr/share/X11/rgb.txt file looks like this:

255 250 250 snow 248 248 255 ghost white 248 248 255 GhostWhite 245 245 245 white smoke 245 245 245 WhiteSmoke 220 220 220 gainsboro 255 250 240 floral white 255 250 240 FloralWhite 253 245 230 old lace 253 245 230 OldLace 250 240 230 linen 250 235 215 antique white 250 235 215 AntiqueWhite 255 239 213 papaya whip 255 239 213 PapayaWhip 255 235 205 blanched almond 255 235 205 BlanchedAlmond 255 228 196 bisque 255 218 185 peach puff 255 218 185 PeachPuff 255 222 173 navajo white 255 222 173 NavajoWhite 255 228 181 moccasin 255 248 220 cornsilk 255 255 240 ivory 255 250 205 lemon chiffon 255 250 205 LemonChiffon 255 245 238 seashell 240 255 240 honeydew 245 255 250 mint cream 245 255 250 MintCream 240 255 255 azure 240 248 255 alice blue 240 248 255 AliceBlue 230 230 250 lavender 255 240 245 lavender blush 255 240 245 LavenderBlush 255 228 225 misty rose 255 228 225 MistyRose 255 255 255 white 0 0 0 black 47 79 79 dark slate gray 47 79 79 DarkSlateGray 47 79 79 dark slate grey 47 79 79 DarkSlateGrey 105 105 105 dim gray 105 105 105 DimGray 105 105 105 dim grey 105 105 105 DimGrey 112 128 144 slate gray 112 128 144 SlateGray 112 128 144 slate grey 112 128 144 SlateGrey 119 136 153 light slate gray 119 136 153 LightSlateGray ... etc etc etc .... etc etc etc
As you can probably see, if you change those defintions, you can change the way your named colors appear. :-)

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh

Replies are listed 'Best First'.
Re^4: Viewing Tk Colours (Colors) by name
by jinnicky (Sexton) on Feb 22, 2012 at 16:14 UTC

    Somewhere the xorg.conf file got lost. I'm running Debian 6 which does have an rgb.txt file in /etc/X11.

    That's not where Tk finds color names. There is a color named DebianRed in that file (215,7,81). Tk quits with:

    unknown color name "DebianRed" at /usr/lib/perl5/Tk.pm line 250

    The following code:

    #!/usr/bin/perl use strict; use Tk; my $mw = MainWindow->new; my @colors = `cat /etc/X11/rgb.txt`; my %colorValues; my ($colorName, $red, $green, $blue, ); shift @colors; #skip first line my $colorsRead = 0; foreach my $colorLine (@colors) { chomp $colorLine; $colorsRead++; if ($colorLine =~ m/(\d+)\s+(\d+)\s+(\d+)\s+(.+)$/) { $red = $1; $green = $2; $blue = $3; $colorName = $4; } else { die "Couldn't parse '$colorLine'\n"; } eval { ($red,$green,$blue) = $mw->rgb($colorName); }; if ($@) { print "Color named $colorName not found by Tk\n"; } } print "$colorsRead colors read\n";

    Outputs:

    Color named DebianRed not found by Tk 753 colors read
      See Debian xorg.conf file problem solved.

      Also you may want to see if your xorg.conf file has it located, in the Files section

      Section "Files" # The location of the RGB database. Note, this is the name of the # file minus the extension (like ".txt" or ".db"). There is normally # no need to change the default. RgbPath "/usr/share/X11/rgb"

      I'm not really a human, but I play one on earth.
      Old Perl Programmer Haiku ................... flash japh
      Somewhere the xorg.conf file got lost. I'm running Debian 6

      Not lost, but no longer needed most of the times. Modern X.org servers have reasonable defaults built in, and read the remaining information from HAL and friends. Quoting ftp://ftp.slackware.at/slackware-13.0/CHANGES_AND_HINTS.TXT:

      Speaking of Xorg, the version of Xorg shipped with Slackware 13.0 will not (in most cases) require an /etc/X11/xorg.conf file at all. Configuration of input devices and such is handled by HAL, and the X server autoconfigures everything else. You can still create an xorg.conf file if you wish, or you can create a minimal xorg.conf with only the specific contents that you wish to override (as an example, to use a binary-only video driver). Due to removed drivers and other such changes, it's quite possible that your old xorg.conf will not work correctly with this version of Xorg.

      If you need to use a non-US keyboard layout, then copy the file located at /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi to /etc/hal/fdi/policy and edit it to suit your needs.

      To find out the actual name of the RGB database, you probably need to query the X server, there should be an API function for that. Maybe you need to read or search the X.org docs.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

        Sorry, my points were:

        1. You can't find Xorg's color list from xorg.conf which no longer exists in many distributions. "rgb.txt" is located in /etc/X11 and a link to it is in /usr/share/X11 on my system.
        2. Color names in that list such as "DebianRed" may not work with Tk.