packages icon



 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



 NAME
      xcolorsel - display contents of rgb.txt files together with color
      probes.

 SYNOPSIS
      xcolorsel [options] [RgbTxtFile]

 DESCRIPTION
      This utility displays the contents of the rgb.txt file (usually found
      as /usr/lib/X11/rgb.txt) or a file with this format specified as the
      optional [RgbTxtFile] parameter. Each line of this file consists of 3
      integers (usually 0-255) representing the RGB values and a nickname
      for this color separated by spaces. The RGB values can be displayed in
      every color representation X11R5/6 supports. Also it is possible to
      show the values in either resource definition or C-style.  An
      additional option to display the RGB values the current server would
      be able to actually display is also implemented. The main feature of
      Xcolorsel is that a small example tile of each color is also shown.  I
      will describe each button/X11-control in Xcolorsel's window in the
      next section.  This version has now also support for servers with read
      only colormaps (That is StaticColor, StaticGray, TrueColor). Actually
      I did not realize that this would be needed before I got a TrueColor
      server myself. However since colors have to be allocated one by one in
      these modes, the startup time of xcolorsel has reduced dramatically.

 USAGE
      Xcolorsel's window is divided into four main parts:

      (Usually) two rows of command buttons.

      The RgbText Widget displaying the input file and (if needed) vertical
           and/or horizontal scrollbars.

      A message line displaying help messages, comments, or results of
           commands or actions.

      (Usually) one row of action buttons.  The main (or better intended)
           difference between commands and actions is that action operate on
           colors selected in the display area and commands perform general
           tasks.  The title bar of Xcolorsel's window should (if supported
           by the window manager) show the name of the current displayed
           file.  Depending from the window size the actual layout may
           differ. Also the names of the buttons may differ (if for example
           a german application default file is used).  However the position
           and order of the buttons and other elements should be the same,
           s.t. you may rely on the order in which the controls are
           described in this file.

    Command Buttons (first row)



                                    - 1 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



      About me opens a new window displaying an ASCII-Version of this manual
      page. When this window is open the About me is inactive. In the lower
      left edge of this window a Dismiss button can be seen. Press this
      button to dismiss the help window. If the window is to small to
      display the whole file vertical and/or horizontal scrollbars are
      provided.  The text is displayed in a standard Xaw AsciiText Widget.
      Text selection and <Ctrl>-S (search) work as usual. For a full
      description of the capabilities of this Widget see the Athena Widget
      Reference Manual. If the help window is dismissed the About me button
      is reactivated.  Fileinfo displays the number of entries in the input
      file. Also the number of different RGB triples is displayed.
      Furthermore the Xserver is queried to see how many different colors
      the current server will show if given all these values.  The last
      value will differ depending on the color depth of the colormaps on the
      server.  Xfree86 Servers usually use 6 bit for each RGB value yielding
      to a lower number of different colors on the server than different
      colors are given in the input file where RGB values are usually 8 bit
      each.  Grab color.  When you press this button, the cursor changes
      into a magnification glass with a transparent hole at its hot spot.
      Move this hole over any colored pixel in any window you are interested
      in and press the left button. While the cursor is a magnifying glass
      Xcolorsel takes over the whole mouse. Xcolorsel itself ensures that
      each window the cursor is in is displayed with its correct colormap.
      After you pressed the left button the color selected is searched in
      the input file.  The color definition in the current display format is
      given in the message line. Also the number of acceptable colors, exact
      matches and percentage of equality of the best match are given (if
      any). (Exception: If display format is values from input file each of
      the 16 bit RGB values is given like with 16 bit scaled rgb but in
      decimal.) Also the line containing the best match found is selected in
      the RgbText Widget, and the text is scrolled, s.t. the line can be
      seen. The Best match, Previous, and Next actions are appropriately
      activated.  The algorithm to compare colors is (too!) simple. Two
      colors R1 G1 B1 and R2 G2 B2 are compared by calculating (R1-R2)*(R1-
      R2) + (G1-G2)*(G1-G2) + (B1-B2)*(B1-B2).  The result is scaled to 0-
      100%, where 100% means equivalence and 0% is the difference between
      black and white (aka between (0,0,0) and (255,255,255)). It is ensured
      that even almost equal colors compare only up to 99.99%. 100% is only
      possible for exact equivalence. The value above which colors are
      acceptable equal can be changed and defaults to 95%.  Grabbed colors
      are compared against the color values as they can be realized on the
      current server not the theoretic values from the input file.  Reverse
      exchanges the text fore- and background color in the RgbText Widget.
      Default colors returns the text fore- and background color in the
      RgbText Widget to the values at the start of Xcolorsel. This is
      (together with Reverse) useful to return to readable text after you
      changed to colors with the Set foreground and Set background actions
      to values making it impossible to read anything in the RgbText Widget.
      Quit quits Xcolorsel and closes all its windows.



                                    - 2 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



    Command Buttons (second row)
      Display format displays a submenu that allows you to define the format
      in which color RGB values are displayed (Press and hold left button
      down over Display format button and release the button over the
      desired format.  The possible color values are the color formats that
      X11R5/6 supports.  Values from input file displays the RGB values like
      given in the input file (see also comment in Grab color.  Note that
      conversion to TekHVC is slow for not trivially short input files.
      While the color conversion calculation takes place the cursor in the
      xcolorsel windows (except scrollbars) is changed to a busy cursor and
      all controls are inactive.  Note the difference between scaled and
      truncated rgb formats: Scaled scales the internal 16 bit RGB integer
      values to 4/8/12 bits whereas truncated means the most significant
      4/8/12 bits.  Truncated RGB values are only supported for
      compatibility. Their use in new programs is discouraged.  C-Style is a
      toggle control switching C support on/off. With C support RGB values
      are separated with , instead of the / used in X-Windows resource
      definitions. Also Hex-Numbers are given in the format that is needed
      in C source codes. Together with the selection capabilities of the
      RgbText widget this allows inclusion of color definitions in programs
      or Application Default Files. See next sub section.  This option is
      meaningless with the Values from input file display format.  Show real
      server values is again a toggle control. If enabled the server is
      queried which RGB values for each color it is actually able to
      display. Then these values are displayed instead of the theoretic
      values calculated by Xcolorsel and Xlib itself.  Note the when
      searching/grabbing colors Xcolorsel always compares with the color
      values like they would be used by the server, because the searched
      color is also only known by its actually realized values.  This option
      is meaningless with the Values from input file display format.

    The RgbText Widget Display area
      In this box (part of) the input file is displayed. Depending of the
      length and width of the displayed information scrollbars are provided.
      Each line consists of an example tile of the color, the defining color
      values in the selected output format, and the nickname of the color.
      The RgbText Widget inherits all capabilities of the AsciiText Widget,
      s.t.  scrollbars, <Ctrl>-S (searching) and selection work as usual.
      There is only one exception: Double clicking with the left button does
      not select words separated by white space but here senseful subparts.
      That is double clicking in the nickname selects the whole nickname
      regardless of included whitespace.  Double clicking on the color
      definitions selects the whole color definition.  If C-Style is
      selected the color format prefix is not selected, because it would not
      be useful to paste this into a C-source file.  This is done to make
      cutting and pasting color definitions into source codes or Application
      Default Files as convenient as possible.

    The message line



                                    - 3 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



      This line contains one line messages informing you about the state and
      results of Xcolorsel's actions.

    Action buttons
      Best match selects and scrolls the display to the best match found
      during the last Grab color, if one was found and is not currently
      selected.  Previous selects and scrolls the display to the previous
      (next better) match, if there is one.  Next selects and scrolls the
      display to the next (next worse) match, if there is one.  Set
      foreground sets the text foreground color in the display window to the
      color currently selected in it (actually the color defined in the line
      where the first selected character resides).  Set background sets the
      text background color in the display window to the color currently
      selected in it (actually the color defined in the line where the first
      selected character resides).

 OPTIONS
      As a standard Xaw application Xcolorsel accepts all standard toolkit
      options (see X(1)).  Additional options for Xcolorsel that can also be
      set via Xresources (mentioned in parentheses) in the application
      default file (or with general resource manager facilities) are:

      -breakpercentage n (*.breakPercentage: n) sets the break percentage to
           n/100 (n integer).  Colors with equivalence equal to or above
           this value are found and displayed when grabbing colors. (see
           Grab color above). This option defaults to 9500.

      -busycursor cursor (*.busyCursor: cursor) allows you to specify the
           cursor shown while calculating color conversions.

      -color (*.customization: -color) sets the customization resource to
           force use of the Xcolorsel-color application default file. If no
           application resource file can be found at all, the compiled in
           Xcolorsel-color defaults are used.

      -columns n (*.columns: n) sets the number of character columns
           initially displayed. This option usually defaults to 30.

      -cstyle (*.comma: True) lets Xcolorsel startup with C-Style selected.

      -file filename (*.file: filename) sets the file to be read in and
           displayed. Default is usually  You can specify the filename as
           command parameter without the prefixing -file.

      -grabcursor cursor (*.grabCursor: cursor) allows you to specify the
           cursor shown while grabbing colors.

      -helpfile filename (*.helpfile: filename ) sets the path to the
           helpfile. (can also be done at compile time in config.h).  If set



                                    - 4 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



           to the empty string ("", the default). Xcolorsel tries to locate
           the file with standard X techniques. This usually leads to
           filenames like /usr/lib/X11/Xcolorsel.help or /usr/lib/X11/app-
           defaults/Xcolorsel.help.  Just trust the make install created by
           imake. It should know where to put the file. However people
           (read: vendor specific X11 releases) had problems with this so
           /usr/lib/X11/xcolorsel/Xcolorsel.help is now hardcoded in the
           Imakefile.

      -input, -rgb4, -rgb8, -rgb12, -rgb16, -rgbi, -ciexyz, -cieuvy,
           -ciexyy, -cielab, -cieluv, -tekhvc, -#4, -#8, -#12, and -#16
           (*.displayFormat: format, where format is one of  , rgb12, rgb16,
           rgbi , ciexyz, cieuvy, ciexyy , cielab, cieluv, tekhvc , #rgb,
           #rrggbb, #rrrgggbbb , or #rrrrggggbbbb) lets Xcolorsel startup
           displaying in the specified color format.  The default and value
           chosen if set to an undefined string value is

      -internal (*.realized: False) lets Xcolorsel startup showing the
           internal theoretic color values. This is the default.

      -maxred n (*.maxRed: n)

      -maxgreen n (*.maxGreen: n)

      -maxblue n (*.maxBlue: n) When reading in the input file Xcolorsel
           calculates the maximum of each of the input RGB values and uses
           this as the maximum (white) value for this component.  Each of
           these option values is incorporated in this calculation for the
           appropriate color component as if such a color would have been
           read from the input file.  This is implemented to allow input
           file with more (or less) than 8 bit for each RGB value. This
           options default to 0 but note the next option:

      -maxintensity n (*.maxIntensity: n) is comparable to the last three
           options but is incorporated into each of the color components.
           This value usually defaults to 255.

      -maxrows n (*.maxRows: n) sets the maximum number of rows to be
           displayed at the same time. This restriction is needed because
           this many color cells have to be allocated at the Xserver and the
           number of colorcells is usually limited (usually to 256). If
           Xcolorsel can't allocate this much colorcells a lower number is
           chosen and the user is informed via stderr. Only if not a single
           color can be allocated Xcolorsel gives up.  Xcolorsel instructs
           the window manager not to allow resizes yielding to more lines
           getting displayed. If more lines are displayed in the display
           RgbText Widget area the displayed color examples will be wrong.
           This option usually defaults to 30.




                                    - 5 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



      -nocolor (*.customization: '') sets the customization resource to
           force use of the non-color Xcolorsel application default file. If
           no application resource file can be found at all, the compiled in
           non-color Xcolorsel defaults are used.  BTW, actually you have to
           use " to specify this in resource files.

      -realized (*.realized: True) lets Xcolorsel startup showing color
           values how they are displayed on the server.

      -resourcestyle (*.comma: False) lets Xcolorsel startup with C-Style
           deselected. This is the default.

      -rows n (*.rows: n) sets the number of character rows initially
           displayed. This option usually defaults to 10.

      -tilewidth n (*.tilewidth: n) sets the width of the example color
           tiles measured in spaces. This option usually defaults to 3.

 HISTORY
      Xcolorsel was named xpalette when I wrote it. However there were so
      many xpalettes that I was asked to change its name. Since xpalette is
      somehow comparable to xfontsel, that is it shows you the available
      colors and lets you select one, I call it xcolorsel now and hope that
      there will be no more confusion. So when you see a xpalette.tgz, or
      xpalette-1.0.tar.gz, or xpalette-1.0a.tar.gz it is probably a previous
      version of xcolorsel.

 INTERNALS
      Most of the functionality of Xcolorsel is defined in an RgbText
      Widget.  This is a child of a TextWidget linking an RgbSrc and RgbSink
      Widget together, which are childs of AsciiSrc and AsciiSink, resp.
      Feel free to use these Widgets in your own programs. Most of
      Xcolorsel's resources are resources of these Widgets. Interested
      programmers should be able to find all needed information about the
      programming interface of these Widgets in the corresponding .h files
      (RgbSink.h, RgbSinkP.h , RgbSrc.h, RgbSrcP.h , RgbText.h, RgbTextP.h).
      Anyway, I would love to hear if anyone finds a general purpose of any
      of those widgets. (I can't think of any ;-) ).  If you want to know
      about the internal structure and names of the Widget tree use
      editres(1), which is part of X11R5/6 and shows this information in a
      more convenient way than I could ever put in the manual page.

 RESTRICTIONS/MISFEATURES
      Installing the colormaps of windows the cursor is in during grab of
           colors is slow.  This is because the Athena Widgets intercept
           ENTER/LEAVE notifications send to Xcolorsel during a pointer
           grab. As a work around Xcolorsel asks for notification of all
           cursor motions during a pointer grab and explicitly queries the
           X-Window the pointer is in, thus causing ex(t/p)ensive



                                    - 6 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



           server/client communication.

      Color conversion calculations are even performed when there is no need
           to, that is when just the C-Style is toggled. This is really
           annoying when using the TekHVC display format.

      When Display format, C-Style, or Show real server values are changed
           the current selection is unselected and the display scrolls up to
           the first line.

      The Best match, Previous, and Next action buttons are not
           appropriately (de-)activated when the selection is either changed
           manually in the display with the mouse or automatically (see
           above misfeature).

      The icons and cursors (especially the bigger magnifying glass) are
           extremely ugly.  Suggestions for nice bitmaps are welcome.

      The color application default is even more ugly. It is an example of
           what not to do with Xcolorsel. Actually the intention was to
           classify operations with colors.  (Negative commands like Quit in
           red, positive commands like Default colors in bright or not that
           bright (About me) green. Commands requiring user intervention
           bright yellow. Other commands in standard yellow. And the
           remaining toggles and actions in orange.) However the result just
           makes me puke. Suggestions for nice colors are also welcome.

      If the help window is displayed About me should not be inactive but
           instead allow to raise the window.

      The color compare formula (see Grab color above) is (at least) not
           very sophisticated.

      When showing the busy cursor during color conversions the standard
           cursor is still shown when over scrollbars. This is because I
           didn't find a way to change the cursor over Athena scrollbars.
           Later I saw that one can of course hide all windows under an
           invisible input only window that changes the cursor when it
           enters it. (I got this from Mumail, where unfortunately only part
           of the window is hidden under the invisible window).

      You will notice that my programming style changed while coding
           Xcolorsel, thus the look a like of the sources is not as
           consistent as it should be.

 BUGS
      Under AIX (IBM RS/6000) at least when using 16 color monochrom
      monitors and the Motif window manager, searching the window tree
      sometimes finds windows with invalid colormaps and that are not



                                    - 7 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



      drawable. There is a flag to not to try to install colormaps during
      color grabbing. However if you click on a window border Xcolorsel will
      crash. I assume that this is caused by mwm placing an invisible input
      only window over the borders it draws. I did not find a way to make
      Xcolorsel smart enough to not fall in this trap.  Even if Xcolorsel
      would see that this is an input only window, there is no way to get
      the data it actually needs (colormap and pixelvalue at the location
      you are clicking on).  Just do not click on Mwm borders. Or better do
      not use Mwm at all. Motif is no free software. Boycott it! Fvwm is
      much better anyway.

 AUTHOR
      Michael Weller
      Heiderhoefen 116b
      D 46049 Oberhausen
      Germany reachable by means of Email as one of: eowmob@exp-math.uni-
      essen.de
      eowmob@pollux.exp-math.uni-essen.de
      mat42b@aixrs1.hrz.uni-essen.de Please note that I did this as an
      exercise to improve my understanding of the Athena Widgets and X. I
      consider this project as (almost) finished. The priority of this
      project is as low as possible for me. No further extensions are
      planned so far. However I will put in patches to support other systems
      (please make them controllable with #define's either out of config.h
      or provided by your imake) and bug fixes and redistribute them to
      ensure that only one consistent version floats through the net.

 ACKNOWLEDGEMENTS
      This work and much more would not have been possible without the Linux
      project initiated by Linus Torvalds (and of course all other people
      contributing their work to this project). This project together with
      the GNU project made it possible for capable computer users of my
      generation to choose a free, reliable and state of the art operating
      system and to get rid of the arbitrariness of commercial software
      vendors and business people squeezing just money out of people that
      have to rely on them instead of supplying working and useful software.
      I have much experience with different home computer OS's and
      workstation UNIX implementations. You can trust me. Just use linux and
      get rid of all your problems (What a pity it runs only on PCs and not
      on higher performance workstations) Thanx go also to Nils Rennebarth
      who convinced me I should implement the colormap install feature
      during color grabbing and made me develop a way to accomplish this in
      a fruitful discussion.  Even more thanx to R.K.Lloyd@csc.liv.ac.uk (no
      RL name known) for his patches that are needed to allow compilation
      under HP-UX (but changed two of his patches that disabled grabbing of
      colors by accident ;-) and Chris Olson (chris@Sterling.COM) for
      pointing me at the compilation problems on SUN's (but who would use a
      Sun? >;-> ).  Thanks and greetings go to Chris Rouch
      (chris@wg.estec.esa.nl). He was the first person that could provide a



                                    - 8 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



      patch to make xcolorsel run on a Sun. Actually the patch had a bug as
      well, however it did show where to look at, so the problem could be
      solved in seconds. Many other people (far too many to list here) sent
      me detailed debug sessions from their machines that approved the
      detected bug. Thanks to all these as well.  Maybe I should have
      announced xcolorsel louder when it still was called xpalette. This way
      the long existing segmentation fault problem would have been found
      earlier. Many people searching for a bug on several machines are
      obviously more succesful than a single one.  Thus once again the power
      of the Internet community was shown.

 COPYRIGHTS
      As I strongly believe in the usefulness of free software this program
      is released under the GNU general public license: This program is free
      software; you can redistribute it and/or modify it under the terms of
      the GNU General Public License as published be the Free Software
      Foundation;  either version 2 of the License,  or (at your opinion)
      any later version.  This program is  distributed in the hope  that it
      will be useful, but WITHOUT ANY WARRANTY; without even the  implied
      warranty of  MERCHANBILITY or FITNESS FOR  A  PARTICULAR  PURPOSE.
      See the  GNU General  Public License  for more details.  You should
      have received a copy  of the GNU General Public License along with
      this program; if not,  write to the  Free Software Foundation, Inc.,
      675 Mass Ave, Cambridge, MA 02139, USA.  Part of the files are derived
      from the Template Widget of the Athena Widgets as published  by the
      Massachusetts Institute of  Technology.  Actually these files do not
      contain any code  by the M.I.T  but only  variable declarations.
      Nevertheless these parts of these files are still distributed under
      the terms of the M.I.T copyright which are here repeated: Copyright
      Massachusetts Institute of Technology   1987, 1988 Permission to use,
      copy,  modify, distribute,  and sell this software and its
      documentation for  any purpose is hereby  granted without fee,
      provided that the  above  copyright  notice  appear  in  all  copies
      and  that  both  that copyright   notice   and   this  permission
      notice  appear  in   supporting documentation,  and that the  name of
      M.I.T.  not  be used  in advertising or publicity  pertaining  to
      distribution  of  the  software  without  specific, written  prior
      permission.    M.I.T.  makes  no  representations  about  the
      suitability  of  this  software  for  any  purpose.   It is provided
      "as is" without express or implied warranty.  M.I.T. DISCLAIMS ALL
      WARRANTIES WITH REGARD  TO THIS SOFTWARE, INCLUDING ALL IMPLIED
      WARRANTIES  OF MERCHANTABILITY AND FITNESS,  IN NO EVENT SHALL M.I.T.
      BE LIABLE FOR ANY SPECIAL,  INDIRECT OR CONSEQUENTIAL  DAMAGES OR ANY
      DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA OR PROFITS,
      WHETHER IN AN ACTION OF CONTRACT,  NEGLIGENCE  OR  OTHER  TORTIOUS
      ACTION,  ARISING OUT OF  OR IN CONNECTION WITH THE USE OR PERFORMANCE
      OF THIS SOFTWARE.

 FILES



                                    - 9 -         Formatted:  March 12, 2025






 Xcolorsel(1)                                                   Xcolorsel(1)
 Xcolorsel User's Guide                               Xcolorsel User's Guide

                             27th December 1993



      /usr/lib/X11/rgb.txt
      /usr/lib/X11/xcolorsel/Xcolorsel.help
      /usr/lib/X11/app-defaults/Xcolorsel
      /usr/lib/X11/app-defaults/Xcolorsel-color

 SEE ALSO
      X(1), xcolormap(1), xfontsel(1), editres(1)













































                                   - 10 -         Formatted:  March 12, 2025