xcolorsel man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

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

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	 addi‐
       tional  option  to  display  the RGB values the current server would be
       able to actually display is also implemented. The main feature of Xcol‐
       orsel 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 sec‐
       tion.

       This  version has now also support for servers with read only colormaps
       (That is StaticColor, StaticGray, TrueColor). Actually I did not	 real‐
       ize  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  com‐
	      mands 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 gen‐
	      eral 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)
       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 but‐
       ton 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  col‐
       ormaps  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 usu‐
       ally 8 bit each.

       Grab color.  When you press this button, the cursor changes into a mag‐
       nification  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 deci‐
       mal.)

       Also  the  line containing the best match found is selected in the Rgb‐
       Text 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 Rgb‐
       Text 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.

   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 dis‐
       couraged.

       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 pro‐
       grams or Application Default Files. See next sub section.

       This option is meaningless with the Values from input file display for‐
       mat.

       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 for‐
       mat.

   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 defi‐
       nition.	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
       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 dur‐
       ing  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  ini‐
	      tially 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 dis‐
	      played. Default is usually /usr/lib/X11/rgb.txt.	You can	 spec‐
	      ify  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 help‐
	      file. (can also be done at compile time in config.h).  If set to
	      the  empty  string  ("", the default). Xcolorsel tries to locate
	      the file with standard X techniques. This usually leads to file‐
	      names   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 (*.display‐
	      Format: format, where format is  one  of	input,	rgb4,  rgb8  ,
	      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
	      input.

       -internal (*.realized: False) lets Xcolorsel startup showing the inter‐
	      nal 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 cal‐
	      culates  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 dis‐
	      played 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.

       -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 val‐
	      ues 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 dis‐
	      played. 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 col‐
       ors 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 Wid‐
       get tree use editres(1), which is part of X11R5/6 and shows this infor‐
       mation  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
	      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  misfea‐
	      ture).

       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  interven‐
	      tion  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 wel‐
	      come.

       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 cur‐
	      sor  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	 Xcol‐
	      orsel,  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 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)  fin‐
       ished.  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 gen‐
       eration to choose a free, reliable and state of the art operating  sys‐
       tem  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 worksta‐
       tion 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 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  MERCHAN‐
       BILITY 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  Founda‐
       tion, 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 dis‐
       tribution  of  the  software  without  specific, written	  prior	  per‐
       mission.	    M.I.T.  makes  no  representations	about  the suitability
       of  this	 software  for	any  purpose.	It is provided	"as is"	 with‐
       out express or implied warranty.

       M.I.T. DISCLAIMS ALL  WARRANTIES WITH REGARD  TO THIS SOFTWARE, INCLUD‐
       ING ALL IMPLIED WARRANTIES  OF  MERCHANTABILITY	AND  FITNESS,	IN  NO
       EVENT  SHALL M.I.T.  BE LIABLE FOR ANY SPECIAL,	INDIRECT OR CONSEQUEN‐
       TIAL  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
       /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)

			      27th December 1993		  Xcolorsel(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net