[Pkg-wmaker-commits] [wmcliphist] 01/49: Imported Upstream version 0.6

Doug Torrance dtorrance-guest at moszumanska.debian.org
Tue Aug 18 01:51:33 UTC 2015


This is an automated email from the git hooks/post-receive script.

dtorrance-guest pushed a commit to branch master
in repository wmcliphist.

commit ce8e25a81ca929a25580ec3fec5d1c271a5dc09c
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date:   Sun Nov 16 23:19:41 2014 -0600

    Imported Upstream version 0.6
---
 .wmcliphistrc            | 115 +++++++
 AUTHORS                  |   4 +
 COPYING                  | 340 ++++++++++++++++++
 CVS/Entries              |  20 ++
 CVS/Repository           |   1 +
 CVS/Root                 |   1 +
 ChangeLog                |  55 +++
 INSTALL                  |   1 +
 Makefile                 |  57 +++
 NEWS                     |  11 +
 README                   | 132 +++++++
 clipboard.c              | 146 ++++++++
 debug.c                  | 136 ++++++++
 debug.h                  |  55 +++
 foodock/CVS/Entries      |   8 +
 foodock/CVS/Repository   |   1 +
 foodock/CVS/Root         |   1 +
 foodock/LICENSE          | 481 ++++++++++++++++++++++++++
 foodock/Makefile         |  23 ++
 foodock/README           |  71 ++++
 foodock/VERSION          |   1 +
 foodock/example.c        |  39 +++
 foodock/foodock.c        |  65 ++++
 foodock/foodock.h        |  27 ++
 gui.c                    | 405 ++++++++++++++++++++++
 history.c                | 377 ++++++++++++++++++++
 hotkeys.c                | 198 +++++++++++
 icon/CVS/Entries         |  19 +
 icon/CVS/Repository      |   1 +
 icon/CVS/Root            |   1 +
 icon/ico_16x16.xcf.bz2   | Bin 0 -> 383 bytes
 icon/ico_16x16.xpm       |  28 ++
 icon/ico_16x16_mask.xbm  |   7 +
 icon/ico_30x30.xcf.bz2   | Bin 0 -> 2134 bytes
 icon/ico_30x30_black.xpm | 381 +++++++++++++++++++++
 icon/ico_30x30_gray.xpm  | 397 +++++++++++++++++++++
 icon/ico_30x30_mask.xbm  |  14 +
 icon/ico_30x30_white.xpm | 397 +++++++++++++++++++++
 icon/ico_40x40.xcf.bz2   | Bin 0 -> 3309 bytes
 icon/ico_40x40_black.xpm | 572 +++++++++++++++++++++++++++++++
 icon/ico_40x40_gray.xpm  | 592 ++++++++++++++++++++++++++++++++
 icon/ico_40x40_mask.xbm  |  21 ++
 icon/ico_40x40_white.xpm | 591 ++++++++++++++++++++++++++++++++
 icon/ico_60x60.xcf.bz2   | Bin 0 -> 5612 bytes
 icon/ico_60x60_black.xpm | 834 ++++++++++++++++++++++++++++++++++++++++++++
 icon/ico_60x60_gray.xpm  | 875 +++++++++++++++++++++++++++++++++++++++++++++++
 icon/ico_60x60_mask.xbm  |  44 +++
 icon/ico_60x60_white.xpm | 875 +++++++++++++++++++++++++++++++++++++++++++++++
 rcconfig.c               | 462 +++++++++++++++++++++++++
 wmcliphist.c             | 374 ++++++++++++++++++++
 wmcliphist.h             | 328 ++++++++++++++++++
 wmcliphist.spec          |  72 ++++
 52 files changed, 9656 insertions(+)

diff --git a/.wmcliphistrc b/.wmcliphistrc
new file mode 100644
index 0000000..c521233
--- /dev/null
+++ b/.wmcliphistrc
@@ -0,0 +1,115 @@
+# Set hotkey for history menu popup.
+# you can use combination of modifiers (ctrl, alt, shift) and one
+# character (function keys etc. are not supported now).
+# Default: Ctrl+Alt+V
+
+menukey Ctrl+Alt+V
+
+
+# Set hotkey returning previously captured item back to clipboard. It's
+# useful when you replace your clipboard content with some other (e.g.
+# upon clearing of paste destination) and you want to switch back to it
+# quickly and easily.
+# Default: Ctrl+Alt+C
+
+prev_item_key Ctrl+Alt+C
+
+
+# Set hotkey to perform the first matching exec action on the current
+# clipboard item
+# Default: Ctrl+Alt+E
+
+exec_item_key Ctrl+Alt+E
+
+
+# Should wmcliphist automaticaly take up clipboard content?
+# Default: yes
+
+auto_take_up yes
+
+
+# Set number of items to keep.
+# Default: 10
+
+keep 10
+
+
+# Set color for locked items. Value is color in any X11-supported
+# format, eg. blue, green, #000080, #FF8000
+# Default: red
+
+lcolor red
+
+
+# Set autosave period in seconds.
+# Default: 120
+
+autosave 60
+
+
+# Should wmcliphist ask you before performing action of exec type?
+# Default: no
+
+confirm_exec yes
+
+# Should wmcliphist exec commands immediately when matching item is captured?
+# Default: yes
+
+exec_immediately yes
+
+# Should wmcliphist exec commands on a middle click from the menu?
+# Default: yes
+
+exec_middleclick yes
+
+# Should wmcliphist exec commands from the exec hotkey?
+# Default: yes
+
+exec_hotkey yes
+
+
+# You can define regular expressions driven actions executed when new
+# item is captured. Items can be silently ignored, inserted to submenus
+# or you can execute any command.
+# Action is defined like this:
+#
+# action "pattern" action_type command
+#
+# "pattern" is extended regular expression and it MUST by enclosed with
+#     double quotes (")
+# action_type can be "ignore", "submenu" or "exec" (without quotes).
+#     Actions of type "ignore" and "submenu" are terminating - no more
+#     actions will be executed after them. Action of type "exec" is not
+#     terminating and any matching actions will be executed too. For
+#     example, you can let start browser automaticaly when URL is
+#     captured and then drop this item with "ignore" statement or put it
+#     into special submenu with "submenu" statement.
+# command is either submenu name for actions of type "submenu" or
+#     command to be executed through /bin/sh for actions of type "exec".
+#     Whole rest of line is taken as command so don't enclose it with
+#     quotes.
+#     If action type is "exec", you can include "%s" string in command
+#     and it will be replaced with item content (don't use "%s" more
+#     than once and any other occurrence of '%' character write as
+#     "%%"!!!). 
+#     If action type is "submenu", command can be "-" (without quotes),
+#     which means item will be placed in main menu, not in submenu. It's
+#     usable if you want to use "exec" and then put item into main menu.
+#     In other cases this construction doesn't make sense, because items
+#     are placed into main menu by default.
+
+# show URLs in links browser started in new xterm window...
+action "^http://.*$" exec xterm -e links "%s"
+
+# ... and put it to submenu URL (action of type "ignore" can be used to
+# drop URLs)
+action "^http://.*$" submenu URL
+
+# put email addresses to submenu "Emails"
+action "^[^@]+@([^.]+\.)+[a-zA-Z]{2,}$" submenu Emails
+
+# ignore strings containing spaces or tabs only
+action "^[ \t]+$" ignore
+
+# ignore strings shorter than four characters (mostly selected by mistake)
+action "^.{1,3}$" ignore
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..25d36f9
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,4 @@
+Michal Krause wrote wmcliphist
+Daniel Richard G. made icon set used from version 0.5
+Michael Beattie wrote new exec actions handling (introduced in version 0.6)
+Alexey Vyskubov wrote foodock library
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+

+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+

+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+

+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+

+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+

+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) 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
+    MERCHANTABILITY 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/CVS/Entries b/CVS/Entries
new file mode 100644
index 0000000..1062fcd
--- /dev/null
+++ b/CVS/Entries
@@ -0,0 +1,20 @@
+/.wmcliphistrc/1.9/Sun Aug 24 20:59:37 2003//
+/AUTHORS/1.3/Sun Aug 24 20:59:37 2003//
+/COPYING/1.1.1.1/Fri Mar 16 00:59:38 2001//
+/ChangeLog/1.9/Sun Aug 24 20:59:37 2003//
+/INSTALL/1.1/Thu Jul  4 15:14:41 2002//
+/Makefile/1.12/Mon Jun 23 22:35:45 2003//
+/NEWS/1.1/Thu Jul  4 15:14:41 2002//
+/README/1.8/Sun Aug 24 20:59:37 2003//
+/clipboard.c/1.9/Sun Aug 24 20:59:37 2003//
+/debug.c/1.1/Mon Nov 19 14:20:57 2001//
+/debug.h/1.1/Mon Nov 19 14:20:57 2001//
+/gui.c/1.9/Sun Aug 24 20:59:37 2003//
+/history.c/1.7/Sun Aug 24 20:59:37 2003//
+/hotkeys.c/1.5/Sun Aug 24 20:59:37 2003//
+/rcconfig.c/1.7/Sun Aug 24 20:59:37 2003//
+/wmcliphist.c/1.14/Mon Jun 23 21:24:24 2003//
+/wmcliphist.h/1.10/Sun Aug 24 20:59:37 2003//
+/wmcliphist.spec/1.5/Sun Aug 24 20:59:37 2003//
+D/foodock////
+D/icon////
diff --git a/CVS/Repository b/CVS/Repository
new file mode 100644
index 0000000..3cfac51
--- /dev/null
+++ b/CVS/Repository
@@ -0,0 +1 @@
+wmcliphist
diff --git a/CVS/Root b/CVS/Root
new file mode 100644
index 0000000..e4d5579
--- /dev/null
+++ b/CVS/Root
@@ -0,0 +1 @@
+/var/cvs/root/
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..8aacb4a
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,55 @@
+24/08/2003: v0.6
+  - exec actions can be performed automatically or on demand by middle mouse
+    button click on menu item or by hot key for last captured item (Michael
+    Beattie)
+  - wmcliphist can automatically take up clipboard content allowing to paste
+    it when application who copied it ended already
+
+23/06/2003: v0.5
+  - brand new icon set made by Daniel Richard G. <skunk at iskunk.org>
+  - icon size (60, 40, 30 or 16 pixels) selectable on command line
+  - minor fixes and enhacements in Makefiles (suggested by Sebastian Ley)
+
+04/06/2003: v0.4
+  - first version containing spec for building RPMs (Daniel Tschan
+    <tschan+rpm at devzone.ch>)
+  - fixed locale and zombie bugs (Victor Cheburkin <vc at iptcom.net>)
+  - wmcliphist now starts without .wmcliphistrc (Sebastian Ley
+    <sebastian.ley at mmweg.rwth-aachen.de>)
+  - permissions of .wmcliphist.data are more secure now (Kresimir Kukulj
+    <madmax at iskon.hr>)
+  - fixed buffer overrun bug in reading history (Simon 'corecode' Schubert
+    <corecode at corecode.ath.cx>)
+  - keyboard navigation in history menu is possible now
+  - icons with antialiasing against dark, mid and light background are now
+    compiled into wmcliphist and it can be choosen on command line (-i)
+  - wmcliphist can optionaly ask before performing of exec action (suggested
+    by Ivica Letunic <Ivica.Letunic at EMBL-Heidelberg.DE>)
+  - added hotkey which returns previously captured item back to clipboard. It
+    can safe some keystrokes or mouse clicks in some situation, escpecially if
+    you need clear destination before pasting to it and selecting of its
+    content replaces your data in the clipboard
+
+02/15/2002: v0.3
+  - code fully reorganized
+  - new configuration file ~/.wmcliphistrc (clipboard history is now stored in
+    ~/.wmcliphist.data)
+  - added hotkey support (pop up menu at mouse cursor position)
+  - added regular expression driven actions (ignore/submenu/exec)
+  - new function Clipboard lock (new selection will not replace currently
+    selected item in clipboard, but it will be stored in history)
+  - new function Clipboard ignore (completely ignore new selections - they
+    will not replace selected item and will not be stored in history)
+  - new function to save history immediately
+  - wmcliphist can autosave history in specified period
+  - new icon
+
+03/24/2001: v0.2
+  - hopefully fixed terrible memory leak
+  - added items locking function (right click on item) and command line option
+    for setting color of locked items
+  - picked item will move to begining
+  - removed dependency on getopt and wordexp
+
+02/23/2001: v0.1
+  - initial release
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..e0288db
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1 @@
+See README for installation instructions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..3b7c4cd
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,57 @@
+CC = gcc
+
+INCLUDES = `gtk-config --cflags` -I. -Ifoodock -g
+
+DESTDIR = "/usr/local/bin"
+
+# for normal use
+CFLAGS = -Wall -O2 -ansi -pedantic $(INCLUDES)
+DEBUG = 
+
+# for debuggind purposes
+# ISO doesn't support macros with variable number of arguments so -pedantic
+# must not be used
+#CFLAGS = -Wall -g -ansi $(INCLUDES) -DFNCALL_DEBUG
+#DEBUG = debug.o
+
+
+LFLAGS = `gtk-config --libs`
+
+
+OBJECTS = wmcliphist.o clipboard.o gui.o rcconfig.o history.o hotkeys.o $(DEBUG)
+TARGET = wmcliphist
+
+all: $(TARGET)
+
+lclint:
+	lclint $(INCLUDES) +posixlib *.c >lclint.log
+
+wmcliphist: $(OBJECTS) foodock/foodock.o
+	$(CC) $(LFLAGS) -o $@ $(OBJECTS) foodock/foodock.o
+
+wmcliphist.o: wmcliphist.c wmcliphist.h \
+	icon/ico_60x60_black.xpm icon/ico_60x60_gray.xpm \
+	icon/ico_60x60_white.xpm icon/ico_60x60_mask.xbm \
+	icon/ico_40x40_black.xpm icon/ico_40x40_gray.xpm \
+	icon/ico_40x40_white.xpm icon/ico_40x40_mask.xbm \
+	icon/ico_30x30_black.xpm icon/ico_30x30_gray.xpm \
+	icon/ico_30x30_white.xpm icon/ico_30x30_mask.xbm \
+	icon/ico_16x16.xpm icon/ico_16x16_mask.xbm \
+	foodock/foodock.h
+
+clipboard.o: clipboard.c wmcliphist.h
+
+rcconfig.o: rcconfig.c wmcliphist.h
+
+gui.o: gui.c wmcliphist.h
+
+history.o: history.c wmcliphist.h
+
+hotkeys.o: hotkeys.c wmcliphist.h
+
+clean:
+	rm -rf $(OBJECTS) $(TARGET)
+	@(cd foodock && make clean)
+
+install:
+	cp wmcliphist $(DESTDIR)
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..b681e76
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,11 @@
+08/24/2003: v0.6 released
+
+06/23/2003: v0.5 released
+
+06/04/2003: v0.4 released
+
+02/15/2002: v0.3 released
+
+03/24/2001: v0.2 released
+
+02/23/2001: v0.1 released
diff --git a/README b/README
new file mode 100644
index 0000000..6a4adf8
--- /dev/null
+++ b/README
@@ -0,0 +1,132 @@
+Copying
+-------
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version.
+
+
+What is it?
+-----------
+
+In short, it is clipboard history dockable application for Window Maker
+(and maybe AfterStep with some little modifications - not tested).
+wmcliphist keeps history of clipboard operations and allows you to put
+previously copied items back to clipboard for pasting to other
+applications. I wrote wmcliphist because there was no such application
+suitable for usage in Window Maker and I was confused to run number of
+KDE daemons for Klipper (which was the inspiration).
+
+
+Features
+--------
+
+  * selectable number of items to keep
+  * detachable (tear off) menu with clipboard history
+  * possibility to lock item (locked items will not be overriden by new
+    clipboard operations). To lock item press right mouse button on it.
+  * saves history to file on exit (and loads it on start, of course :),
+    periodicaly and/or on request
+  * can handle binary data
+  * configurable hotkey support (pop up menu at mouse cursor position)
+  * regular expression driven actions (ignore/submenu/exec)
+  * possibility to lock clipboard (new selections will not replace the
+    current one and it could not be stored in history too)
+
+
+Instalation
+-----------
+
+wmcliphist requires gtk+ and glib (fully tested only with 1.2.8 and
+1.2.10, but probably will work with any 1.2.x version) and foodock
+library for writing dockable applications based on gtk+ (included).
+Hopefuly you'll only need to run
+
+make all install
+
+to compile and install wmcliphist. Note that you have to be root to
+install program to /usr/local/bin (default). If it fails, check, that
+you have installed gtk+, gtk+-devel, glib and glib-devel packages, make
+and compiler (gcc). If it still fails, try to upgrade to up to date
+versions of libraries listed above (see www.gtk.org).
+wmcliphist was tested only on Linux (Red Hat Linux 7.2, kernel 2.4.9,
+gcc 2.96), but it should compile and run on other un*x systems too.
+After installing binary you can create your configuration file in
+~/.wmcliphistrc (sample config file is included).
+
+Upgrading
+
+Please note, that upgrade from version 0.1 will delete your old history!
+If you are upgrading from version 0.2 to 0.3, move your ~/.wmcliphistrc
+to ~/.wmcliphist.data and create new ~/.wmcliphistrc with configuration
+(sample config file is included).
+
+
+Usage
+-----
+
+wmcliphist accepts followinf options:
+
+-h         show help
+-n <num>   set number of items to keep (default 10)
+-c color   set color for locked items (default is red)
+-s <size>  choose wmcliphist icon size:
+           16 = tiny 16x16 px icon
+           30 = icon suitable for 32px dock/slit
+           40 = icon suitable for 48px dock/slit
+           60 = icon suitable for 64px dock/slit (default)
+-i <num>   choose wmcliphist icon antialiasing:
+           0 = for mid tones background (default)
+           1 = for dark background
+           2 = for light background
+
+Example:
+
+/usr/local/bin/wmcliphist -n 15 -c darkgreen
+
+Some of theese options and many others can be set in ~/.wmcliphistrc too.
+
+Left click on icon opens menu with history and right click opens
+application menu. Right click on history menu item will lock it.
+History menu can be opened at mouse cursor position with configurable
+hotkey too.
+
+
+ToDo
+----
+
+  * Maybe some configuration GUI? Who knows...
+  * Separated history queues
+
+
+Credits
+-------
+
+Michal Krause <michal (at) krause (dot) cz>
+Daniel Richard G. <skunk (at) iskunk (dot) org> (icon set used from version 0.5)
+Michael Beattie (new exec action handling in 0.6)
+
+
+Special thanx
+-------------
+
+Alexey Vyskubov, <alexey at pepper.spb.ru>
+foodock library
+
+<mdem at chat.ru>
+Downloader for X, from which I took inspiration for clipboard
+monitoring. BTW, it's great peace of software, try it.
+
+
+Download
+--------
+
+http://linux.nawebu.cz/wmcliphist/
+
+
+Apology
+-------
+
+I'd like to apologize to all English speaking people for mangling of
+their mother tongue :)
diff --git a/clipboard.c b/clipboard.c
new file mode 100644
index 0000000..7a64b8b
--- /dev/null
+++ b/clipboard.c
@@ -0,0 +1,146 @@
+#include <wmcliphist.h>
+#include <time.h>
+
+/* when true, clipboard will be automatically taken up by wmcliphist */
+gint	auto_take_up = 1;
+
+/* number of items to keep (may be overriden from command line) */
+gint	num_items_to_keep = 10;
+
+/* number if items kept */
+gint	num_items = 0;
+
+/* current number of locked items */
+gint	locked_count;
+
+/* list of clipboard history items */
+GList	*history_items = NULL;
+
+/* selected item */
+HISTORY_ITEM	*selected = NULL;
+
+
+
+/*
+ * dumps history list to stderr
+ * for debugging purposes only
+ */
+void
+dump_history_list_fn(char *header)
+{
+	gint		indent = 1, i;
+	GList		*node = history_items;
+	HISTORY_ITEM	*data;
+	
+	fprintf(stderr, "%s\n", header);
+	while (node) {
+		data = (HISTORY_ITEM *)node->data;
+		for (i = 0; i < indent; i++)
+			putc('-', stderr);
+		fprintf(stderr, " %.*s\n", (int) data->content_len,
+				data->content);
+		indent++;
+		node = node->next;
+	}
+	fprintf(stderr, "==========\n");
+}
+
+
+/*
+ * get clipboard content - partialy inspired by Downloader for X
+ */
+gboolean
+my_get_xselection(GtkWidget *window, GdkEvent *event)
+{
+	GdkAtom		atom;
+	gint		format;
+	size_t		length;
+	gchar		*content = NULL;
+
+	/* previous clipboard content */
+	static size_t	old_content_len = 0;
+	static gchar	*old_content = "";
+
+
+	begin_func("my_get_xselection");
+
+	length = (size_t) gdk_selection_property_get(window->window,
+			(guchar **) &content,
+			&atom, &format);
+
+	if (length > 0) {
+		if ((length != old_content_len ||
+				memcmp(content, old_content, length) != 0) &&
+				!GTK_CHECK_MENU_ITEM(menu_app_clip_ignore)->active) {
+			/* new data in clipboard */
+			/* store new content for future comparation */
+			if (old_content_len > 0)
+				g_free(old_content);
+			old_content = content;
+			old_content_len = length;
+
+			/* process item */
+			process_item(content, length, 0, TRUE);
+		} else {
+			/* no new data */
+			g_free(content);
+		}
+
+		/* when clipboard is locked, set selection owener to myself */
+		if (GTK_CHECK_MENU_ITEM(menu_app_clip_ignore)->active ||
+				GTK_CHECK_MENU_ITEM(menu_app_clip_lock)->active) {
+			if (gtk_selection_owner_set(dock_app,
+						GDK_SELECTION_PRIMARY,
+						GDK_CURRENT_TIME) == 0)
+				selected = NULL;
+		}
+
+	}
+
+	return_val(TRUE);
+}
+
+
+/*
+ * clipboard conversion - inspired by Downloader for X too :)
+ */
+gboolean
+time_conv_select()
+{
+	begin_func("time_conv_select");
+
+	gtk_selection_convert(main_window,
+			GDK_SELECTION_PRIMARY,
+			GDK_TARGET_STRING,
+			GDK_CURRENT_TIME);
+	return_val(TRUE);
+}
+
+
+/*
+ * handles request for selection from other apps
+ */
+gboolean
+selection_handle(GtkWidget *widget, 
+		GtkSelectionData *selection_data,
+		guint info,
+		guint time_stamp,
+		gpointer data)
+{
+	begin_func("selection_handle");
+
+	if (selected)
+		gtk_selection_data_set(selection_data,
+				GDK_SELECTION_TYPE_STRING,
+				8,
+				(guchar *)selected->content,
+				selected->content_len);
+	else
+		gtk_selection_data_set(selection_data,
+				GDK_SELECTION_TYPE_STRING,
+				8,
+				(guchar *)"",
+				0);
+
+	return_val(TRUE);
+}
diff --git a/debug.c b/debug.c
new file mode 100644
index 0000000..492f835
--- /dev/null
+++ b/debug.c
@@ -0,0 +1,136 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+
+/* tabulators */
+char		tabs[1024];
+
+
+#ifdef	DBG_THREADS
+#include <pthread.h>
+
+static pthread_key_t	align_key;
+static pthread_once_t	align_key_once = PTHREAD_ONCE_INIT;
+
+
+static void
+align_destroy(void *align)
+{
+	free(align);
+}
+
+
+static void
+align_key_create()
+{
+	pthread_key_create(&align_key, align_destroy);
+}
+
+
+void
+debug_init_threads()
+{
+	int	*new_align;
+
+	memset(tabs, 9, 1024);
+	
+	if (!(new_align = malloc(sizeof(int))))
+		abort();
+	*new_align = 1;
+
+	pthread_once(&align_key_once, align_key_create);
+
+	pthread_setspecific(align_key, new_align);
+}
+#endif
+
+
+/*
+ * no threads
+ */
+
+static int		main_align = 1;
+
+void
+debug_init_nothreads()
+{
+	memset(tabs, 9, 1024);
+}
+
+
+
+
+void
+fn_begin(char *format, ...)
+{
+	va_list		args;
+	char		msg_buf[1024];
+	char		final_msg[2048];
+	int		*align;
+
+#ifdef DBG_THREADS
+		align = pthread_getspecific(align_key);
+#else
+		align = &main_align;
+#endif
+	
+	va_start(args, format);
+	vsprintf(msg_buf, format, args);
+	va_end(args);
+
+	strcat(msg_buf, " {\n");
+
+	sprintf(final_msg, "%d: %.*s%s", getpid(), *align, tabs, msg_buf);
+	fprintf(stderr, "%s", final_msg);
+	(*align)++;
+}
+
+
+void
+fn_end()
+{
+	int		*align;
+
+#ifdef DBG_THREADS
+		align = pthread_getspecific(align_key);
+#else
+		align = &main_align;
+#endif
+
+	(*align)--;
+
+	fprintf(stderr, "%d: %.*s}\n", getpid(), *align, tabs);
+}
+
+
+
+
+/*
+void
+fn2(int i)
+{
+	_D(fn_begin("fn2(i = %d)", i));
+	return_void();
+}
+
+int
+fn1()
+{
+	_D(fn_begin("fn1"));
+	fn2(1);
+	return_val(0);
+}
+	
+int
+main()
+{
+	_D(fn_begin("main"));
+	fn1();
+	fn2(2);
+	return_val(0);
+}
+*/
diff --git a/debug.h b/debug.h
new file mode 100644
index 0000000..b830000
--- /dev/null
+++ b/debug.h
@@ -0,0 +1,55 @@
+#ifndef _DEBUG_H_
+#define _DEBUG_H_
+
+
+#ifdef	DBG_THREADS
+#define debug_init()	debug_init_threads()
+#else
+#define	debug_init()	debug_init_nothreads()
+#endif
+
+
+void
+debug_init_threads();
+
+void
+debug_init_nothreads();
+
+
+void
+fn_begin(char *format, ...);
+
+void
+fn_end();
+
+
+#ifdef FNCALL_DEBUG
+/* define macros with debugging on */
+
+#define begin_func(_format, _args...)	fn_begin(_format , ##_args)
+
+#define	return_val(_value) \
+	do { \
+		fn_end(); \
+		return _value; \
+	} while (0)
+
+#define	return_void() \
+	do { \
+		fn_end(); \
+		return; \
+	} while (0)
+
+#else
+/* define macros with debugging off */
+
+#define begin_func(_format)
+
+#define	return_val(_value)		return _value
+
+#define	return_void()			return
+
+#endif
+
+
+#endif
diff --git a/foodock/CVS/Entries b/foodock/CVS/Entries
new file mode 100644
index 0000000..0a8aef7
--- /dev/null
+++ b/foodock/CVS/Entries
@@ -0,0 +1,8 @@
+/LICENSE/1.1.1.1/Fri Mar 16 00:59:52 2001//
+/Makefile/1.2/Mon Jun 23 22:29:52 2003//
+/README/1.1.1.1/Fri Mar 16 00:59:52 2001//
+/VERSION/1.1.1.1/Fri Mar 16 00:59:52 2001//
+/example.c/1.1.1.1/Fri Mar 16 00:59:46 2001//
+/foodock.c/1.1.1.1/Fri Mar 16 00:59:46 2001//
+/foodock.h/1.1.1.1/Fri Mar 16 00:59:52 2001//
+D
diff --git a/foodock/CVS/Repository b/foodock/CVS/Repository
new file mode 100644
index 0000000..2a1fbe0
--- /dev/null
+++ b/foodock/CVS/Repository
@@ -0,0 +1 @@
+wmcliphist/foodock
diff --git a/foodock/CVS/Root b/foodock/CVS/Root
new file mode 100644
index 0000000..e4d5579
--- /dev/null
+++ b/foodock/CVS/Root
@@ -0,0 +1 @@
+/var/cvs/root/
diff --git a/foodock/LICENSE b/foodock/LICENSE
new file mode 100644
index 0000000..f503049
--- /dev/null
+++ b/foodock/LICENSE
@@ -0,0 +1,481 @@
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+    		    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+

+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+

+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+

+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+

+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+

+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+

+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+

+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+

+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+

+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/foodock/Makefile b/foodock/Makefile
new file mode 100644
index 0000000..421112d
--- /dev/null
+++ b/foodock/Makefile
@@ -0,0 +1,23 @@
+LIBPATH = /usr/X11R6/lib
+LIBNAME = libfoodock
+LFOO = $(LIBNAME).so
+
+lib:	foodock.c foodock.h
+	$(CC) -fpic -shared -o $(LFOO)  foodock.c `gtk-config --cflags`
+	strip $(LFOO)
+
+clean:
+	rm -rf $(LFOO) foodock.o example.o example
+
+install:
+	cp $(LFOO) $(LIBPATH)
+	chmod 644 $(LIBPATH)/$(LFOO)
+	ldconfig
+
+uninstall:
+	rm -f $(LIBPATH)/$(LFOO)
+	ldconfig
+
+example: example.c
+	$(CC) -c -o example.o example.c `gtk-config --cflags`
+	$(CC) -o example example.o `gtk-config --libs` -lfoodock
diff --git a/foodock/README b/foodock/README
new file mode 100644
index 0000000..d13a48f
--- /dev/null
+++ b/foodock/README
@@ -0,0 +1,71 @@
+DESCRIPTION:
+
+libfoodock is a library for creating Gtk WindowMaker dockable applications.
+
+void gdk_window_set_icon(main_window->window, icon_window->window, NULL, NULL);
+won't do the trick. I suspect it sets up wrong WindowGroupHint.
+
+If you create an application using gdk_window_set_icon it probably will not
+useful under WindowMaker.
+
+INSTALLATION:
+
+make
+sudo make install
+(optional) make example
+(optional) ./example
+(optional) sudo make uninstall
+
+Please notice that make install will copy the library into LIBPATH (see
+Makefile). foodock.h will not be copied but you need this file to develop
+applications using libfoodock.
+
+PROGRAMMING:
+
+libfoodock contains the only function:
+GtkWidget *foo_create_main_icon_window(GtkWidget *mw, unsigned int s,
+                                       int margc, char *margv[])
+
+You *should* do the following:
+
+(1) gtk_init
+(2) w = gtk_window_new
+(3) gtk_widget_realize(w)	! Very important !
+(4) w1 = foo_create_main_icon_window(w, 56, argc, argv);
+(5) gtk_widget_show(w1)
+(6) gtk_main
+
+Comments:
+(2) You should create main application window. Please notice that you will not
+see this window on the screen; it will be hidden. The only purpose of this
+window is to provide window group.
+(3) Because we will do some Xlib lowlevel tricks in
+foo_create_main_icon_window, main window should be realized or 
+GDK_WINDOW_XWINDOW(w->window) will fail.
+(4) w1 now is pointer to gtk event box. You may think about w1 as about
+GTK_CONTAINER which represent docked WindowMaker application. You can put
+anything inside it. "56" is a recommended size of w1 (because standard
+WindowMaker dock item is 64x64... but you can try 64 or 60 r 50 or 20...).
+Please notice that w1 will be realised after foo_create_main_icon_window.
+argc and argv arguments define what WindowMaker will set up after docking as a
+command for launching your application.
+(5) After you put anything you want into w1 you should show w1.
+
+Please see example.c for working example.
+
+AUTHOR:
+
+Alexey Vyskubov, <alexey at pepper.spb.ru>
+
+ACKNOWLEDGEMENTS:
+
+I should thank:
+
+1. Owen Taylor <otaylor at redhat.com>, one of Gtk authors. He answered my request 
+in Gtk mailing list: "Use the function: void gdk_window_set_icon". It allows
+to understand me that there is no way to do dockable application in Gdk/Gtk
+w/o Xlib (because gdk_window_set_icon doesn't help, and Gtk author didn't
+recommend anything else).
+
+2. David Raufeisen <lamer at fortyoz.org>. He answered my request in Gtk mailing
+list with working code. Thanks! An idea to use event box was great.
diff --git a/foodock/VERSION b/foodock/VERSION
new file mode 100644
index 0000000..d3827e7
--- /dev/null
+++ b/foodock/VERSION
@@ -0,0 +1 @@
+1.0
diff --git a/foodock/example.c b/foodock/example.c
new file mode 100644
index 0000000..1b9369d
--- /dev/null
+++ b/foodock/example.c
@@ -0,0 +1,39 @@
+/*
+ * File: example.c
+ *
+ * This file is a part of foodock library
+ *
+ * (c) 2000 Alexey Vyskubov <alexey at pepper.spb.ru>
+ */
+
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+
+#include "foodock.h"
+
+int main( int argc, char *argv[] ) {
+
+    GtkWidget *gtkiw;
+    GtkWidget *box;
+    GtkWidget *button;
+    
+    gtk_init(&argc, &argv);
+
+    gtkiw = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+    gtk_widget_realize(gtkiw);
+    
+    box = foo_create_main_icon_window(gtkiw, 56, argc, argv);
+
+    button = gtk_button_new_with_label ("FOO");
+
+    gtk_container_add (GTK_CONTAINER (box), button);
+
+    gtk_widget_show(button);
+    gtk_widget_show(box);
+    gtk_widget_show(gtkiw);
+
+    gtk_main ();
+     
+    return(0);
+}
diff --git a/foodock/foodock.c b/foodock/foodock.c
new file mode 100644
index 0000000..c5544f0
--- /dev/null
+++ b/foodock/foodock.c
@@ -0,0 +1,65 @@
+/*
+ * File: foodock.c
+ *
+ * Created: Fri Jan 14 01:15:24 2000
+ * 
+ * (c) 2000, Alexey Vyskubov <alexey at pepper.spb.ru>
+ *
+ * LGPL, see file LICENSE
+ */
+
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+
+#include "foodock.h"
+
+/*
+ * Function foo_create_main_icon_window returns pointer to gtk event
+ * box. This event box is created into main window and can be used as
+ * a dockable Windowmaker applet. Main window should be realized
+ * before calling foo_create_main_icon_window. Returned event box
+ * will be realized by foo_create_main_icon_window. You should to show
+ * icon window as well as main window before gtk_main().
+ * 
+ * Input:
+ *	mw		Pointer to main window
+ *	s		icon window size (56 is recommended)
+ *	margc, margv	argc and argv of main program for XSetCommand
+ */
+
+GtkWidget *foo_create_main_icon_window(GtkWidget *mw,
+				       unsigned int s,
+				       int margc,
+				       char *margv[]) {
+
+    GtkWidget *foobox; /* This will become icon box */
+    Window xmw;
+    XWMHints *wm_hints;
+
+    xmw = GDK_WINDOW_XWINDOW(mw->window);
+    
+    foobox = gtk_event_box_new();
+    gtk_widget_set_usize(foobox, s, s);
+    gtk_container_add (GTK_CONTAINER (mw), foobox);
+    gtk_widget_realize(foobox);
+    
+/* Time for game with Xlib */
+    wm_hints = XAllocWMHints();
+    wm_hints->window_group = xmw;
+    wm_hints->icon_window = GDK_WINDOW_XWINDOW(foobox->window);
+    wm_hints->icon_x = 0;
+    wm_hints->icon_y = 0; 
+    wm_hints->initial_state = WithdrawnState;
+    wm_hints->flags = StateHint |
+	              IconPositionHint |
+		      WindowGroupHint |
+		      IconWindowHint;
+
+    XSetWMHints(GDK_DISPLAY(), xmw, wm_hints);
+    XSetCommand(GDK_DISPLAY(), xmw, margv, margc);
+    
+    XFree(wm_hints);
+    
+    return foobox;
+}
diff --git a/foodock/foodock.h b/foodock/foodock.h
new file mode 100644
index 0000000..01510aa
--- /dev/null
+++ b/foodock/foodock.h
@@ -0,0 +1,27 @@
+/*
+ * File: foodock.h
+ *
+ * Created: Fri Jan 14 01:14:25 2000
+ * 
+ * (c) 2000, Alexey Vyskubov <alexey at pepper.spb.ru>
+ *
+ * LGPL, see file LICENSE 
+*/
+
+/*
+ * Function foo_create_main_icon_window returns pointer to gtk event
+ * box. This event box is created into main window and can be used as
+ * a dockable Windowmaker applet. Main window should be realized
+ * before calling foo_create_main_icon_window. Returned event box
+ * will be realized by foo_create_main_icon_window. You should to show
+ * icon window as well as main window before gtk_main().
+ * 
+ * Input:
+ *	mw		Pointer to main window
+ *	s		icon window size (56 is recommended)
+ *	margc, margv	argc and argv of main program for XSetCommand
+ */
+GtkWidget *foo_create_main_icon_window(GtkWidget *main_window,
+				       unsigned int size,
+				       int main_argc,
+				       char *main_argv[]);
diff --git a/gui.c b/gui.c
new file mode 100644
index 0000000..c8590f4
--- /dev/null
+++ b/gui.c
@@ -0,0 +1,405 @@
+#include <wmcliphist.h>
+
+
+/* color of locked item */
+gchar		locked_color_str[32] = DEF_LOCKED_COLOR;
+GdkColor	locked_color;
+GtkStyle	*style_locked,
+		*style_normal;
+
+/* Exec on middle click? */
+int exec_middleclick = 1;
+
+/* main window widget */
+GtkWidget	*main_window;
+
+/* dock icon widget */
+GtkWidget	*dock_app;
+
+/* clipboard history menu */
+GtkWidget	*menu_hist;
+GtkWidget	*menu_title;
+gint		submenu_count = 0;
+
+/* application menu */
+GtkWidget	*menu_app;
+GtkWidget	*menu_app_clip_lock;
+GtkWidget	*menu_app_clip_ignore;
+GtkWidget	*menu_app_exit;
+GtkWidget	*menu_app_save;
+
+/* button */
+GtkWidget	*button;
+
+/* pixmap */
+GtkWidget	*pixmap;
+GdkPixmap	*icon;
+GdkBitmap	*icon_mask;
+GdkBitmap	*mask;
+
+
+/* ==========================================================================
+ *                                                     clipboard history menu
+ */
+
+/*
+ * history menu item button click function
+ */
+static gboolean
+menu_item_button_released(GtkWidget *widget,
+		GdkEvent *event,
+		gpointer user_data)
+{
+	GdkEventButton	*bevent = (GdkEventButton *)event;
+	HISTORY_ITEM	*data = user_data;
+
+	begin_func("menu_item_button_released");
+	
+	/* button 2 or 3 - exec or (un)lock item respectively */
+	if (bevent->button == 2) {
+		if (exec_middleclick) {
+			gtk_menu_popdown(GTK_MENU(menu_hist));
+			exec_item(data->content, data->content_len, NULL);
+		}
+		return_val(TRUE);
+	} else if (bevent->button == 3) {
+		if (data->locked == 0) {
+
+			/* cannot lock all records */
+			if (locked_count == num_items_to_keep - 1) {
+				show_message("There must remain at least one "
+					"unlocked item\nwhen menu is full!",
+					"Warning", "OK", NULL, NULL);
+				return_val(TRUE);
+			}
+
+			gtk_widget_set_style(GTK_BIN(data->menu_item)->child,
+					style_locked);
+			data->locked = 1;
+			locked_count++;
+
+		} else {
+			gtk_widget_set_style(GTK_BIN(data->menu_item)->child,
+					style_normal);
+			data->locked = 0;
+			locked_count--;
+		}
+	} else {
+		return_val(FALSE);
+	}
+
+	return_val(TRUE);
+}
+
+
+/*
+ * history menu item left click or keypress function
+ */
+static gboolean
+menu_item_activated(GtkWidget *widget, gpointer user_data)
+{
+	move_item_to_begin((HISTORY_ITEM *) user_data);
+	return_val(TRUE);
+}
+
+
+/*
+ * checks, if there is already such item in menu,
+ * in which case it moves it to the begining
+ */
+HISTORY_ITEM *
+menu_item_exists(gchar *content, size_t length, GtkWidget *submenu)
+{
+	HISTORY_ITEM	*hist_item;
+	GList		*list_node;
+
+	begin_func("menu_item_exists");
+
+	list_node = g_list_last(history_items);
+	while (list_node) {
+		hist_item = (HISTORY_ITEM *)list_node->data;
+		if (hist_item->content_len == length &&
+				hist_item->menu == submenu &&
+				memcmp(hist_item->content, content, length)
+				== 0) {
+			gtk_menu_reorder_child(GTK_MENU(hist_item->menu),
+					hist_item->menu_item, 1);
+			history_items = g_list_remove_link(history_items,
+					list_node);
+			history_items = g_list_concat(list_node, history_items);
+
+			return_val(hist_item);
+		}
+		list_node = g_list_previous(list_node);
+	}
+	
+	return_val(NULL);
+}
+
+
+/*
+ * add new item to menu
+ */
+HISTORY_ITEM *
+menu_item_add(gchar *content, size_t length, gint locked,
+		GtkWidget *target_menu)
+{
+	GList		*list_node;
+	gint		i;
+	gchar		menu_item_name[MAX_ITEM_LENGTH];
+	size_t		menu_item_name_len;
+	HISTORY_ITEM	*hist_item;
+
+	begin_func("menu_item_add");
+
+	hist_item = menu_item_exists(content, (gint)length, target_menu);
+	if (hist_item != NULL) {
+		dump_history_list("reorder");
+		return_val(hist_item);
+	}
+
+	if (num_items == num_items_to_keep) {
+		/* max item limit reached, destroy oldest one */
+		list_node = g_list_last(history_items);
+		while (1) {
+			hist_item = (HISTORY_ITEM*)
+				list_node->data;
+			if (hist_item->locked == 0)
+				break;
+			list_node = g_list_previous(list_node);
+			g_assert((list_node != NULL));
+		}
+
+		history_items = g_list_remove_link(history_items, list_node);
+		gtk_container_remove(GTK_CONTAINER(hist_item->menu),
+				hist_item->menu_item);
+		gtk_widget_destroy(hist_item->menu_item);
+		g_free(hist_item->content);
+		g_free(hist_item);
+		g_list_free_1(list_node);
+		num_items--;
+		dump_history_list("remove oldest");
+	}
+	
+	/* prepare menu item name */
+	memset(menu_item_name, 0, MAX_ITEM_LENGTH);
+	if (length > (size_t)(MAX_ITEM_LENGTH - 1)) {
+		g_memmove(menu_item_name, content, (size_t)(MAX_ITEM_LENGTH - 4));
+		g_memmove(menu_item_name + MAX_ITEM_LENGTH - 4, "...", (size_t)3);
+		menu_item_name_len = (size_t)(MAX_ITEM_LENGTH - 1);
+	} else {
+		g_memmove(menu_item_name, content, length);
+		menu_item_name_len = length;
+	}
+
+	/* do some menu item name cleanups */
+	for (i = 0; i < menu_item_name_len; i++) {
+		if (!isprint((int)menu_item_name[i]))
+			menu_item_name[i] = '_';
+	}
+
+	/* create menu item */
+	hist_item = g_new0(HISTORY_ITEM, 1);
+	hist_item->menu_item = gtk_menu_item_new_with_label(menu_item_name);
+	hist_item->content = g_memdup(content, length);
+	hist_item->content_len = length;
+	hist_item->locked = locked;
+	hist_item->menu = target_menu;
+
+	if (locked == 1) {
+		gtk_widget_set_style(GTK_BIN(hist_item->menu_item)->child,
+				style_locked);
+		locked_count++;
+	}
+	
+	/* add to menu */
+	gtk_menu_insert(GTK_MENU(hist_item->menu), hist_item->menu_item, 1);
+
+
+	/* connect actions to signals */
+	gtk_signal_connect(GTK_OBJECT(hist_item->menu_item),
+			"button-release-event",
+			GTK_SIGNAL_FUNC(menu_item_button_released),
+			(gpointer)hist_item);
+
+	gtk_signal_connect(GTK_OBJECT(hist_item->menu_item),
+			"activate",
+			GTK_SIGNAL_FUNC(menu_item_activated),
+			(gpointer)hist_item);
+
+	gtk_widget_show(hist_item->menu_item);
+
+	history_items = g_list_insert(history_items, hist_item, 0);
+
+	num_items++;
+
+	return_val(hist_item);
+}
+
+
+
+/* ==========================================================================
+ *                                                           application menu
+ */
+
+/*
+ * application main menu handler
+ */
+gboolean
+menu_app_item_click(GtkWidget *menuitem, gpointer data)
+{
+	gint	button;
+
+	begin_func("menu_app_item_click");
+
+	switch (GPOINTER_TO_INT(data)) {
+		/* save history menu */
+		case 0:
+			if (history_save() != 0) {
+				button = show_message("History was NOT saved.\n",
+						"Warning", "OK", NULL, NULL);
+			}
+			return_val(TRUE);
+
+		/* exit menu */
+		case 1:
+			if (history_save() != 0) {
+				button = show_message("History was NOT saved.\n"
+						"Do you really want to exit?",
+						"Error", "Yes", "No", NULL);
+				if (button != 0)
+					return_val(TRUE);
+			}
+			history_free();
+			rcconfig_free();
+
+			gtk_exit(0);
+			return_val(TRUE);
+	}
+	return_val(FALSE);
+}
+
+
+
+/* ==========================================================================
+ *                                                          dock button press
+ */
+
+/*
+ * dock button click response
+ */
+gboolean
+button_press(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+	begin_func("button_press");
+
+	if (event->type == GDK_BUTTON_PRESS) {
+		GdkEventButton	*bevent = (GdkEventButton *)event;
+
+		switch (bevent->button) {
+			case 1:
+				/* popup history menu */
+				gtk_menu_popup(GTK_MENU(menu_hist),
+						NULL, NULL,
+						NULL, NULL,
+						bevent->button,
+						bevent->time);
+				return_val(TRUE);
+
+			case 3:
+				/* popup application menu */
+				gtk_menu_popup(GTK_MENU(menu_app),
+						NULL, NULL,
+						NULL, NULL,
+						bevent->button,
+						bevent->time);
+				return_val(TRUE);
+		}
+	}
+
+	return_val(FALSE);
+}
+
+
+
+/* ==========================================================================
+ *                                                            message dialogs
+ */
+
+static GMainLoop	*loop;
+static gint		button_pressed;
+
+
+static gboolean
+dialog_button_press(GtkWidget *button, gpointer data)
+{
+	begin_func("dialog_button_press");
+
+	button_pressed = GPOINTER_TO_INT(data);
+	g_main_quit(loop);
+
+	return_val(TRUE);
+}
+
+
+/*
+ * open dialog with specified message andbuttons
+ * and return number of button pressed
+ */
+gint
+show_message(gchar *message, char *title,
+		char *b0_text, char *b1_text, char *b2_text)
+{
+	GtkWidget	*dialog,
+			*label,
+			*button_0,
+			*button_1,
+			*button_2;
+
+	begin_func("show_message");
+
+	/* create the main widgets */
+	dialog = gtk_dialog_new();
+	label = gtk_label_new(message);
+
+	/* create buttons and set signals */
+	button_0 = gtk_button_new_with_label(b0_text);
+	gtk_signal_connect(GTK_OBJECT(button_0), "clicked",
+			GTK_SIGNAL_FUNC(dialog_button_press),
+			GINT_TO_POINTER(0));
+	gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area),
+			button_0);
+
+	if (b1_text != NULL) {
+		button_1 = gtk_button_new_with_label(b1_text);
+		gtk_signal_connect(GTK_OBJECT(button_1), "clicked",
+				GTK_SIGNAL_FUNC(dialog_button_press),
+				GINT_TO_POINTER(1));
+		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area),
+				button_1);
+	}
+
+	if (b2_text) {
+		button_2 = gtk_button_new_with_label(b2_text);
+		gtk_signal_connect(GTK_OBJECT(button_2), "clicked",
+				GTK_SIGNAL_FUNC(dialog_button_press),
+				GINT_TO_POINTER(2));
+		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area),
+				button_2);
+	}
+
+	/* add the label, and show everything we've added to the dialog. */
+	gtk_misc_set_padding(&GTK_LABEL(label)->misc, 10, 10);
+	gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
+	gtk_widget_show_all(dialog);
+
+	/* set window title */
+	gtk_window_set_title(GTK_WINDOW(dialog), title);
+	
+	loop = g_main_new(FALSE);
+	g_main_run(loop);
+	g_main_destroy(loop);
+	gtk_widget_destroy(dialog);
+	
+	return_val(button_pressed);
+}
diff --git a/history.c b/history.c
new file mode 100644
index 0000000..ab2adb2
--- /dev/null
+++ b/history.c
@@ -0,0 +1,377 @@
+#include <wmcliphist.h>
+
+
+int	autosave_period = 120;
+int	confirm_exec = 0;
+int	exec_immediately = 1;
+
+/*
+ * process new history item
+ */
+void
+process_item(char *content, size_t length, gint locked, gboolean exec)
+{
+	GList		*list_node;
+	ACTION		*action;
+	gboolean	processed = FALSE;
+	HISTORY_ITEM	*hist_item;
+
+	begin_func("process_item");
+
+	list_node = g_list_first(action_list);
+	while (list_node) {
+
+		action = (ACTION *)list_node->data;
+
+		/* check if some action is requested */
+		if (regexec(&action->expression, content, 0, NULL, 0) != 0) {
+			list_node = g_list_next(list_node);
+			continue;
+		}
+
+		/* match - execute requested action */
+
+		if (action->action == ACT_IGNORE) {
+			processed = TRUE;
+			break;
+		}
+		if (action->action == ACT_EXEC && exec_immediately == TRUE
+				&& exec == TRUE) {
+
+			exec_item(content, length, action);
+
+		} 
+		if (action->action == ACT_SUBMENU) {
+
+			/* test if such item already exists in this menu */
+			processed = TRUE;
+
+			/* add item to menu and item list */
+			hist_item = menu_item_add(content, length, locked,
+					action->submenu);
+
+			/* when auto_take_up is true, set selection owner to myself */
+			if (auto_take_up == 1) {
+				selected = hist_item;
+				if (gtk_selection_owner_set(dock_app,
+							GDK_SELECTION_PRIMARY,
+							GDK_CURRENT_TIME) == 0) {
+					selected = NULL;
+				}
+			}
+			
+			dump_history_list("added item");
+			break;
+		}
+
+		list_node = g_list_next(list_node);
+	}
+
+	if (processed == FALSE) {
+		hist_item = menu_item_add(content, length, locked, menu_hist);
+
+		fprintf(stderr, "auto_take_up=%d\n", auto_take_up);
+		
+		/* when auto_take_up is true, set selection owner to myself */
+		if (auto_take_up == 1) {
+			selected = hist_item;
+			if (gtk_selection_owner_set(dock_app,
+						GDK_SELECTION_PRIMARY,
+						GDK_CURRENT_TIME) == 0) {
+				selected = NULL;
+			}
+		}
+	}
+
+	return_void();
+}
+
+void
+move_item_to_begin(HISTORY_ITEM *item) {
+	GList	*list_node;
+
+	begin_func("menu_item_activated");
+
+	if (!(list_node = g_list_find(history_items, item))) {
+		g_assert((list_node != NULL));
+	}
+
+	gtk_menu_popdown(GTK_MENU(menu_hist));
+	/* move previously stored item to beginning */
+	gtk_menu_reorder_child(GTK_MENU(item->menu),
+			item->menu_item, 1);
+	history_items = g_list_remove_link(history_items, list_node);
+	history_items = g_list_concat(list_node, history_items);
+	selected = item;
+	if (gtk_selection_owner_set(dock_app,
+				GDK_SELECTION_PRIMARY,
+				GDK_CURRENT_TIME) == 0)
+		selected = NULL;
+}
+
+
+/*
+ * Exec's an action on item.
+ */
+void
+exec_item(char *content, size_t len, ACTION *action)
+{
+	int	msg_result = 0, res;
+	gchar	*msg_buf;
+	gchar	*exec_buf;
+	gchar	*buf;
+
+	buf = g_new0(char, len + 1);
+	strncpy(buf, content, len);
+	buf[len] = '\0';
+
+	/* If we're not given an action to perform, find the first matching
+	 * exec action, and perform it */
+	if (!action) {
+		GList	*list_node;
+		ACTION  *a;
+		list_node = g_list_first(action_list);
+		while (list_node) {
+			a = (ACTION *)list_node->data;
+			/* check if some action is requested */
+			if ((regexec(&a->expression, buf, 0, NULL, 0) == 0)
+			    && (a->action == ACT_EXEC)) {
+				action = a;
+				break;
+			}
+			list_node = g_list_next(list_node);
+		}
+	}
+
+	if (!action || action->action != ACT_EXEC) return;
+
+	exec_buf = g_new0(char, strlen(buf) +
+			strlen(action->command) + 1);
+	sprintf(exec_buf, action->command, buf);
+	if (confirm_exec) {
+		msg_buf = g_new0(char, strlen(exec_buf) + 256);
+		sprintf(msg_buf, "Do you want to perform the"
+				"following action?\n\n%s",
+				exec_buf);
+		msg_result = show_message(msg_buf,
+				"wmcliphist", "Yes", "No",
+				NULL);
+		g_free(msg_buf);
+	}
+
+	/* create child and exec command */
+	if (msg_result == 0 && fork() == 0) {
+		/* child */
+		res = system(exec_buf);
+		if (res == -1)
+			fprintf(stderr, "Cannot exec '%s'\n", exec_buf);
+		else if (res == 127)
+			fprintf(stderr, "/bin/sh not found\n");
+		g_free(exec_buf);
+		_exit(0);
+	} else {
+		/* parent */
+		g_free(exec_buf);
+	}
+}
+
+/*
+ * loads history from file
+ */
+int
+history_load()
+{
+	gchar		*buf;
+	gint		len;
+	gint		ver;
+	FILE		*f;
+	gchar		*fname;
+	gint		locked;
+	int		tmp_errno = 0;
+
+	begin_func("history_load");
+
+	fname = rcconfig_get_name(".data");
+	if (!(f = fopen(fname, "r"))) {
+		errno = E_OPEN;
+		return_val(-1);
+	}
+
+	if (fread(&ver, sizeof(gint), 1, f) != 1) {
+		fclose(f);
+		return_val(0);
+	}
+
+	/* delete old history file */
+	if (ver == 0x0001) {
+		fclose(f);
+		if (remove(rcconfig_get_name(".data"))) {
+			errno = E_REMOVE;
+			return_val(-1);
+		}
+		return_val(0);
+	}
+	
+	while (!feof(f)) {
+
+		if (fread(&len, sizeof(gint), 1, f) != 1)
+			break;
+
+		if (num_items == num_items_to_keep) {
+			tmp_errno = E_TOO_MUCH;
+			break;
+		}
+
+		buf = g_new0(gchar, len + 1);
+		if (fread(buf, len, 1, f) != 1) {
+			g_free(buf);
+			tmp_errno = E_INVALID;
+			break;
+		}
+		buf[len] = '\0';
+
+		if (fread(&locked, sizeof(gint), 1, f) != 1) {
+			g_free(buf);
+			tmp_errno = E_INVALID;
+			break;
+		}
+
+		process_item(buf, len, locked, FALSE);
+		g_free(buf);
+
+	}
+
+	fclose(f);
+	/* history_items = g_list_reverse(history_items); */
+	dump_history_list("load_history()");
+
+	errno = tmp_errno;
+	
+	if (errno == 0)
+		return_val(0);
+	else
+		return_val(-1);
+}
+
+
+/*
+ * store history to file
+ */
+int
+history_save()
+{
+	char		*fname;
+	gint		version = VERSION;
+	FILE		*f;
+	HISTORY_ITEM	*hist_item;
+	GList		*list_node;
+	int		tmp_errno = 0;
+
+	begin_func("history_save");
+
+	fname = g_strdup(rcconfig_get_name(".data.tmp"));
+
+	if (!(f = fopen(fname, "w"))) {
+		perror("fopen");
+		g_free(fname);
+		errno = E_OPEN;
+		return_val(-1);
+	}
+
+	if ((chmod(fname, S_IRUSR|S_IWUSR)) != 0) {
+		perror("chmod");
+		fclose(f);
+		unlink(fname);
+		g_free(fname);
+		errno = E_OPEN;
+		return_val(-1);
+	}
+
+	if (fwrite(&version, sizeof(gint), 1, f) != 1) {
+		perror("fwrite version");
+		fclose(f);
+		unlink(fname);
+		g_free(fname);
+		errno = E_WRITE;
+		return_val(-1);
+	}
+
+	list_node = g_list_last(history_items);
+	while (list_node) {
+		hist_item = (HISTORY_ITEM *)list_node->data;
+		if (fwrite(&hist_item->content_len, sizeof(gint), 1, f) != 1) {
+			tmp_errno = E_WRITE;
+			break;
+		}
+		if (fwrite(hist_item->content, hist_item->content_len, 1, f) != 1) {
+			tmp_errno = E_WRITE;
+			break;
+		}
+		if (fwrite(&hist_item->locked, sizeof(gint), 1, f) != 1) {
+			tmp_errno = E_WRITE;
+			break;
+		}
+		list_node = g_list_previous(list_node);
+	}
+
+	fclose(f);
+
+	if (!list_node) {
+		if (rename(fname, rcconfig_get_name(".data")) != 0) {
+			perror("rename");
+			unlink(fname);
+			g_free(fname);
+			errno = E_RENAME;
+			return_val(-1);
+		}
+		g_free(fname);
+		return_val(0);
+	}
+
+	errno = tmp_errno;
+	unlink(fname);
+	g_free(fname);
+
+	return_val(-1);
+}
+
+
+/*
+ * free history data
+ */
+void
+history_free()
+{
+	HISTORY_ITEM	*hist_item;
+	GList		*list_node;
+
+	begin_func("history_free");
+
+	list_node = g_list_last(history_items);
+	while (list_node) {
+		hist_item = (HISTORY_ITEM *)list_node->data;
+		gtk_container_remove(GTK_CONTAINER(hist_item->menu),
+				hist_item->menu_item);
+		gtk_widget_destroy(hist_item->menu_item);
+		g_free(hist_item->content);
+		g_free(hist_item);
+		list_node = g_list_previous(list_node);
+	}
+	g_list_free(history_items);
+
+	return_void();
+}
+
+
+/*
+ * autosave timer function
+ */
+gboolean
+history_autosave()
+{
+	begin_func("history_autosave");
+
+	history_save();
+	return_val(TRUE);
+}
+
diff --git a/hotkeys.c b/hotkeys.c
new file mode 100644
index 0000000..5c54b0b
--- /dev/null
+++ b/hotkeys.c
@@ -0,0 +1,198 @@
+#include <wmcliphist.h>
+#include <gdk/gdkkeysyms.h>
+
+/* Exec on hotkey? */
+int exec_hotkey = 1;
+
+/* hotkeys */
+gchar	menukey_str[32] = DEF_MENUKEY;
+guint	menukey;
+guint	menukey_mask;
+
+gchar	prev_item_key_str[32] = DEF_PREV_ITEM_KEY;
+guint	prev_item_key;
+guint	prev_item_mask;
+
+gchar	exec_item_key_str[32] = DEF_EXEC_ITEM_KEY;
+guint	exec_item_key;
+guint	exec_item_mask;
+
+/*
+ * filter grabbed hotkeys
+ */
+GdkFilterReturn
+global_keys_filter(GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
+{
+	XEvent	*xevent = (XEvent *)gdk_xevent;
+
+	begin_func("global_keys_filter");
+
+	if (xevent->type == KeyPress) {
+		if (xevent->xkey.keycode ==
+				XKeysymToKeycode(GDK_DISPLAY(), menukey) &&
+				xevent->xkey.state & menukey_mask) {
+			/* popup history menu */
+			gtk_menu_popup(GTK_MENU(menu_hist),
+					NULL, NULL,
+					NULL, NULL,
+					0,
+					GDK_CURRENT_TIME);
+			return_val(GDK_FILTER_REMOVE);
+		} else if (xevent->xkey.keycode ==
+				XKeysymToKeycode(GDK_DISPLAY(), prev_item_key)
+				&& xevent->xkey.state & prev_item_mask) {
+			/* switch first two history items */
+			GList *second;
+			if (history_items == NULL) {
+				return_val(GDK_FILTER_REMOVE);
+			}
+			second = g_list_first(history_items)->next;
+			if (second == NULL) {
+				return_val(GDK_FILTER_REMOVE);
+			}
+	
+			move_item_to_begin((HISTORY_ITEM *) second->data);
+
+			return_val(GDK_FILTER_REMOVE);
+		} else if (xevent->xkey.keycode ==
+				XKeysymToKeycode(GDK_DISPLAY(), exec_item_key) &&
+				xevent->xkey.state & exec_item_mask) {
+			/* exec command on current item */
+			if (exec_hotkey) {
+				HISTORY_ITEM *hist_item;
+				hist_item = (HISTORY_ITEM *) g_list_first(history_items)->data;
+				exec_item(hist_item->content, hist_item->content_len, NULL);
+			}
+			return_val(GDK_FILTER_REMOVE);
+		}
+	}
+
+	return_val(GDK_FILTER_CONTINUE);
+}
+
+
+/*
+ * parse key string
+ */
+int
+hotkey_parse(char *hotkey, guint *key, guint *mask)
+{
+	char	c;
+	char	*tmp = g_new0(char, strlen(hotkey));
+	int	i, idx = 0;
+
+	begin_func("hotkey_parse");
+
+	*mask = 0;
+	
+	for (i = 0; i < strlen(hotkey); i++) {
+		c = hotkey[i];
+		if (isalpha(c)) {
+			tmp[idx++] = c;
+			tmp[idx] = '\0';
+		} else if (c == '+' || c == '-') {
+			idx = 0;
+			if (strcasecmp(tmp, "control") == 0 ||
+					strcasecmp(tmp, "ctrl") == 0)
+				*mask |= ControlMask;
+			else if (strcasecmp(tmp, "alt") == 0)
+				*mask |= Mod1Mask;
+			else if (strcasecmp(tmp, "shift") == 0)
+				*mask |= ShiftMask;
+			else {
+				fprintf(stderr, "Invalid key modifier: %s\n",
+						tmp);
+				g_free(tmp);
+				return_val(-1);
+			}
+		}
+	}
+
+	if ((*key = gdk_keyval_from_name(tmp)) == GDK_VoidSymbol) {
+		g_free(tmp);
+		return_val(-1);
+	}
+	
+	g_free(tmp);
+	return_val(0);
+}
+
+
+
+#define grab_key(keysym, basemask) \
+	XGrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask, GDK_ROOT_WINDOW(), True, GrabModeAsync, \
+			GrabModeAsync); \
+	XGrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask | LockMask, GDK_ROOT_WINDOW(), True, \
+			GrabModeAsync, GrabModeAsync); \
+	XGrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask | Mod2Mask, GDK_ROOT_WINDOW(), True, \
+			GrabModeAsync, GrabModeAsync); \
+	XGrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask | Mod2Mask | LockMask, GDK_ROOT_WINDOW(), \
+			True, GrabModeAsync, GrabModeAsync);
+
+
+#define ungrab_key(keysym, basemask) \
+	XUngrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask, GDK_ROOT_WINDOW()); \
+	XUngrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask | LockMask, GDK_ROOT_WINDOW()); \
+	XUngrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask | Mod2Mask, GDK_ROOT_WINDOW()); \
+	XUngrabKey(GDK_DISPLAY(), XKeysymToKeycode(GDK_DISPLAY(), keysym), \
+			basemask | Mod2Mask | LockMask, GDK_ROOT_WINDOW());
+
+
+/*
+ * initialize hotkeys
+ */
+void
+hotkeys_init()
+{
+	char	msg_str[128];
+
+	begin_func("hotkeys_init");
+
+	if (hotkey_parse(menukey_str, &menukey, &menukey_mask) != 0) {
+		sprintf(msg_str, "Invalid menu hotkey '%s'.\nFalling back to "
+				"default (" DEF_MENUKEY ")\n", menukey_str);
+		show_message(msg_str, "Warning", "OK", NULL, NULL);
+		strcpy(menukey_str, DEF_MENUKEY);
+		hotkey_parse(menukey_str, &menukey, &menukey_mask);
+	}
+	if (hotkey_parse(prev_item_key_str, &prev_item_key, &prev_item_mask) != 0) {
+		sprintf(msg_str, "Invalid previous item hotkey '%s'.\n"
+				"Falling back to default (" DEF_PREV_ITEM_KEY
+				")\n", prev_item_key_str);
+		show_message(msg_str, "Warning", "OK", NULL, NULL);
+		hotkey_parse(DEF_PREV_ITEM_KEY, &prev_item_key,
+				&prev_item_mask);
+	}
+	if (hotkey_parse(exec_item_key_str, &exec_item_key, &exec_item_mask) != 0) {
+		sprintf(msg_str, "Invalid exec hotkey '%s'.\n"
+				"Falling back to default (" DEF_EXEC_ITEM_KEY
+				")\n", exec_item_key_str);
+		show_message(msg_str, "Warning", "OK", NULL, NULL);
+		hotkey_parse(DEF_EXEC_ITEM_KEY, &exec_item_key,
+				&exec_item_mask);
+	}
+	gdk_window_add_filter(GDK_ROOT_PARENT(), global_keys_filter, NULL);
+	grab_key(menukey, menukey_mask);
+	grab_key(prev_item_key, prev_item_mask);
+	grab_key(exec_item_key, exec_item_mask);
+
+	return_void();
+}
+
+/*
+ * disable hotkeys
+ */
+void
+hotkeys_done()
+{
+	begin_func("hotkeys_done");
+	ungrab_key(menukey, menukey_mask);
+	return_void();
+}
diff --git a/icon/CVS/Entries b/icon/CVS/Entries
new file mode 100644
index 0000000..eb356b6
--- /dev/null
+++ b/icon/CVS/Entries
@@ -0,0 +1,19 @@
+/ico_16x16.xcf.bz2/1.1/Mon Jun 23 21:24:24 2003//
+/ico_16x16.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_16x16_mask.xbm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_30x30.xcf.bz2/1.1/Mon Jun 23 21:24:24 2003//
+/ico_30x30_black.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_30x30_gray.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_30x30_mask.xbm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_30x30_white.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_40x40.xcf.bz2/1.1/Mon Jun 23 21:24:24 2003//
+/ico_40x40_black.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_40x40_gray.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_40x40_mask.xbm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_40x40_white.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_60x60.xcf.bz2/1.1/Mon Jun 23 21:24:24 2003//
+/ico_60x60_black.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_60x60_gray.xpm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_60x60_mask.xbm/1.1/Mon Jun 23 21:24:24 2003//
+/ico_60x60_white.xpm/1.1/Mon Jun 23 21:24:24 2003//
+D
diff --git a/icon/CVS/Repository b/icon/CVS/Repository
new file mode 100644
index 0000000..f666999
--- /dev/null
+++ b/icon/CVS/Repository
@@ -0,0 +1 @@
+wmcliphist/icon
diff --git a/icon/CVS/Root b/icon/CVS/Root
new file mode 100644
index 0000000..e4d5579
--- /dev/null
+++ b/icon/CVS/Root
@@ -0,0 +1 @@
+/var/cvs/root/
diff --git a/icon/ico_16x16.xcf.bz2 b/icon/ico_16x16.xcf.bz2
new file mode 100644
index 0000000..350a6ed
Binary files /dev/null and b/icon/ico_16x16.xcf.bz2 differ
diff --git a/icon/ico_16x16.xpm b/icon/ico_16x16.xpm
new file mode 100644
index 0000000..a980e1a
--- /dev/null
+++ b/icon/ico_16x16.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static char * ico_16x16_xpm[] = {
+"16 16 9 1",
+" 	c None",
+".	c #D6D6FF",
+"+	c #EFEFFF",
+"@	c #ABABCC",
+"#	c #B1775B",
+"$	c #000000",
+"%	c #895C47",
+"&	c #FFFACC",
+"*	c #808080",
+"      .++@      ",
+"   ###+$%@$##   ",
+"  ###+....@###  ",
+"  #&@@@@@@@@&#$ ",
+"  #&&&&&&&&&&#$ ",
+"  #&********&#$ ",
+"  #&&&&&&&&&&#$ ",
+"  #&********&#$ ",
+"  #&&&&&&&&&&#$ ",
+"  #&********&#$ ",
+"  #&&&&&&&&&&#$ ",
+"  #&*****&&&&#$ ",
+"  #&&&&&&&&&&#$ ",
+"  #&&&&&&&&&&#$ ",
+"   ##########$$ ",
+"    $$$$$$$$$$  "};
diff --git a/icon/ico_16x16_mask.xbm b/icon/ico_16x16_mask.xbm
new file mode 100644
index 0000000..3b82ead
--- /dev/null
+++ b/icon/ico_16x16_mask.xbm
@@ -0,0 +1,7 @@
+/* Created with The GIMP */
+#define ico_16x16_mask_width 16
+#define ico_16x16_mask_height 16
+static unsigned char ico_16x16_mask_bits[] = {
+   0xc0, 0x03, 0xf8, 0x1f, 0xfc, 0x3f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f,
+   0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f,
+   0xfc, 0x7f, 0xfc, 0x7f, 0xf8, 0x7f, 0xf0, 0x3f };
diff --git a/icon/ico_30x30.xcf.bz2 b/icon/ico_30x30.xcf.bz2
new file mode 100644
index 0000000..3a78baa
Binary files /dev/null and b/icon/ico_30x30.xcf.bz2 differ
diff --git a/icon/ico_30x30_black.xpm b/icon/ico_30x30_black.xpm
new file mode 100644
index 0000000..228432c
--- /dev/null
+++ b/icon/ico_30x30_black.xpm
@@ -0,0 +1,381 @@
+/* XPM */
+static char * ico_30x30_black_xpm[] = {
+"30 30 348 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #404041",
+"@ 	c #5C5C5E",
+"# 	c #424242",
+"$ 	c #020202",
+"% 	c #010101",
+"& 	c #9E9EA4",
+"* 	c #D2D2F2",
+"= 	c #B3B3CE",
+"- 	c #BEBED9",
+"; 	c #CACAD3",
+"> 	c #343434",
+", 	c #4F4F4F",
+"' 	c #E7E7FF",
+") 	c #302E35",
+"! 	c #422D1B",
+"~ 	c #140F0C",
+"{ 	c #A5A5C1",
+"] 	c #E8E8EB",
+"^ 	c #0D0D0D",
+"/ 	c #949494",
+"( 	c #D5D5F8",
+"_ 	c #4F4F5E",
+": 	c #EDEDFF",
+"< 	c #8D8D8D",
+"[ 	c #FFFFFF",
+"} 	c #B87D4C",
+"| 	c #C89265",
+"1 	c #D5A277",
+"2 	c #C79063",
+"3 	c #68482D",
+"4 	c #B1B1B4",
+"5 	c #E0E0FE",
+"6 	c #B7A596",
+"7 	c #F1D1B7",
+"8 	c #847A73",
+"9 	c #B9B9CE",
+"0 	c #EAEAFF",
+"a 	c #FDFDFD",
+"b 	c #716F6D",
+"c 	c #15100D",
+"d 	c #442E23",
+"e 	c #724D3B",
+"f 	c #A36E54",
+"g 	c #B1775B",
+"h 	c #C68F61",
+"i 	c #E9BC96",
+"j 	c #EBBE99",
+"k 	c #6D5847",
+"l 	c #B7B7BE",
+"m 	c #DEDEFF",
+"n 	c #F7F7FF",
+"o 	c #E3E3FF",
+"p 	c #DCDCFF",
+"q 	c #EBEBFF",
+"r 	c #CACACA",
+"s 	c #9D9B9B",
+"t 	c #84766F",
+"u 	c #8C5F48",
+"v 	c #C18859",
+"w 	c #E9BB95",
+"x 	c #5F4D3E",
+"y 	c #A2A2AD",
+"z 	c #D8D8FF",
+"A 	c #F3F3FF",
+"B 	c #FDFDFF",
+"C 	c #FCFCFF",
+"D 	c #FEFEFF",
+"E 	c #E9E9FF",
+"F 	c #D9D9FF",
+"G 	c #7C7979",
+"H 	c #8E5F49",
+"I 	c #754F3C",
+"J 	c #3F2D23",
+"K 	c #C08757",
+"L 	c #DAB08E",
+"M 	c #806753",
+"N 	c #352B23",
+"O 	c #181817",
+"P 	c #DEDEEA",
+"Q 	c #D6D6FF",
+"R 	c #F8F8FF",
+"S 	c #EEEEFF",
+"T 	c #D7D7FF",
+"U 	c #D3D3F4",
+"V 	c #252426",
+"W 	c #87846C",
+"X 	c #EDE8BE",
+"Y 	c #8A5E39",
+"Z 	c #554436",
+"` 	c #31221B",
+" .	c #51372A",
+"..	c #373331",
+"+.	c #CACAD4",
+"@.	c #DBDBFF",
+"#.	c #ECECFF",
+"$.	c #DFDFFF",
+"%.	c #A1A1C0",
+"&.	c #85859E",
+"*.	c #ADADCE",
+"=.	c #808099",
+"-.	c #3D3D48",
+";.	c #464654",
+">.	c #8686A0",
+",.	c #D0D0F8",
+"'.	c #757479",
+").	c #F3EEC1",
+"!.	c #FFFACC",
+"~.	c #19110B",
+"{.	c #53382B",
+"].	c #9D6951",
+"^.	c #90614A",
+"/.	c #3B3736",
+"(.	c #DFDFF2",
+"_.	c #9898B5",
+":.	c #B5B5D8",
+"<.	c #737389",
+"[.	c #26262E",
+"}.	c #74748A",
+"|.	c #616174",
+"1.	c #656579",
+"2.	c #C0C0E5",
+"3.	c #B6B6D9",
+"4.	c #6F6F85",
+"5.	c #29282C",
+"6.	c #746F3D",
+"7.	c #E8E1A5",
+"8.	c #271A14",
+"9.	c #A56F55",
+"0.	c #A16C52",
+"a.	c #1F1814",
+"b.	c #E0E0E5",
+"c.	c #9B9BB9",
+"d.	c #9191AD",
+"e.	c #67677A",
+"f.	c #636376",
+"g.	c #575768",
+"h.	c #464653",
+"i.	c #CECEF5",
+"j.	c #D2D2FA",
+"k.	c #545464",
+"l.	c #32312C",
+"m.	c #454224",
+"n.	c #85804B",
+"o.	c #CAC383",
+"p.	c #ECE6AC",
+"q.	c #815742",
+"r.	c #A46E54",
+"s.	c #774F3C",
+"t.	c #323231",
+"u.	c #565667",
+"v.	c #5F5F71",
+"w.	c #73738A",
+"x.	c #C7C7ED",
+"y.	c #68687B",
+"z.	c #272622",
+"A.	c #504D2B",
+"B.	c #ACA567",
+"C.	c #DED795",
+"D.	c #F1EBB4",
+"E.	c #FEF9CB",
+"F.	c #79513E",
+"G.	c #8D5E47",
+"H.	c #7A513D",
+"I.	c #3D3835",
+"J.	c #E4E4FF",
+"K.	c #B5B5D7",
+"L.	c #69697D",
+"M.	c #43412F",
+"N.	c #9E9967",
+"O.	c #E4DDA1",
+"P.	c #F7F2BF",
+"Q.	c #FDF8CA",
+"R.	c #72705B",
+"S.	c #4C3326",
+"T.	c #AD7559",
+"U.	c #875A44",
+"V.	c #714B38",
+"W.	c #241E18",
+"X.	c #DDDCF8",
+"Y.	c #8F8FAA",
+"Z.	c #6B6A71",
+"`.	c #6C6956",
+" +	c #8C8866",
+".+	c #D6D0A1",
+"++	c #FDF7C8",
+"@+	c #F3EEC2",
+"#+	c #5D5C4B",
+"$+	c #5C5A49",
+"%+	c #C2BE9B",
+"&+	c #261913",
+"*+	c #99664E",
+"=+	c #4D4837",
+"-+	c #B1AC7B",
+";+	c #D9D7CF",
+">+	c #9F9B7D",
+",+	c #CAC490",
+"'+	c #F4EEBA",
+")+	c #FDF8CB",
+"!+	c #918F74",
+"~+	c #9D9A7E",
+"{+	c #060302",
+"]+	c #7D533F",
+"^+	c #6C4837",
+"/+	c #959277",
+"(+	c #E8E4BA",
+"_+	c #D3CEA8",
+":+	c #F1EDC1",
+"<+	c #545243",
+"[+	c #A3A083",
+"}+	c #A29F82",
+"|+	c #E1DDB4",
+"1+	c #4C3226",
+"2+	c #424034",
+"3+	c #F7F2C6",
+"4+	c #E7E3B9",
+"5+	c #6F6D59",
+"6+	c #ACA889",
+"7+	c #514F41",
+"8+	c #48473A",
+"9+	c #686653",
+"0+	c #B1AD8D",
+"a+	c #A3A082",
+"b+	c #EBE6BC",
+"c+	c #A7A486",
+"d+	c #1E140F",
+"e+	c #271A13",
+"f+	c #C5C197",
+"g+	c #CAC6A2",
+"h+	c #D8D4AD",
+"i+	c #838069",
+"j+	c #403F33",
+"k+	c #161612",
+"l+	c #333229",
+"m+	c #666451",
+"n+	c #B3AF8F",
+"o+	c #FCF7CA",
+"p+	c #EFEBC0",
+"q+	c #C6C29F",
+"r+	c #7A7862",
+"s+	c #6B6956",
+"t+	c #5A5948",
+"u+	c #010000",
+"v+	c #513628",
+"w+	c #5C583A",
+"x+	c #FEF9CA",
+"y+	c #38372D",
+"z+	c #656351",
+"A+	c #CFCBA6",
+"B+	c #EFEABF",
+"C+	c #E4E0B7",
+"D+	c #EAE5BB",
+"E+	c #B7B392",
+"F+	c #A19E81",
+"G+	c #2B2A23",
+"H+	c #F4EFC3",
+"I+	c #A9A687",
+"J+	c #4A3125",
+"K+	c #784F3C",
+"L+	c #1A150D",
+"M+	c #DED8A1",
+"N+	c #FBF6C9",
+"O+	c #A09D80",
+"P+	c #828068",
+"Q+	c #525041",
+"R+	c #A6A385",
+"S+	c #B8B493",
+"T+	c #FAF5C8",
+"U+	c #979479",
+"V+	c #160F0B",
+"W+	c #412B21",
+"X+	c #6B6743",
+"Y+	c #F2EDC2",
+"Z+	c #7F7D66",
+"`+	c #A29E81",
+" @	c #1D1C17",
+".@	c #3C3B30",
+"+@	c #89866D",
+"@@	c #BBB796",
+"#@	c #646250",
+"$@	c #2D2C24",
+"%@	c #918E74",
+"&@	c #0F0A06",
+"*@	c #55392B",
+"=@	c #744D3A",
+"-@	c #19150D",
+";@	c #DDD7A1",
+">@	c #1F1E19",
+",@	c #27261F",
+"'@	c #DCD7B0",
+")@	c #F5F0C4",
+"!@	c #DAD5AE",
+"~@	c #7B7963",
+"{@	c #797661",
+"]@	c #E9E5BA",
+"^@	c #DED9B1",
+"/@	c #F7F2C5",
+"(@	c #604229",
+"_@	c #1D130E",
+":@	c #3D291F",
+"<@	c #696542",
+"[@	c #C6C29E",
+"}@	c #D2CEA8",
+"|@	c #ECE7BC",
+"1@	c #9B987C",
+"2@	c #585646",
+"3@	c #D4CFA9",
+"4@	c #C5956D",
+"5@	c #0B0907",
+"6@	c #5A3C2D",
+"7@	c #704A38",
+"8@	c #111009",
+"9@	c #E2DCA4",
+"0@	c #DCD8B0",
+"a@	c #807E67",
+"b@	c #595747",
+"c@	c #908D73",
+"d@	c #B0AC8D",
+"e@	c #F6F1C5",
+"f@	c #F0EBC0",
+"g@	c #545343",
+"h@	c #636250",
+"i@	c #E0B089",
+"j@	c #635040",
+"k@	c #211610",
+"l@	c #2F1F17",
+"m@	c #7D794D",
+"n@	c #4F4E3F",
+"o@	c #21201A",
+"p@	c #E0DCB3",
+"q@	c #F8F3C6",
+"r@	c #9A977B",
+"s@	c #37362C",
+"t@	c #B2AF8F",
+"u@	c #CDC9A4",
+"v@	c #D4A076",
+"w@	c #C9A283",
+"x@	c #604030",
+"y@	c #624131",
+"z@	c #232213",
+"A@	c #E6E0A3",
+"B@	c #E6E2B8",
+"C@	c #CBC7A3",
+"D@	c #E4E0B6",
+"E@	c #131310",
+"F@	c #575646",
+"G@	c #4C4A3D",
+". . . . . . . . . . . . + @ # $ . . . . . . . . . . . . . . ",
+". . . . . . . . . . % & * = - ; > . . . . . . . . . . . . . ",
+". . . . . . . . . . , ' ) ! ~ { ] ^ . . . . . . . . . . . . ",
+". . . . . . . . . . / ( . . . _ : < . . . . . . . . [ . . . ",
+". . . . } } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g g g [ . . . ",
+". . . . } h i j j k l m n o p q [ [ [ r s t u g g g [ . . . ",
+". . . . v w j j j x y z A [ [ [ B C D E F 0 G H I J [ . . . ",
+". . . . K j L M N O P Q Q R [ S T Q Q Q Q Q U V W X [ . . . ",
+". . . . Y Z `  ...+. at .Q Q #.$.%.&.*.=.-.;.>.,.'.).!.[ . . . ",
+". . . ~.{.].^./.(.Q _.:.Q Q <.[.}.|.1.2.3.4.5.6.7.!.[ . . . ",
+". . 8.9.g 0.a.b.T c.d.e.f.g.h.i.j._.k.l.m.n.o.p.!.!.[ . . . ",
+". . q.g r.s.t.E Q u.v.%.w.d.x.y.z.A.B.C.D.E.!.!.!.!.[ . . . ",
+". . F.g G.H.I.J.Q Q Q Q K.L.M.N.O.P.!.!.!.!.!.!.Q.R.[ . . . ",
+". . S.T.U.V.W.X.i.Y.Z.`. +.+++!.!.!.!.!.!.!. at +#+$+%+[ . . . ",
+". . &+*+s.=+-+;+>+,+'+!.!.!.!.!.!.!.!.)+!+!.!.~+!.!.[ . . . ",
+". . {+]+^+/+!.!.!.!.!.!.!.!.Q.(+_+:+<+[+}+|+!.!.!.!.[ . . . ",
+". . . 1+s.2+!.!.!.!.!.3+4+5+6+7+8+9+0+a+!.!.!.!.b+c+[ . . . ",
+". . . d+H.e+f+!.g+h+i+j+k+l+m+n+o+p+!.!.q+r+s+E.t+W [ . . . ",
+". . . u+V.v+w+x+%+y+z+A+B+C+!.!.o+D+E+F+G+F+!.!.H+I+[ . . . ",
+". . . . J+K+L+M+!.|+!.!.!.!.N+O+P+y+Q+R+S+!.!.3+T+U+[ . . . ",
+". . . . V+H.W+X+E.!.Y+E.Z+`+ @. at +@T+Q.!.!.@@#@$@%@!.[ . . . ",
+". . . . &@*@=@-@;@!.~+>@, at r+'@N+!.!.)@!@~@{@]@^@/@!.[ . . . ",
+". . . . (@_ at H.:@<@E.o+[@}@!.!.|@1 at 2@8+m+3@@+!.!.!.O+[ . . . ",
+". . . . 4 at 5@6 at 7@8 at 9@!.T+0 at s+a@b at c@d at e@!.!.!.!.f at g@h@[ . . . ",
+". . . . i at j@k at H.l@m at E.!.n at o@n+p@!.!.!.!.q at S+r@s at t@u@[ . . . ",
+". . . . v at w@% x at y@z at A@!.B at C@!.!.!.!.D@$+E at 5+F@N+u at G@[ . . . ",
+". . . [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_30x30_gray.xpm b/icon/ico_30x30_gray.xpm
new file mode 100644
index 0000000..ee0981e
--- /dev/null
+++ b/icon/ico_30x30_gray.xpm
@@ -0,0 +1,397 @@
+/* XPM */
+static char * ico_30x30_gray_xpm[] = {
+"30 30 364 2",
+"  	c None",
+". 	c #7F7F7F",
+"+ 	c #575757",
+"@ 	c #5C5C5D",
+"# 	c #707072",
+"$ 	c #5F5F5F",
+"% 	c #4C4C4C",
+"& 	c #7A7A7A",
+"* 	c #484848",
+"= 	c #9F9FA5",
+"- 	c #D2D2F2",
+"; 	c #B3B3CE",
+"> 	c #BEBED9",
+", 	c #CACAD3",
+"' 	c #4B4B4B",
+") 	c #797979",
+"! 	c #767676",
+"~ 	c #515151",
+"{ 	c #E7E7FF",
+"] 	c #302E35",
+"^ 	c #422D1B",
+"/ 	c #140F0C",
+"( 	c #A5A5C1",
+"_ 	c #E8E8EB",
+": 	c #444444",
+"< 	c #000000",
+"[ 	c #949494",
+"} 	c #D5D5F8",
+"| 	c #4F4F5E",
+"1 	c #EDEDFF",
+"2 	c #8E8E8E",
+"3 	c #FFFFFF",
+"4 	c #B87D4C",
+"5 	c #C89265",
+"6 	c #D5A277",
+"7 	c #C79063",
+"8 	c #68482D",
+"9 	c #B1B1B4",
+"0 	c #E0E0FE",
+"a 	c #B7A596",
+"b 	c #F1D1B7",
+"c 	c #847A73",
+"d 	c #B9B9CE",
+"e 	c #EAEAFF",
+"f 	c #FDFDFD",
+"g 	c #716F6D",
+"h 	c #15100D",
+"i 	c #442E23",
+"j 	c #724D3B",
+"k 	c #A36E54",
+"l 	c #B1775B",
+"m 	c #C68F61",
+"n 	c #E9BC96",
+"o 	c #EBBE99",
+"p 	c #6D5847",
+"q 	c #B7B7BE",
+"r 	c #DEDEFF",
+"s 	c #F7F7FF",
+"t 	c #E3E3FF",
+"u 	c #DCDCFF",
+"v 	c #EBEBFF",
+"w 	c #CACACA",
+"x 	c #9D9B9B",
+"y 	c #84766F",
+"z 	c #8C5F48",
+"A 	c #C18859",
+"B 	c #E9BB95",
+"C 	c #5F4D3E",
+"D 	c #A2A2AD",
+"E 	c #D8D8FF",
+"F 	c #F3F3FF",
+"G 	c #FDFDFF",
+"H 	c #FCFCFF",
+"I 	c #FEFEFF",
+"J 	c #E9E9FF",
+"K 	c #D9D9FF",
+"L 	c #7C7979",
+"M 	c #8E5F49",
+"N 	c #754F3C",
+"O 	c #3F2D23",
+"P 	c #C08757",
+"Q 	c #DAB08E",
+"R 	c #806753",
+"S 	c #352B23",
+"T 	c #181817",
+"U 	c #DEDEEA",
+"V 	c #D6D6FF",
+"W 	c #F8F8FF",
+"X 	c #EEEEFF",
+"Y 	c #D7D7FF",
+"Z 	c #D3D3F4",
+"` 	c #252426",
+" .	c #87846C",
+"..	c #EDE8BE",
+"+.	c #8A5E39",
+"@.	c #554436",
+"#.	c #31221B",
+"$.	c #51372A",
+"%.	c #373331",
+"&.	c #CACAD4",
+"*.	c #DBDBFF",
+"=.	c #ECECFF",
+"-.	c #DFDFFF",
+";.	c #A1A1C0",
+">.	c #85859E",
+",.	c #ADADCE",
+"'.	c #808099",
+").	c #3D3D48",
+"!.	c #464654",
+"~.	c #8686A0",
+"{.	c #D0D0F8",
+"].	c #757479",
+"^.	c #F3EEC1",
+"/.	c #FFFACC",
+"(.	c #7E7E7E",
+"_.	c #545454",
+":.	c #2C231E",
+"<.	c #53382B",
+"[.	c #9D6951",
+"}.	c #90614A",
+"|.	c #3B3736",
+"1.	c #DFDFF2",
+"2.	c #9898B5",
+"3.	c #B5B5D8",
+"4.	c #737389",
+"5.	c #26262E",
+"6.	c #74748A",
+"7.	c #616174",
+"8.	c #656579",
+"9.	c #C0C0E5",
+"0.	c #B6B6D9",
+"a.	c #6F6F85",
+"b.	c #29282C",
+"c.	c #746F3D",
+"d.	c #E8E1A5",
+"e.	c #393939",
+"f.	c #271A14",
+"g.	c #A56F55",
+"h.	c #A16C52",
+"i.	c #1F1814",
+"j.	c #E0E0E5",
+"k.	c #9B9BB9",
+"l.	c #9191AD",
+"m.	c #67677A",
+"n.	c #636376",
+"o.	c #575768",
+"p.	c #464653",
+"q.	c #CECEF5",
+"r.	c #D2D2FA",
+"s.	c #545464",
+"t.	c #32312C",
+"u.	c #454224",
+"v.	c #85804B",
+"w.	c #CAC383",
+"x.	c #ECE6AC",
+"y.	c #171717",
+"z.	c #815742",
+"A.	c #A46E54",
+"B.	c #774F3C",
+"C.	c #323231",
+"D.	c #565667",
+"E.	c #5F5F71",
+"F.	c #73738A",
+"G.	c #C7C7ED",
+"H.	c #68687B",
+"I.	c #272622",
+"J.	c #504D2B",
+"K.	c #ACA567",
+"L.	c #DED795",
+"M.	c #F1EBB4",
+"N.	c #FEF9CB",
+"O.	c #242424",
+"P.	c #79513E",
+"Q.	c #8D5E47",
+"R.	c #7A513D",
+"S.	c #3D3835",
+"T.	c #E4E4FF",
+"U.	c #B5B5D7",
+"V.	c #69697D",
+"W.	c #43412F",
+"X.	c #9E9967",
+"Y.	c #E4DDA1",
+"Z.	c #F7F2BF",
+"`.	c #FDF8CA",
+" +	c #72705B",
+".+	c #3D3D3D",
+"++	c #4C3326",
+"@+	c #AD7559",
+"#+	c #875A44",
+"$+	c #714B38",
+"%+	c #241E18",
+"&+	c #DDDCF8",
+"*+	c #8F8FAA",
+"=+	c #6B6A71",
+"-+	c #6C6956",
+";+	c #8C8866",
+">+	c #D6D0A1",
+",+	c #FDF7C8",
+"'+	c #F3EEC2",
+")+	c #5D5C4B",
+"!+	c #5C5A49",
+"~+	c #C2BE9B",
+"{+	c #261913",
+"]+	c #99664E",
+"^+	c #4D4837",
+"/+	c #B1AC7B",
+"(+	c #D9D7CF",
+"_+	c #9F9B7D",
+":+	c #CAC490",
+"<+	c #F4EEBA",
+"[+	c #FDF8CB",
+"}+	c #918F74",
+"|+	c #9D9A7E",
+"1+	c #717171",
+"2+	c #070403",
+"3+	c #7D533F",
+"4+	c #6C4837",
+"5+	c #959277",
+"6+	c #E8E4BA",
+"7+	c #D3CEA8",
+"8+	c #F1EDC1",
+"9+	c #545243",
+"0+	c #A3A083",
+"a+	c #A29F82",
+"b+	c #E1DDB4",
+"c+	c #202020",
+"d+	c #4C3226",
+"e+	c #424034",
+"f+	c #F7F2C6",
+"g+	c #E7E3B9",
+"h+	c #6F6D59",
+"i+	c #ACA889",
+"j+	c #514F41",
+"k+	c #48473A",
+"l+	c #686653",
+"m+	c #B1AD8D",
+"n+	c #A3A082",
+"o+	c #EBE6BC",
+"p+	c #A7A486",
+"q+	c #1E140F",
+"r+	c #271A13",
+"s+	c #C5C197",
+"t+	c #CAC6A2",
+"u+	c #D8D4AD",
+"v+	c #838069",
+"w+	c #403F33",
+"x+	c #161612",
+"y+	c #333229",
+"z+	c #666451",
+"A+	c #B3AF8F",
+"B+	c #FCF7CA",
+"C+	c #EFEBC0",
+"D+	c #C6C29F",
+"E+	c #7A7862",
+"F+	c #6B6956",
+"G+	c #5A5948",
+"H+	c #6E6E6E",
+"I+	c #020101",
+"J+	c #513628",
+"K+	c #5C583A",
+"L+	c #FEF9CA",
+"M+	c #38372D",
+"N+	c #656351",
+"O+	c #CFCBA6",
+"P+	c #EFEABF",
+"Q+	c #E4E0B7",
+"R+	c #EAE5BB",
+"S+	c #B7B392",
+"T+	c #A19E81",
+"U+	c #2B2A23",
+"V+	c #F4EFC3",
+"W+	c #A9A687",
+"X+	c #151515",
+"Y+	c #4A3125",
+"Z+	c #784F3C",
+"`+	c #1A150D",
+" @	c #DED8A1",
+".@	c #FBF6C9",
+"+@	c #A09D80",
+"@@	c #828068",
+"#@	c #525041",
+"$@	c #A6A385",
+"%@	c #B8B493",
+"&@	c #FAF5C8",
+"*@	c #979479",
+"=@	c #160F0B",
+"-@	c #412B21",
+";@	c #6B6743",
+">@	c #F2EDC2",
+",@	c #7F7D66",
+"'@	c #A29E81",
+")@	c #1D1C17",
+"!@	c #3C3B30",
+"~@	c #89866D",
+"{@	c #BBB796",
+"]@	c #646250",
+"^@	c #2D2C24",
+"/@	c #918E74",
+"(@	c #0F0A06",
+"_@	c #55392B",
+":@	c #744D3A",
+"<@	c #19150D",
+"[@	c #DDD7A1",
+"}@	c #1F1E19",
+"|@	c #27261F",
+"1@	c #DCD7B0",
+"2@	c #F5F0C4",
+"3@	c #DAD5AE",
+"4@	c #7B7963",
+"5@	c #797661",
+"6@	c #E9E5BA",
+"7@	c #DED9B1",
+"8@	c #F7F2C5",
+"9@	c #604229",
+"0@	c #1D130E",
+"a@	c #3D291F",
+"b@	c #696542",
+"c@	c #C6C29E",
+"d@	c #D2CEA8",
+"e@	c #ECE7BC",
+"f@	c #9B987C",
+"g@	c #585646",
+"h@	c #D4CFA9",
+"i@	c #C5956D",
+"j@	c #0B0907",
+"k@	c #5A3C2D",
+"l@	c #704A38",
+"m@	c #111009",
+"n@	c #E2DCA4",
+"o@	c #DCD8B0",
+"p@	c #807E67",
+"q@	c #595747",
+"r@	c #908D73",
+"s@	c #B0AC8D",
+"t@	c #F6F1C5",
+"u@	c #F0EBC0",
+"v@	c #545343",
+"w@	c #636250",
+"x@	c #E0B089",
+"y@	c #635040",
+"z@	c #211610",
+"A@	c #2F1F17",
+"B@	c #7D794D",
+"C@	c #4F4E3F",
+"D@	c #21201A",
+"E@	c #E0DCB3",
+"F@	c #F8F3C6",
+"G@	c #9A977B",
+"H@	c #37362C",
+"I@	c #B2AF8F",
+"J@	c #CDC9A4",
+"K@	c #D4A076",
+"L@	c #C9A283",
+"M@	c #010101",
+"N@	c #604030",
+"O@	c #624131",
+"P@	c #232213",
+"Q@	c #E6E0A3",
+"R@	c #E6E2B8",
+"S@	c #CBC7A3",
+"T@	c #E4E0B6",
+"U@	c #131310",
+"V@	c #575646",
+"W@	c #4C4A3D",
+". . . . . . . . . . . + @ # $ % & . . . . . . . . . . . . . ",
+". . . . . . . . . . * = - ; > , ' ) . . . . . . . . . . . . ",
+". . . . . . . . . ! ~ { ] ^ / ( _ : . . . . . . . . . . . . ",
+". . . < < < < < < < [ } < < < | 1 2 < < < < < < < < 3 . . . ",
+". . . < 4 4 5 6 7 8 9 0 a b c d e f g h i j k l l l 3 . . . ",
+". . . < 4 m n o o p q r s t u v 3 3 3 w x y z l l l 3 . . . ",
+". . . < A B o o o C D E F 3 3 3 G H I J K e L M N O 3 . . . ",
+". . . < P o Q R S T U V V W 3 X Y V V V V V Z `  ...3 . . . ",
+". . . < +. at .#.$.%.&.*.V V =.-.;.>.,.'.).!.~.{.].^./.3 . . . ",
+". (._.:.<.[.}.|.1.V 2.3.V V 4.5.6.7.8.9.0.a.b.c.d./.3 . . . ",
+". e.f.g.l h.i.j.Y k.l.m.n.o.p.q.r.2.s.t.u.v.w.x././.3 . . . ",
+". y.z.l A.B.C.J V D.E.;.F.l.G.H.I.J.K.L.M.N././././.3 . . . ",
+". O.P.l Q.R.S.T.V V V V U.V.W.X.Y.Z././././././.`. +3 . . . ",
+". .+++ at +#+$+%+&+q.*+=+-+;+>+,+/././././././.'+)+!+~+3 . . . ",
+". + {+]+B.^+/+(+_+:+<+/./././././././.[+}+/./.|+/./.3 . . . ",
+". 1+2+3+4+5+/./././././././.`.6+7+8+9+0+a+b+/./././.3 . . . ",
+". . c+d+B.e+/././././.f+g+h+i+j+k+l+m+n+/./././.o+p+3 . . . ",
+". . * q+R.r+s+/.t+u+v+w+x+y+z+A+B+C+/./.D+E+F+N.G+ .3 . . . ",
+". . H+I+$+J+K+L+~+M+N+O+P+Q+/./.B+R+S+T+U+T+/./.V+W+3 . . . ",
+". . . X+Y+Z+`+ @/.b+/./././.. at +@@@M+#@$@%@/./.f+&@*@3 . . . ",
+". . . < =@R.-@;@N./.>@N.,@'@)@!@~@&@`././.{@]@^@/@/.3 . . . ",
+". . . < (@_@:@<@[@/.|+}@|@E+1 at .@/./.2 at 3@4 at 5@6 at 7@8@/.3 . . . ",
+". . . < 9 at 0@R.a at b@N.B+c at d@/./.e at f@g at k+z+h@'+/././.+ at 3 . . . ",
+". . . < i at j@k at l@m at n@/.&@o at F+p@q at r@s at t@/./././.u at v@w at 3 . . . ",
+". . . < x at y@z at R.A@B at N./.C at D@A+E@/./././.F@%@G at H@I at J@3 . . . ",
+". . . < K at L@M at N@O at P@Q@/.R at S@/./././.T@!+U at h+V@. at J@W at 3 . . . ",
+". . . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_30x30_mask.xbm b/icon/ico_30x30_mask.xbm
new file mode 100644
index 0000000..fd44d1b
--- /dev/null
+++ b/icon/ico_30x30_mask.xbm
@@ -0,0 +1,14 @@
+/* Created with The GIMP */
+#define ico_30x30_mask_width 30
+#define ico_30x30_mask_height 30
+static unsigned char ico_30x30_mask_bits[] = {
+   0x00, 0xf8, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0xfc, 0x03, 0x00,
+   0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07,
+   0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07,
+   0xfc, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07,
+   0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07,
+   0xfc, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0x07,
+   0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07,
+   0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07,
+   0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/icon/ico_30x30_white.xpm b/icon/ico_30x30_white.xpm
new file mode 100644
index 0000000..24d0bb2
--- /dev/null
+++ b/icon/ico_30x30_white.xpm
@@ -0,0 +1,397 @@
+/* XPM */
+static char * ico_30x30_white_xpm[] = {
+"30 30 364 2",
+"  	c None",
+". 	c #FFFFFF",
+"+ 	c #B0B0B0",
+"@ 	c #787879",
+"# 	c #848486",
+"$ 	c #7B7B7B",
+"% 	c #969696",
+"& 	c #F6F6F6",
+"* 	c #8E8E8E",
+"= 	c #A1A1A7",
+"- 	c #D2D2F2",
+"; 	c #B3B3CE",
+"> 	c #BEBED9",
+", 	c #CACAD3",
+"' 	c #626262",
+") 	c #F3F3F3",
+"! 	c #EDEDED",
+"~ 	c #535353",
+"{ 	c #E7E7FF",
+"] 	c #302E35",
+"^ 	c #422D1B",
+"/ 	c #140F0C",
+"( 	c #A5A5C1",
+"_ 	c #E8E8EB",
+": 	c #7C7C7C",
+"< 	c #000000",
+"[ 	c #949494",
+"} 	c #D5D5F8",
+"| 	c #4F4F5E",
+"1 	c #EDEDFF",
+"2 	c #909090",
+"3 	c #B87D4C",
+"4 	c #C89265",
+"5 	c #D5A277",
+"6 	c #C79063",
+"7 	c #68482D",
+"8 	c #B1B1B4",
+"9 	c #E0E0FE",
+"0 	c #B7A596",
+"a 	c #F1D1B7",
+"b 	c #847A73",
+"c 	c #B9B9CE",
+"d 	c #EAEAFF",
+"e 	c #FDFDFD",
+"f 	c #716F6D",
+"g 	c #15100D",
+"h 	c #442E23",
+"i 	c #724D3B",
+"j 	c #A36E54",
+"k 	c #B1775B",
+"l 	c #C68F61",
+"m 	c #E9BC96",
+"n 	c #EBBE99",
+"o 	c #6D5847",
+"p 	c #B7B7BE",
+"q 	c #DEDEFF",
+"r 	c #F7F7FF",
+"s 	c #E3E3FF",
+"t 	c #DCDCFF",
+"u 	c #EBEBFF",
+"v 	c #CACACA",
+"w 	c #9D9B9B",
+"x 	c #84766F",
+"y 	c #8C5F48",
+"z 	c #C18859",
+"A 	c #E9BB95",
+"B 	c #5F4D3E",
+"C 	c #A2A2AD",
+"D 	c #D8D8FF",
+"E 	c #F3F3FF",
+"F 	c #FDFDFF",
+"G 	c #FCFCFF",
+"H 	c #FEFEFF",
+"I 	c #E9E9FF",
+"J 	c #D9D9FF",
+"K 	c #7C7979",
+"L 	c #8E5F49",
+"M 	c #754F3C",
+"N 	c #3F2D23",
+"O 	c #C08757",
+"P 	c #DAB08E",
+"Q 	c #806753",
+"R 	c #352B23",
+"S 	c #181817",
+"T 	c #DEDEEA",
+"U 	c #D6D6FF",
+"V 	c #F8F8FF",
+"W 	c #EEEEFF",
+"X 	c #D7D7FF",
+"Y 	c #D3D3F4",
+"Z 	c #252426",
+"` 	c #87846C",
+" .	c #EDE8BE",
+"..	c #8A5E39",
+"+.	c #554436",
+"@.	c #31221B",
+"#.	c #51372A",
+"$.	c #373331",
+"%.	c #CACAD4",
+"&.	c #DBDBFF",
+"*.	c #ECECFF",
+"=.	c #DFDFFF",
+"-.	c #A1A1C0",
+";.	c #85859E",
+">.	c #ADADCE",
+",.	c #808099",
+"'.	c #3D3D48",
+").	c #464654",
+"!.	c #8686A0",
+"~.	c #D0D0F8",
+"{.	c #757479",
+"].	c #F3EEC1",
+"^.	c #FFFACC",
+"/.	c #FEFEFE",
+"(.	c #A9A9A9",
+"_.	c #3E3630",
+":.	c #53382B",
+"<.	c #9D6951",
+"[.	c #90614A",
+"}.	c #3B3736",
+"|.	c #DFDFF2",
+"1.	c #9898B5",
+"2.	c #B5B5D8",
+"3.	c #737389",
+"4.	c #26262E",
+"5.	c #74748A",
+"6.	c #616174",
+"7.	c #656579",
+"8.	c #C0C0E5",
+"9.	c #B6B6D9",
+"0.	c #6F6F85",
+"a.	c #29282C",
+"b.	c #746F3D",
+"c.	c #E8E1A5",
+"d.	c #737373",
+"e.	c #271A14",
+"f.	c #A56F55",
+"g.	c #A16C52",
+"h.	c #1F1814",
+"i.	c #E0E0E5",
+"j.	c #9B9BB9",
+"k.	c #9191AD",
+"l.	c #67677A",
+"m.	c #636376",
+"n.	c #575768",
+"o.	c #464653",
+"p.	c #CECEF5",
+"q.	c #D2D2FA",
+"r.	c #545464",
+"s.	c #32312C",
+"t.	c #454224",
+"u.	c #85804B",
+"v.	c #CAC383",
+"w.	c #ECE6AC",
+"x.	c #303030",
+"y.	c #815742",
+"z.	c #A46E54",
+"A.	c #774F3C",
+"B.	c #323231",
+"C.	c #565667",
+"D.	c #5F5F71",
+"E.	c #73738A",
+"F.	c #C7C7ED",
+"G.	c #68687B",
+"H.	c #272622",
+"I.	c #504D2B",
+"J.	c #ACA567",
+"K.	c #DED795",
+"L.	c #F1EBB4",
+"M.	c #FEF9CB",
+"N.	c #494949",
+"O.	c #79513E",
+"P.	c #8D5E47",
+"Q.	c #7A513D",
+"R.	c #3D3835",
+"S.	c #E4E4FF",
+"T.	c #B5B5D7",
+"U.	c #69697D",
+"V.	c #43412F",
+"W.	c #9E9967",
+"X.	c #E4DDA1",
+"Y.	c #F7F2BF",
+"Z.	c #FDF8CA",
+"`.	c #72705B",
+" +	c #4C3326",
+".+	c #AD7559",
+"++	c #875A44",
+"@+	c #714B38",
+"#+	c #241E18",
+"$+	c #DDDCF8",
+"%+	c #8F8FAA",
+"&+	c #6B6A71",
+"*+	c #6C6956",
+"=+	c #8C8866",
+"-+	c #D6D0A1",
+";+	c #FDF7C8",
+">+	c #F3EEC2",
+",+	c #5D5C4B",
+"'+	c #5C5A49",
+")+	c #C2BE9B",
+"!+	c #AFAFAF",
+"~+	c #261913",
+"{+	c #99664E",
+"]+	c #4D4837",
+"^+	c #B1AC7B",
+"/+	c #D9D7CF",
+"(+	c #9F9B7D",
+"_+	c #CAC490",
+":+	c #F4EEBA",
+"<+	c #FDF8CB",
+"[+	c #918F74",
+"}+	c #9D9A7E",
+"|+	c #E4E4E4",
+"1+	c #070403",
+"2+	c #7D533F",
+"3+	c #6C4837",
+"4+	c #959277",
+"5+	c #E8E4BA",
+"6+	c #D3CEA8",
+"7+	c #F1EDC1",
+"8+	c #545243",
+"9+	c #A3A083",
+"0+	c #A29F82",
+"a+	c #E1DDB4",
+"b+	c #424242",
+"c+	c #4C3226",
+"d+	c #424034",
+"e+	c #F7F2C6",
+"f+	c #E7E3B9",
+"g+	c #6F6D59",
+"h+	c #ACA889",
+"i+	c #514F41",
+"j+	c #48473A",
+"k+	c #686653",
+"l+	c #B1AD8D",
+"m+	c #A3A082",
+"n+	c #EBE6BC",
+"o+	c #A7A486",
+"p+	c #919191",
+"q+	c #1E140F",
+"r+	c #271A13",
+"s+	c #C5C197",
+"t+	c #CAC6A2",
+"u+	c #D8D4AD",
+"v+	c #838069",
+"w+	c #403F33",
+"x+	c #161612",
+"y+	c #333229",
+"z+	c #666451",
+"A+	c #B3AF8F",
+"B+	c #FCF7CA",
+"C+	c #EFEBC0",
+"D+	c #C6C29F",
+"E+	c #7A7862",
+"F+	c #6B6956",
+"G+	c #5A5948",
+"H+	c #DDDDDD",
+"I+	c #020101",
+"J+	c #513628",
+"K+	c #5C583A",
+"L+	c #FEF9CA",
+"M+	c #38372D",
+"N+	c #656351",
+"O+	c #CFCBA6",
+"P+	c #EFEABF",
+"Q+	c #E4E0B7",
+"R+	c #EAE5BB",
+"S+	c #B7B392",
+"T+	c #A19E81",
+"U+	c #2B2A23",
+"V+	c #F4EFC3",
+"W+	c #A9A687",
+"X+	c #2B2B2B",
+"Y+	c #4A3125",
+"Z+	c #784F3C",
+"`+	c #1A150D",
+" @	c #DED8A1",
+".@	c #FBF6C9",
+"+@	c #A09D80",
+"@@	c #828068",
+"#@	c #525041",
+"$@	c #A6A385",
+"%@	c #B8B493",
+"&@	c #FAF5C8",
+"*@	c #979479",
+"=@	c #160F0B",
+"-@	c #412B21",
+";@	c #6B6743",
+">@	c #F2EDC2",
+",@	c #7F7D66",
+"'@	c #A29E81",
+")@	c #1D1C17",
+"!@	c #3C3B30",
+"~@	c #89866D",
+"{@	c #BBB796",
+"]@	c #646250",
+"^@	c #2D2C24",
+"/@	c #918E74",
+"(@	c #0F0A06",
+"_@	c #55392B",
+":@	c #744D3A",
+"<@	c #19150D",
+"[@	c #DDD7A1",
+"}@	c #1F1E19",
+"|@	c #27261F",
+"1@	c #DCD7B0",
+"2@	c #F5F0C4",
+"3@	c #DAD5AE",
+"4@	c #7B7963",
+"5@	c #797661",
+"6@	c #E9E5BA",
+"7@	c #DED9B1",
+"8@	c #F7F2C5",
+"9@	c #604229",
+"0@	c #1D130E",
+"a@	c #3D291F",
+"b@	c #696542",
+"c@	c #C6C29E",
+"d@	c #D2CEA8",
+"e@	c #ECE7BC",
+"f@	c #9B987C",
+"g@	c #585646",
+"h@	c #D4CFA9",
+"i@	c #C5956D",
+"j@	c #0B0907",
+"k@	c #5A3C2D",
+"l@	c #704A38",
+"m@	c #111009",
+"n@	c #E2DCA4",
+"o@	c #DCD8B0",
+"p@	c #807E67",
+"q@	c #595747",
+"r@	c #908D73",
+"s@	c #B0AC8D",
+"t@	c #F6F1C5",
+"u@	c #F0EBC0",
+"v@	c #545343",
+"w@	c #636250",
+"x@	c #E0B089",
+"y@	c #635040",
+"z@	c #211610",
+"A@	c #2F1F17",
+"B@	c #7D794D",
+"C@	c #4F4E3F",
+"D@	c #21201A",
+"E@	c #E0DCB3",
+"F@	c #F8F3C6",
+"G@	c #9A977B",
+"H@	c #37362C",
+"I@	c #B2AF8F",
+"J@	c #CDC9A4",
+"K@	c #D4A076",
+"L@	c #C9A283",
+"M@	c #010101",
+"N@	c #604030",
+"O@	c #624131",
+"P@	c #232213",
+"Q@	c #E6E0A3",
+"R@	c #E6E2B8",
+"S@	c #CBC7A3",
+"T@	c #E4E0B6",
+"U@	c #131310",
+"V@	c #575646",
+"W@	c #4C4A3D",
+". . . . . . . . . . . + @ # $ % & . . . . . . . . . . . . . ",
+". . . . . . . . . . * = - ; > , ' ) . . . . . . . . . . . . ",
+". . . . . . . . . ! ~ { ] ^ / ( _ : . . . . . . . . . . . . ",
+". . . < < < < < < < [ } < < < | 1 2 < < < < < < < < . . . . ",
+". . . < 3 3 4 5 6 7 8 9 0 a b c d e f g h i j k k k . . . . ",
+". . . < 3 l m n n o p q r s t u . . . v w x y k k k . . . . ",
+". . . < z A n n n B C D E . . . F G H I J d K L M N . . . . ",
+". . . < O n P Q R S T U U V . W X U U U U U Y Z `  .. . . . ",
+". . . < ..+. at .#.$.%.&.U U *.=.-.;.>.,.'.).!.~.{.].^.. . . . ",
+". /.(._.:.<.[.}.|.U 1.2.U U 3.4.5.6.7.8.9.0.a.b.c.^.. . . . ",
+". d.e.f.k g.h.i.X j.k.l.m.n.o.p.q.1.r.s.t.u.v.w.^.^.. . . . ",
+". x.y.k z.A.B.I U C.D.-.E.k.F.G.H.I.J.K.L.M.^.^.^.^.. . . . ",
+". N.O.k P.Q.R.S.U U U U T.U.V.W.X.Y.^.^.^.^.^.^.Z.`.. . . . ",
+". $  +.+++ at +#+$+p.%+&+*+=+-+;+^.^.^.^.^.^.^.>+,+'+)+. . . . ",
+". !+~+{+A.]+^+/+(+_+:+^.^.^.^.^.^.^.^.<+[+^.^.}+^.^.. . . . ",
+". |+1+2+3+4+^.^.^.^.^.^.^.^.Z.5+6+7+8+9+0+a+^.^.^.^.. . . . ",
+". . b+c+A.d+^.^.^.^.^.e+f+g+h+i+j+k+l+m+^.^.^.^.n+o+. . . . ",
+". . p+q+Q.r+s+^.t+u+v+w+x+y+z+A+B+C+^.^.D+E+F+M.G+` . . . . ",
+". . H+I+ at +J+K+L+)+M+N+O+P+Q+^.^.B+R+S+T+U+T+^.^.V+W+. . . . ",
+". . . X+Y+Z+`+ @^.a+^.^.^.^.. at +@@@M+#@$@%@^.^.e+&@*@. . . . ",
+". . . < =@Q.-@;@M.^.>@M.,@'@)@!@~@&@Z.^.^.{@]@^@/@^.. . . . ",
+". . . < (@_@:@<@[@^.}+}@|@E+1 at .@^.^.2 at 3@4 at 5@6 at 7@8@^.. . . . ",
+". . . < 9 at 0@Q.a at b@M.B+c at d@^.^.e at f@g at j+z+h@>+^.^.^.+ at . . . . ",
+". . . < i at j@k at l@m at n@^.&@o at F+p@q at r@s at t@^.^.^.^.u at v@w at . . . . ",
+". . . < x at y@z at Q.A@B at M.^.C at D@A+E@^.^.^.^.F@%@G at H@I at J@. . . . ",
+". . . < K at L@M at N@O at P@Q@^.R at S@^.^.^.^.T@'+U at g+V@. at J@W at . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_40x40.xcf.bz2 b/icon/ico_40x40.xcf.bz2
new file mode 100644
index 0000000..307620c
Binary files /dev/null and b/icon/ico_40x40.xcf.bz2 differ
diff --git a/icon/ico_40x40_black.xpm b/icon/ico_40x40_black.xpm
new file mode 100644
index 0000000..64d044f
--- /dev/null
+++ b/icon/ico_40x40_black.xpm
@@ -0,0 +1,572 @@
+/* XPM */
+static char * ico_40x40_black_xpm[] = {
+"40 40 529 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #050505",
+"@ 	c #262626",
+"# 	c #080808",
+"$ 	c #616162",
+"% 	c #DFDFEF",
+"& 	c #E2E2FF",
+"* 	c #E6E6FF",
+"= 	c #E1E1EF",
+"- 	c #8C8C8D",
+"; 	c #121212",
+"> 	c #5C5C5C",
+", 	c #EDEDFF",
+"' 	c #B4B4D6",
+") 	c #4A4A59",
+"! 	c #3A3A45",
+"~ 	c #787890",
+"{ 	c #DFDFFB",
+"] 	c #E5E5E8",
+"^ 	c #2F2F2F",
+"/ 	c #E0E0E1",
+"( 	c #DBDBFF",
+"_ 	c #1F1F25",
+": 	c #382617",
+"< 	c #060402",
+"[ 	c #78788C",
+"} 	c #E9E9FF",
+"| 	c #CACACA",
+"1 	c #010101",
+"2 	c #252525",
+"3 	c #F2F2FF",
+"4 	c #C7C7EC",
+"5 	c #47301D",
+"6 	c #1A1A20",
+"7 	c #D9D9FE",
+"8 	c #FEFEFF",
+"9 	c #606060",
+"0 	c #FFFFFF",
+"a 	c #B87D4C",
+"b 	c #B97F4E",
+"c 	c #BE8455",
+"d 	c #805735",
+"e 	c #4E4E4E",
+"f 	c #ECECFF",
+"g 	c #DBDBF5",
+"h 	c #765D49",
+"i 	c #EBBE99",
+"j 	c #4F4033",
+"k 	c #464648",
+"l 	c #D6D6FE",
+"m 	c #F7F7FF",
+"n 	c #EEEEEE",
+"o 	c #413C38",
+"p 	c #816954",
+"q 	c #59483A",
+"r 	c #18110B",
+"s 	c #0D0907",
+"t 	c #34231B",
+"u 	c #684635",
+"v 	c #95644C",
+"w 	c #AD7559",
+"x 	c #B1775B",
+"y 	c #B87D4D",
+"z 	c #DAA980",
+"A 	c #E3B48D",
+"B 	c #D6A379",
+"C 	c #73543A",
+"D 	c #686868",
+"E 	c #E8E8FF",
+"F 	c #E5E5FF",
+"G 	c #D4CEC9",
+"H 	c #F4E4DA",
+"I 	c #ECE0DF",
+"J 	c #A3A3B0",
+"K 	c #DFDFFA",
+"L 	c #E0E0FF",
+"M 	c #FCFCFF",
+"N 	c #E7E7E7",
+"O 	c #4B4B4B",
+"P 	c #160F0B",
+"Q 	c #614132",
+"R 	c #9E6A51",
+"S 	c #B87E4D",
+"T 	c #D8A57C",
+"U 	c #78614E",
+"V 	c #6B6B6B",
+"W 	c #FBFBFF",
+"X 	c #E1E1FF",
+"Y 	c #DEDEFF",
+"Z 	c #DADAFF",
+"` 	c #E7E7FF",
+" .	c #E0E0E0",
+"..	c #BABABA",
+"+.	c #989797",
+"@.	c #523E35",
+"#.	c #A26D53",
+"$.	c #D4A177",
+"%.	c #6E5948",
+"&.	c #515151",
+"*.	c #F8F8FF",
+"=.	c #DDDDFF",
+"-.	c #E3E3E4",
+";.	c #372D28",
+">.	c #A56F55",
+",.	c #855A44",
+"'.	c #4B3226",
+").	c #B97E4E",
+"!.	c #E7B994",
+"~.	c #D3AB8A",
+"{.	c #9B7D65",
+"].	c #241D18",
+"^.	c #707070",
+"/.	c #DFDFFF",
+"(.	c #D6D6FF",
+"_.	c #D9D9FF",
+":.	c #F5F5FF",
+"<.	c #F0F0FF",
+"[.	c #E4E4FF",
+"}.	c #A4A4AB",
+"|.	c #2F1F18",
+"1.	c #1E140F",
+"2.	c #2F2E26",
+"3.	c #9B987C",
+"4.	c #D9A77D",
+"5.	c #EABD98",
+"6.	c #A9886E",
+"7.	c #44372C",
+"8.	c #070504",
+"9.	c #020201",
+"0.	c #222222",
+"a.	c #E9E9EB",
+"b.	c #DCDCFF",
+"c.	c #CDCDF4",
+"d.	c #C6C6EC",
+"e.	c #D4D4FC",
+"f.	c #D7D7FE",
+"g.	c #40404B",
+"h.	c #9D9A7D",
+"i.	c #FDF8CB",
+"j.	c #FFFACC",
+"k.	c #9F6C42",
+"l.	c #644932",
+"m.	c #201914",
+"n.	c #1F1510",
+"o.	c #674535",
+"p.	c #402B21",
+"q.	c #494949",
+"r.	c #DDDDE6",
+"s.	c #B9B9DC",
+"t.	c #797990",
+"u.	c #9191AC",
+"v.	c #BCBCE0",
+"w.	c #8F8FAB",
+"x.	c #474755",
+"y.	c #0D0D10",
+"z.	c #1D1D23",
+"A.	c #3E3E4A",
+"B.	c #CACAF1",
+"C.	c #D1D1F9",
+"D.	c #82818F",
+"E.	c #C7C299",
+"F.	c #24180F",
+"G.	c #100B08",
+"H.	c #593C2E",
+"I.	c #9B6850",
+"J.	c #AC7459",
+"K.	c #35241B",
+"L.	c #656565",
+"M.	c #E8E8FC",
+"N.	c #D7D7FF",
+"O.	c #D5D5FD",
+"P.	c #6C6C81",
+"Q.	c #D0D0F8",
+"R.	c #9595B1",
+"S.	c #050506",
+"T.	c #282830",
+"U.	c #35353F",
+"V.	c #222228",
+"W.	c #101013",
+"X.	c #66667A",
+"Y.	c #BFBFE4",
+"Z.	c #C0C0E5",
+"`.	c #9090AB",
+" +	c #35321C",
+".+	c #C8BF72",
+"++	c #FDF8C8",
+"@+	c #6C4837",
+"#+	c #AE7559",
+"$+	c #3E2A20",
+"%+	c #525252",
+"&+	c #F1F1FB",
+"*+	c #B5B5D7",
+"=+	c #C9C9EF",
+"-+	c #AEAECF",
+";+	c #7E7E97",
+">+	c #09090B",
+",+	c #7A7A91",
+"'+	c #D3D3FC",
+")+	c #ACACCD",
+"!+	c #75758C",
+"~+	c #3B3B46",
+"{+	c #080705",
+"]+	c #322F1A",
+"^+	c #75703E",
+"/+	c #C0B869",
+"(+	c #EEE8B0",
+"_+	c #040202",
+":+	c #90614A",
+"<+	c #AA7257",
+"[+	c #724C3A",
+"}+	c #020202",
+"|+	c #EBEBEC",
+"1+	c #8989A4",
+"2+	c #6F6F84",
+"3+	c #17171C",
+"4+	c #555566",
+"5+	c #111114",
+"6+	c #9A9AB7",
+"7+	c #A2A2C1",
+"8+	c #545464",
+"9+	c #131316",
+"0+	c #222112",
+"a+	c #56522D",
+"b+	c #7E7943",
+"c+	c #C0B870",
+"d+	c #DED694",
+"e+	c #EFE9B1",
+"f+	c #FEF9CA",
+"g+	c #B0765A",
+"h+	c #815641",
+"i+	c #5D3D2E",
+"j+	c #1D1D1D",
+"k+	c #F6F6FF",
+"l+	c #3F3F4B",
+"m+	c #77778E",
+"n+	c #C3C3E9",
+"o+	c #7C7C94",
+"p+	c #7A7A92",
+"q+	c #CECEF6",
+"r+	c #202026",
+"s+	c #0F0E08",
+"t+	c #524F2B",
+"u+	c #A9A15B",
+"v+	c #D4CC83",
+"w+	c #E5DEA1",
+"x+	c #F7F1BE",
+"y+	c #9C6950",
+"z+	c #7A513D",
+"A+	c #6F4A38",
+"B+	c #C7C7ED",
+"C+	c #CFCFF6",
+"D+	c #7E7E96",
+"E+	c #1E1E20",
+"F+	c #4A4627",
+"G+	c #9E985B",
+"H+	c #DAD390",
+"I+	c #EDE7AD",
+"J+	c #FEFACC",
+"K+	c #9E9B7E",
+"L+	c #A16C52",
+"M+	c #94634B",
+"N+	c #0F0B09",
+"O+	c #E8E8FA",
+"P+	c #BEBEE2",
+"Q+	c #8B8BA6",
+"R+	c #484854",
+"S+	c #2F2E21",
+"T+	c #726F4E",
+"U+	c #CDC791",
+"V+	c #F5EFBB",
+"W+	c #E7E3B9",
+"X+	c #8D8A71",
+"Y+	c #6D6B57",
+"Z+	c #555344",
+"`+	c #060403",
+" @	c #7D533F",
+".@	c #B0775B",
+"+@	c #8F5F48",
+"@@	c #4C3226",
+"#@	c #1C190E",
+"$@	c #C0BFCE",
+"%@	c #D4D4FD",
+"&@	c #A0A0BF",
+"*@	c #5C5C6C",
+"=@	c #454337",
+"-@	c #5F5B39",
+";@	c #99956A",
+">@	c #D9D4A0",
+",@	c #FBF6C5",
+"'@	c #DCD7B0",
+")@	c #1C1C17",
+"!@	c #86836B",
+"~@	c #573A2C",
+"{@	c #9F6B51",
+"]@	c #8E5F48",
+"^@	c #271A14",
+"/@	c #807C59",
+"(@	c #B6B079",
+"_@	c #D3D1CB",
+":@	c #9D9A88",
+"<@	c #A7A37A",
+"[@	c #D7D196",
+"}@	c #F2EDB7",
+"|@	c #FEF9CB",
+"1@	c #F4EFC3",
+"2@	c #797660",
+"3@	c #787560",
+"4@	c #34221A",
+"5@	c #895C45",
+"6@	c #906049",
+"7@	c #16110D",
+"8@	c #F3EFC3",
+"9@	c #8E8B71",
+"0@	c #EFEABF",
+"a@	c #A5A184",
+"b@	c #696754",
+"c@	c #C3BF9C",
+"d@	c #FDF8CA",
+"e@	c #0A0605",
+"f@	c #78503C",
+"g@	c #8C5E47",
+"h@	c #1C130F",
+"i@	c #D8D4AD",
+"j@	c #DEDAB2",
+"k@	c #ECE7BD",
+"l@	c #D5D1AB",
+"m@	c #AFAC8C",
+"n@	c #E3DEB6",
+"o@	c #1C1C16",
+"p@	c #2F2E25",
+"q@	c #7D7A64",
+"r@	c #E2DEB5",
+"s@	c #4F3427",
+"t@	c #7B523E",
+"u@	c #3C281E",
+"v@	c #656351",
+"w@	c #E4E0B7",
+"x@	c #BFBB99",
+"y@	c #9B977C",
+"z@	c #24231C",
+"A@	c #9A967B",
+"B@	c #38372D",
+"C@	c #4A493B",
+"D@	c #5B5949",
+"E@	c #454437",
+"F@	c #C7C39F",
+"G@	c #ECE7BC",
+"H@	c #E3DEB5",
+"I@	c #FAF5C8",
+"J@	c #F2EDC2",
+"K@	c #87846C",
+"L@	c #797761",
+"M@	c #201610",
+"N@	c #674433",
+"O@	c #090806",
+"P@	c #E1DCAC",
+"Q@	c #CDC9A4",
+"R@	c #F9F4C7",
+"S@	c #D4D0A9",
+"T@	c #27261F",
+"U@	c #3C3B30",
+"V@	c #070706",
+"W@	c #676553",
+"X@	c #323128",
+"Y@	c #CAC6A1",
+"Z@	c #C5C19E",
+"`@	c #F4F0C3",
+" #	c #B4B190",
+".#	c #0A0908",
+"+#	c #A4A183",
+"@#	c #030201",
+"##	c #734C39",
+"$#	c #19100C",
+"%#	c #807C53",
+"&#	c #514F40",
+"*#	c #13130F",
+"=#	c #48473A",
+"-#	c #4E4C3E",
+";#	c #73715C",
+">#	c #89866E",
+",#	c #FAF6C8",
+"'#	c #D0CCA6",
+")#	c #171612",
+"!#	c #25251E",
+"~#	c #ABA889",
+"{#	c #E4E0B6",
+"]#	c #C1BD9A",
+"^#	c #D3CFA9",
+"/#	c #503528",
+"(#	c #472F24",
+"_#	c #201F11",
+":#	c #EDE7AF",
+"<#	c #E2DDB5",
+"[#	c #F0EBC0",
+"}#	c #B2AF8F",
+"|#	c #9F9B7F",
+"1#	c #A7A385",
+"2#	c #313027",
+"3#	c #2E2D25",
+"4#	c #302F27",
+"5#	c #231711",
+"6#	c #764E3B",
+"7#	c #0A0705",
+"8#	c #9A9560",
+"9#	c #F7F2C6",
+"0#	c #A6A385",
+"a#	c #4E4D3F",
+"b#	c #39382D",
+"c#	c #444337",
+"d#	c #36352B",
+"e#	c #E8E3B9",
+"f#	c #F3EEC2",
+"g#	c #A09D80",
+"h#	c #150E08",
+"i#	c #010000",
+"j#	c #3A261D",
+"k#	c #292716",
+"l#	c #EEE7AF",
+"m#	c #98957A",
+"n#	c #979478",
+"o#	c #0E0E0B",
+"p#	c #141410",
+"q#	c #908E74",
+"r#	c #EDE8BD",
+"s#	c #7C7A64",
+"t#	c #1E1D18",
+"u#	c #1F1E19",
+"v#	c #EBE6BC",
+"w#	c #2C1D16",
+"x#	c #714B39",
+"y#	c #9C9761",
+"z#	c #DDD9B1",
+"A#	c #424135",
+"B#	c #6C6956",
+"C#	c #1D1C17",
+"D#	c #080806",
+"E#	c #BCB896",
+"F#	c #FCF7CA",
+"G#	c #BDB997",
+"H#	c #7A7862",
+"I#	c #CECAA5",
+"J#	c #B7B392",
+"K#	c #AAA688",
+"L#	c #4B331F",
+"M#	c #020101",
+"N#	c #6B4736",
+"O#	c #3B271D",
+"P#	c #262514",
+"Q#	c #ECE6AE",
+"R#	c #4C4B3D",
+"S#	c #26251E",
+"T#	c #E0DBB3",
+"U#	c #F1ECC1",
+"V#	c #6A6854",
+"W#	c #6B6956",
+"X#	c #6C6A57",
+"Y#	c #ECE8BD",
+"Z#	c #A16E44",
+"`#	c #040303",
+" $	c #322119",
+".$	c #6E4937",
+"+$	c #040302",
+"@$	c #918C5B",
+"#$	c #E6E2B8",
+"$$	c #F0ECC0",
+"%$	c #CFCBA6",
+"&$	c #34332A",
+"*$	c #585646",
+"=$	c #838169",
+"-$	c #F2EDC1",
+";$	c #5C5A4A",
+">$	c #C68F62",
+",$	c #534336",
+"'$	c #6C4836",
+")$	c #302018",
+"!$	c #2B2917",
+"~$	c #EDE7AE",
+"{$	c #C8C4A0",
+"]$	c #63614F",
+"^$	c #ADAA8A",
+"/$	c #444336",
+"($	c #514F41",
+"_$	c #ACA889",
+":$	c #949176",
+"<$	c #F1ECC0",
+"[$	c #A29F82",
+"}$	c #4B4A3C",
+"|$	c #5E5C4B",
+"1$	c #BC987A",
+"2$	c #644232",
+"3$	c #A59E65",
+"4$	c #FFFACB",
+"5$	c #1A1A15",
+"6$	c #151511",
+"7$	c #4F4D3F",
+"8$	c #8A876E",
+"9$	c #FEF9CC",
+"0$	c #35342A",
+"a$	c #979479",
+"b$	c #CCC8A4",
+"c$	c #D7A47B",
+"d$	c #3A2F26",
+"e$	c #704A38",
+"f$	c #201510",
+"g$	c #454224",
+"h$	c #EDE6AD",
+"i$	c #B9B594",
+"j$	c #070705",
+"k$	c #C6C29F",
+"l$	c #FCF7C9",
+"m$	c #AAA788",
+"n$	c #84826A",
+"o$	c #464438",
+"p$	c #9C997D",
+"q$	c #C48C5E",
+"r$	c #A08268",
+"s$	c #53372A",
+"t$	c #040402",
+"u$	c #BAB26D",
+"v$	c #FCF7C7",
+"w$	c #CBC7A2",
+"x$	c #EAE6BB",
+"y$	c #666451",
+"z$	c #2D2C24",
+"A$	c #706E5A",
+"B$	c #838069",
+"C$	c #86846B",
+"D$	c #2C2B23",
+". . . . . . . . . . . . . . . . + @ @ # . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . $ % & * = - ; . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . > , ' ) ! ~ { ] ^ . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . / ( _ : . < [ } | 1 . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . 2 3 4 5 . . . 6 7 8 9 . . . . . . . . . . . 0 . . . . ",
+". . . . . a a a b c a a d e f g h i i j k l m n o p q r s t u v w x x 0 . . . . ",
+". . . . . a a y z i A B C D E F G H I J K L M 0 N O P Q R x x x x x x 0 . . . . ",
+". . . . . a S T i i i i U V F & W X Y Z ` 8 0 0 0 0  ...+. at .#.x x x x 0 . . . . ",
+". . . . . a $.i i i i i %.&.X Z *.0 0 0 0 0 0 0 0 0 F =.} -.;.>.x ,.'.0 . . . . ",
+". . . . . ).!.i i i ~.{.].^./.(._.:.0 0 0 <.[.[.* & (.(.(.=.}.|.1.2.3.0 . . . . ",
+". . . . . a 4.5.6.7.8.9.0.a.b.(.(.F 0 M F (.(.(.(.(.(.c.d.e.f.g.h.i.j.0 . . . . ",
+". . . . . k.l.m.n.o.p.q.r.=.(.(.(.[.f _.s.t.u.v.w.x.y.z.A.B.C.D.E.j.j.0 . . . . ",
+". . . . F.G.H.I.J.K.L.M.N.O.P.Q.(.(.(.R.S.T.U.V.W.X.Y.(.Z.`._  +.+++j.0 . . . . ",
+". . . s @+#+x #+$+%+&+(.O.P.*+=+-+(.;+>+,+O.(.(.'+)+!+~+{+]+^+/+(+j.j.0 . . . . ",
+". . _+:+x x <+[+}+|+Y (.1+,+2+W.3+4+5+6+(.e.7+8+9+0+a+b+c+d+e+f+j.j.j.0 . . . . ",
+". . t x x g+h+i+j+k+(.(.~+l+m+n+o+p+=+q+!+r+s+t+u+v+w+x+j.j.j.j.j.j.j.0 . . . . ",
+". . t x x y+z+A+j+<.(.(.B+(.(.(.(.C+D+E+F+G+H+I+++j.j.j.j.j.j.j.j.J+K+0 . . . . ",
+". . P L+x M+z+z+N+O+(.(.(.(.P+Q+R+S+T+U+V+j.j.j.j.j.j.j.j.j.j.W+X+Y+Z+0 . . . . ",
+". . `+ @. at +@z+@@#@$@%@&@*@=@-@;@>@, at j.j.j.j.j.j.j.j.j.j.j.j.'@)@!@K+j.0 . . . . ",
+". . . ~@{@]@^@/@(@_@:@<@[@}@|@j.j.j.j.j.j.j.j.j.j.j.1 at 2@j.j.j.3 at j.j.j.0 . . . . ",
+". . . 4 at 5@6 at 7@|@j.j.j.j.j.j.j.j.j.j.j.j.j.8 at j.j.9@0 at a@b at c@j.j.d at j.j.j.0 . . . . ",
+". . . e at f@g at h@i at j.j.j.j.j.j.j.j.j.d@j at k@l at 2.m@n at o@p at q@j.r at j.j.j.j.j.j.0 . . . . ",
+". . . . s at t@u at v@j.j.j.j.j.j.j.w at x@y at z@A at B@C at D@E at F@G at H@j.j.I at I@j.J at K@L at 0 . . . . ",
+". . . . M at z+N@O at P@j.I at Q@R at S@T at U@. V at W@X at Y@Z at j.`@j.j.j.i at i@T at b@j. #.#+#0 . . . . ",
+". . . . @###z+$#%#j.j.&#*#=#-#;#Y@>#,#d at j.j.j.j.j.'#d@)#!#~#{#j.j.]#^#0 . . . . ",
+". . . . . /#z+(#_#:#j.<#v@[#W+j.j.j.j.j.d at I@}#|#1#}+2#3#I at j.j.j.j.j.4#0 . . . . ",
+". . . . . 5#z+6#7#8#j.j.9#j.j.j.j.j.R at J@0#a#b#c#d#^#e#j at j.j.j.f#w at j.g#0 . . . . ",
+". . . . h#i#N at z+j#k#l#j.j.j.j.j.m#0#n#o#p#q#q at j.d@j.j.j.r#s#2 at t#u#v#j.0 . . . . ",
+". . . . . @#w#z+x#`+y#j.j.z#A#B#1 C#D#F at E#F#j.j.j.j.|@G#b at H#I#J#K#j.j.0 . . . . ",
+". . . . . L#M#N#z+O#P#Q#j.j.v at R#S#j.v#j.j.j.j.T#U#V#W#X#W at j.j.j.j.j.Y#0 . . . . ",
+". . . . . Z#`# $z+.$+$@$j.j.#$$$9#j.j.j.T#%$X at 2.&$*$=$-$j.j.j.j.j.j.;$0 . . . . ",
+". . . . . >$,$_+'$z+)$!$~$j.j.j.j.{$]$^$/$($_$:$<$1 at j.j.j.j.j.j.[$}$|$0 . . . . ",
+". . . . . $.1$. 4 at z+2$1 3$4$j.f#&$5$6$7$8$j.j.j.j.j.j.j.j.9$%$d#0$a$b$0 . . . . ",
+". . . . . c$i d$`+e$z+f$g$h$j.j.i$j$k$j.j.j.j.j.j.l$8 at m$n$o$t#p$F at j.8$0 . . . . ",
+". . . . . q$i r$. j#z+s$t$u$v$j.j.w$j.j.j.j.j.j.x$y$z$. A$B$C$j.I at 2@D$0 . . . . ",
+". . . . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_40x40_gray.xpm b/icon/ico_40x40_gray.xpm
new file mode 100644
index 0000000..8c60ae4
--- /dev/null
+++ b/icon/ico_40x40_gray.xpm
@@ -0,0 +1,592 @@
+/* XPM */
+static char * ico_40x40_gray_xpm[] = {
+"40 40 549 2",
+"  	c None",
+". 	c #7F7F7F",
+"+ 	c #5E5E5E",
+"@ 	c #2E2E2E",
+"# 	c #414141",
+"$ 	c #303030",
+"% 	c #575757",
+"& 	c #7D7D7D",
+"* 	c #494949",
+"= 	c #636364",
+"- 	c #DFDFEF",
+"; 	c #E2E2FF",
+"> 	c #E6E6FF",
+", 	c #E1E1EF",
+"' 	c #8C8C8D",
+") 	c #262626",
+"! 	c #666666",
+"~ 	c #474747",
+"{ 	c #5C5C5C",
+"] 	c #EDEDFF",
+"^ 	c #B4B4D6",
+"/ 	c #4A4A59",
+"( 	c #3A3A45",
+"_ 	c #787890",
+": 	c #DFDFFB",
+"< 	c #E5E5E8",
+"[ 	c #3D3D3D",
+"} 	c #777777",
+"| 	c #0E0E0E",
+"1 	c #E0E0E1",
+"2 	c #DBDBFF",
+"3 	c #1F1F25",
+"4 	c #382617",
+"5 	c #060402",
+"6 	c #78788C",
+"7 	c #E9E9FF",
+"8 	c #CACACA",
+"9 	c #000000",
+"0 	c #F2F2FF",
+"a 	c #C7C7EC",
+"b 	c #47301D",
+"c 	c #1A1A20",
+"d 	c #D9D9FE",
+"e 	c #FEFEFF",
+"f 	c #616161",
+"g 	c #FFFFFF",
+"h 	c #B87D4C",
+"i 	c #B97F4E",
+"j 	c #BE8455",
+"k 	c #805735",
+"l 	c #4E4E4E",
+"m 	c #ECECFF",
+"n 	c #DBDBF5",
+"o 	c #765D49",
+"p 	c #EBBE99",
+"q 	c #4F4033",
+"r 	c #464648",
+"s 	c #D6D6FE",
+"t 	c #F7F7FF",
+"u 	c #EEEEEE",
+"v 	c #413C38",
+"w 	c #816954",
+"x 	c #59483A",
+"y 	c #18110B",
+"z 	c #0D0907",
+"A 	c #34231B",
+"B 	c #684635",
+"C 	c #95644C",
+"D 	c #AD7559",
+"E 	c #B1775B",
+"F 	c #B87D4D",
+"G 	c #DAA980",
+"H 	c #E3B48D",
+"I 	c #D6A379",
+"J 	c #73543A",
+"K 	c #686868",
+"L 	c #E8E8FF",
+"M 	c #E5E5FF",
+"N 	c #D4CEC9",
+"O 	c #F4E4DA",
+"P 	c #ECE0DF",
+"Q 	c #A3A3B0",
+"R 	c #DFDFFA",
+"S 	c #E0E0FF",
+"T 	c #FCFCFF",
+"U 	c #E7E7E7",
+"V 	c #4B4B4B",
+"W 	c #160F0B",
+"X 	c #614132",
+"Y 	c #9E6A51",
+"Z 	c #B87E4D",
+"` 	c #D8A57C",
+" .	c #78614E",
+"..	c #6B6B6B",
+"+.	c #FBFBFF",
+"@.	c #E1E1FF",
+"#.	c #DEDEFF",
+"$.	c #DADAFF",
+"%.	c #E7E7FF",
+"&.	c #E0E0E0",
+"*.	c #BABABA",
+"=.	c #989797",
+"-.	c #523E35",
+";.	c #A26D53",
+">.	c #D4A177",
+",.	c #6E5948",
+"'.	c #515151",
+").	c #F8F8FF",
+"!.	c #DDDDFF",
+"~.	c #E3E3E4",
+"{.	c #372D28",
+"].	c #A56F55",
+"^.	c #855A44",
+"/.	c #4B3226",
+"(.	c #B97E4E",
+"_.	c #E7B994",
+":.	c #D3AB8A",
+"<.	c #9B7D65",
+"[.	c #241D18",
+"}.	c #707070",
+"|.	c #DFDFFF",
+"1.	c #D6D6FF",
+"2.	c #D9D9FF",
+"3.	c #F5F5FF",
+"4.	c #F0F0FF",
+"5.	c #E4E4FF",
+"6.	c #A4A4AB",
+"7.	c #2F1F18",
+"8.	c #1E140F",
+"9.	c #2F2E26",
+"0.	c #9B987C",
+"a.	c #D9A77D",
+"b.	c #EABD98",
+"c.	c #A9886E",
+"d.	c #44372C",
+"e.	c #070504",
+"f.	c #020201",
+"g.	c #222222",
+"h.	c #E9E9EB",
+"i.	c #DCDCFF",
+"j.	c #CDCDF4",
+"k.	c #C6C6EC",
+"l.	c #D4D4FC",
+"m.	c #D7D7FE",
+"n.	c #40404B",
+"o.	c #9D9A7D",
+"p.	c #FDF8CB",
+"q.	c #FFFACC",
+"r.	c #9F6C42",
+"s.	c #644932",
+"t.	c #201914",
+"u.	c #1F1510",
+"v.	c #674535",
+"w.	c #402B21",
+"x.	c #DDDDE6",
+"y.	c #B9B9DC",
+"z.	c #797990",
+"A.	c #9191AC",
+"B.	c #BCBCE0",
+"C.	c #8F8FAB",
+"D.	c #474755",
+"E.	c #0D0D10",
+"F.	c #1D1D23",
+"G.	c #3E3E4A",
+"H.	c #CACAF1",
+"I.	c #D1D1F9",
+"J.	c #82818F",
+"K.	c #C7C299",
+"L.	c #656565",
+"M.	c #382C23",
+"N.	c #100B08",
+"O.	c #593C2E",
+"P.	c #9B6850",
+"Q.	c #AC7459",
+"R.	c #35241B",
+"S.	c #E8E8FC",
+"T.	c #D7D7FF",
+"U.	c #D5D5FD",
+"V.	c #6C6C81",
+"W.	c #D0D0F8",
+"X.	c #9595B1",
+"Y.	c #050506",
+"Z.	c #282830",
+"`.	c #35353F",
+" +	c #222228",
+".+	c #101013",
+"++	c #66667A",
+"@+	c #BFBFE4",
+"#+	c #C0C0E5",
+"$+	c #9090AB",
+"%+	c #35321C",
+"&+	c #C8BF72",
+"*+	c #FDF8C8",
+"=+	c #747474",
+"-+	c #242424",
+";+	c #6C4837",
+">+	c #AE7559",
+",+	c #3E2A20",
+"'+	c #525252",
+")+	c #F1F1FB",
+"!+	c #B5B5D7",
+"~+	c #C9C9EF",
+"{+	c #AEAECF",
+"]+	c #7E7E97",
+"^+	c #09090B",
+"/+	c #7A7A91",
+"(+	c #D3D3FC",
+"_+	c #ACACCD",
+":+	c #75758C",
+"<+	c #3B3B46",
+"[+	c #080705",
+"}+	c #322F1A",
+"|+	c #75703E",
+"1+	c #C0B869",
+"2+	c #EEE8B0",
+"3+	c #323232",
+"4+	c #040202",
+"5+	c #90614A",
+"6+	c #AA7257",
+"7+	c #724C3A",
+"8+	c #020202",
+"9+	c #EBEBEC",
+"0+	c #8989A4",
+"a+	c #6F6F84",
+"b+	c #17171C",
+"c+	c #555566",
+"d+	c #111114",
+"e+	c #9A9AB7",
+"f+	c #A2A2C1",
+"g+	c #545464",
+"h+	c #131316",
+"i+	c #222112",
+"j+	c #56522D",
+"k+	c #7E7943",
+"l+	c #C0B870",
+"m+	c #DED694",
+"n+	c #EFE9B1",
+"o+	c #FEF9CA",
+"p+	c #202020",
+"q+	c #B0765A",
+"r+	c #815641",
+"s+	c #5D3D2E",
+"t+	c #1D1D1D",
+"u+	c #F6F6FF",
+"v+	c #3F3F4B",
+"w+	c #77778E",
+"x+	c #C3C3E9",
+"y+	c #7C7C94",
+"z+	c #7A7A92",
+"A+	c #CECEF6",
+"B+	c #202026",
+"C+	c #0F0E08",
+"D+	c #524F2B",
+"E+	c #A9A15B",
+"F+	c #D4CC83",
+"G+	c #E5DEA1",
+"H+	c #F7F1BE",
+"I+	c #282828",
+"J+	c #9C6950",
+"K+	c #7A513D",
+"L+	c #6F4A38",
+"M+	c #C7C7ED",
+"N+	c #CFCFF6",
+"O+	c #7E7E96",
+"P+	c #1E1E20",
+"Q+	c #4A4627",
+"R+	c #9E985B",
+"S+	c #DAD390",
+"T+	c #EDE7AD",
+"U+	c #FEFACC",
+"V+	c #9E9B7E",
+"W+	c #424242",
+"X+	c #A16C52",
+"Y+	c #94634B",
+"Z+	c #0F0B09",
+"`+	c #E8E8FA",
+" @	c #BEBEE2",
+".@	c #8B8BA6",
+"+@	c #484854",
+"@@	c #2F2E21",
+"#@	c #726F4E",
+"$@	c #CDC791",
+"%@	c #F5EFBB",
+"&@	c #E7E3B9",
+"*@	c #8D8A71",
+"=@	c #6D6B57",
+"-@	c #555344",
+";@	c #5B5B5B",
+">@	c #060403",
+",@	c #7D533F",
+"'@	c #B0775B",
+")@	c #8F5F48",
+"!@	c #4C3226",
+"~@	c #1C190E",
+"{@	c #C0BFCE",
+"]@	c #D4D4FD",
+"^@	c #A0A0BF",
+"/@	c #5C5C6C",
+"(@	c #454337",
+"_@	c #5F5B39",
+":@	c #99956A",
+"<@	c #D9D4A0",
+"[@	c #FBF6C5",
+"}@	c #DCD7B0",
+"|@	c #1C1C17",
+"1@	c #86836B",
+"2@	c #573A2C",
+"3@	c #9F6B51",
+"4@	c #8E5F48",
+"5@	c #271A14",
+"6@	c #807C59",
+"7@	c #B6B079",
+"8@	c #D3D1CB",
+"9@	c #9D9A88",
+"0@	c #A7A37A",
+"a@	c #D7D196",
+"b@	c #F2EDB7",
+"c@	c #FEF9CB",
+"d@	c #F4EFC3",
+"e@	c #797660",
+"f@	c #787560",
+"g@	c #101010",
+"h@	c #34221A",
+"i@	c #895C45",
+"j@	c #906049",
+"k@	c #16110D",
+"l@	c #F3EFC3",
+"m@	c #8E8B71",
+"n@	c #EFEABF",
+"o@	c #A5A184",
+"p@	c #696754",
+"q@	c #C3BF9C",
+"r@	c #FDF8CA",
+"s@	c #353535",
+"t@	c #0A0605",
+"u@	c #78503C",
+"v@	c #8C5E47",
+"w@	c #1C130F",
+"x@	c #D8D4AD",
+"y@	c #DEDAB2",
+"z@	c #ECE7BD",
+"A@	c #D5D1AB",
+"B@	c #AFAC8C",
+"C@	c #E3DEB6",
+"D@	c #1C1C16",
+"E@	c #2F2E25",
+"F@	c #7D7A64",
+"G@	c #E2DEB5",
+"H@	c #676767",
+"I@	c #4F3427",
+"J@	c #7B523E",
+"K@	c #3C281E",
+"L@	c #656351",
+"M@	c #E4E0B7",
+"N@	c #BFBB99",
+"O@	c #9B977C",
+"P@	c #24231C",
+"Q@	c #9A967B",
+"R@	c #38372D",
+"S@	c #4A493B",
+"T@	c #5B5949",
+"U@	c #454437",
+"V@	c #C7C39F",
+"W@	c #ECE7BC",
+"X@	c #E3DEB5",
+"Y@	c #FAF5C8",
+"Z@	c #F2EDC2",
+"`@	c #87846C",
+" #	c #797761",
+".#	c #0F0F0F",
+"+#	c #201610",
+"@#	c #674433",
+"##	c #090806",
+"$#	c #E1DCAC",
+"%#	c #CDC9A4",
+"&#	c #F9F4C7",
+"*#	c #D4D0A9",
+"=#	c #27261F",
+"-#	c #3C3B30",
+";#	c #070706",
+">#	c #676553",
+",#	c #323128",
+"'#	c #CAC6A1",
+")#	c #C5C19E",
+"!#	c #F4F0C3",
+"~#	c #B4B190",
+"{#	c #0A0908",
+"]#	c #A4A183",
+"^#	c #030201",
+"/#	c #734C39",
+"(#	c #19100C",
+"_#	c #807C53",
+":#	c #514F40",
+"<#	c #13130F",
+"[#	c #48473A",
+"}#	c #4E4C3E",
+"|#	c #73715C",
+"1#	c #89866E",
+"2#	c #FAF6C8",
+"3#	c #D0CCA6",
+"4#	c #171612",
+"5#	c #25251E",
+"6#	c #ABA889",
+"7#	c #E4E0B6",
+"8#	c #C1BD9A",
+"9#	c #D3CFA9",
+"0#	c #503528",
+"a#	c #472F24",
+"b#	c #201F11",
+"c#	c #EDE7AF",
+"d#	c #E2DDB5",
+"e#	c #F0EBC0",
+"f#	c #B2AF8F",
+"g#	c #9F9B7F",
+"h#	c #A7A385",
+"i#	c #313027",
+"j#	c #2E2D25",
+"k#	c #302F27",
+"l#	c #7B7B7B",
+"m#	c #070707",
+"n#	c #231711",
+"o#	c #764E3B",
+"p#	c #0A0705",
+"q#	c #9A9560",
+"r#	c #F7F2C6",
+"s#	c #A6A385",
+"t#	c #4E4D3F",
+"u#	c #39382D",
+"v#	c #444337",
+"w#	c #36352B",
+"x#	c #E8E3B9",
+"y#	c #F3EEC2",
+"z#	c #A09D80",
+"A#	c #3A332E",
+"B#	c #010000",
+"C#	c #3A261D",
+"D#	c #292716",
+"E#	c #EEE7AF",
+"F#	c #98957A",
+"G#	c #979478",
+"H#	c #0E0E0B",
+"I#	c #141410",
+"J#	c #908E74",
+"K#	c #EDE8BD",
+"L#	c #7C7A64",
+"M#	c #1E1D18",
+"N#	c #1F1E19",
+"O#	c #EBE6BC",
+"P#	c #2C1D16",
+"Q#	c #714B39",
+"R#	c #9C9761",
+"S#	c #DDD9B1",
+"T#	c #424135",
+"U#	c #6C6956",
+"V#	c #010101",
+"W#	c #1D1C17",
+"X#	c #080806",
+"Y#	c #BCB896",
+"Z#	c #FCF7CA",
+"`#	c #BDB997",
+" $	c #7A7862",
+".$	c #CECAA5",
+"+$	c #B7B392",
+"@$	c #AAA688",
+"#$	c #4B331F",
+"$$	c #020101",
+"%$	c #6B4736",
+"&$	c #3B271D",
+"*$	c #262514",
+"=$	c #ECE6AE",
+"-$	c #4C4B3D",
+";$	c #26251E",
+">$	c #E0DBB3",
+",$	c #F1ECC1",
+"'$	c #6A6854",
+")$	c #6B6956",
+"!$	c #6C6A57",
+"~$	c #ECE8BD",
+"{$	c #A16E44",
+"]$	c #040303",
+"^$	c #322119",
+"/$	c #6E4937",
+"($	c #040302",
+"_$	c #918C5B",
+":$	c #E6E2B8",
+"<$	c #F0ECC0",
+"[$	c #CFCBA6",
+"}$	c #34332A",
+"|$	c #585646",
+"1$	c #838169",
+"2$	c #F2EDC1",
+"3$	c #5C5A4A",
+"4$	c #C68F62",
+"5$	c #534336",
+"6$	c #6C4836",
+"7$	c #302018",
+"8$	c #2B2917",
+"9$	c #EDE7AE",
+"0$	c #C8C4A0",
+"a$	c #63614F",
+"b$	c #ADAA8A",
+"c$	c #444336",
+"d$	c #514F41",
+"e$	c #ACA889",
+"f$	c #949176",
+"g$	c #F1ECC0",
+"h$	c #A29F82",
+"i$	c #4B4A3C",
+"j$	c #5E5C4B",
+"k$	c #BC987A",
+"l$	c #644232",
+"m$	c #A59E65",
+"n$	c #FFFACB",
+"o$	c #1A1A15",
+"p$	c #151511",
+"q$	c #4F4D3F",
+"r$	c #8A876E",
+"s$	c #FEF9CC",
+"t$	c #35342A",
+"u$	c #979479",
+"v$	c #CCC8A4",
+"w$	c #D7A47B",
+"x$	c #3A2F26",
+"y$	c #704A38",
+"z$	c #201510",
+"A$	c #454224",
+"B$	c #EDE6AD",
+"C$	c #B9B594",
+"D$	c #070705",
+"E$	c #C6C29F",
+"F$	c #FCF7C9",
+"G$	c #AAA788",
+"H$	c #84826A",
+"I$	c #464438",
+"J$	c #9C997D",
+"K$	c #C48C5E",
+"L$	c #A08268",
+"M$	c #53372A",
+"N$	c #040402",
+"O$	c #BAB26D",
+"P$	c #FCF7C7",
+"Q$	c #CBC7A2",
+"R$	c #EAE6BB",
+"S$	c #666451",
+"T$	c #2D2C24",
+"U$	c #706E5A",
+"V$	c #838069",
+"W$	c #86846B",
+"X$	c #2C2B23",
+". . . . . . . . . . . . . . . + @ # # $ % & . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . * = - ; > , ' ) ! . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . ~ { ] ^ / ( _ : < [ } . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . | 1 2 3 4 . 5 6 7 8 $ . . . . . . . . . . . . . . . . ",
+". . . . 9 9 9 9 9 9 9 9 9 ) 0 a b 9 9 9 c d e f 9 9 9 9 9 9 9 9 9 9 9 g . . . . ",
+". . . . 9 h h h i j h h k l m n o p p q r s t u v w x y z A B C D E E g . . . . ",
+". . . . 9 h h F G p H I J K L M N O P Q R S T g U V W X Y E E E E E E g . . . . ",
+". . . . 9 h Z ` p p p p  ...M ; +. at .#.$.%.e g g g g &.*.=.-.;.E E E E g . . . . ",
+". . . . 9 h >.p p p p p ,.'. at .$.).g g g g g g g g g M !.7 ~.{.].E ^./.g . . . . ",
+". . . . 9 (._.p p p :.<.[.}.|.1.2.3.g g g 4.5.5.> ; 1.1.1.!.6.7.8.9.0.g . . . . ",
+". . . . 9 h a.b.c.d.e.f.g.h.i.1.1.M g T M 1.1.1.1.1.1.j.k.l.m.n.o.p.q.g . . . . ",
+". . . . 9 r.s.t.u.v.w.* x.!.1.1.1.5.m 2.y.z.A.B.C.D.E.F.G.H.I.J.K.q.q.g . . . . ",
+". . . L.M.N.O.P.Q.R.L.S.T.U.V.W.1.1.1.X.Y.Z.`. +.+++ at +1.#+$+3 %+&+*+q.g . . . . ",
+". =+-+z ;+>+E >+,+'+)+1.U.V.!+~+{+1.]+^+/+U.1.1.(+_+:+<+[+}+|+1+2+q.q.g . . . . ",
+". 3+4+5+E E 6+7+8+9+#.1.0+/+a+.+b+c+d+e+1.l.f+g+h+i+j+k+l+m+n+o+q.q.q.g . . . . ",
+". p+A E E q+r+s+t+u+1.1.<+v+w+x+y+z+~+A+:+B+C+D+E+F+G+H+q.q.q.q.q.q.q.g . . . . ",
+". I+A E E J+K+L+t+4.1.1.M+1.1.1.1.N+O+P+Q+R+S+T+*+q.q.q.q.q.q.q.q.U+V+g . . . . ",
+". W+W X+E Y+K+K+Z+`+1.1.1.1. @. at +@@@#@$@%@q.q.q.q.q.q.q.q.q.q.&@*@=@- at g . . . . ",
+". ;@>@,@'@)@K+!@~@{@]@^@/@(@_@:@<@[@q.q.q.q.q.q.q.q.q.q.q.q.}@|@1 at V+q.g . . . . ",
+". =+9 2 at 3@4 at 5@6 at 7@8 at 9@0 at a@b at c@q.q.q.q.q.q.q.q.q.q.q.d at e@q.q.q.f at q.q.q.g . . . . ",
+". . g at h@i at j@k at c@q.q.q.q.q.q.q.q.q.q.q.q.q.l at q.q.m@n at o@p at q@q.q.r at q.q.q.g . . . . ",
+". . s at t@u at v@w at x@q.q.q.q.q.q.q.q.q.r at y@z at A@9.B at C@D at E@F at q.G@q.q.q.q.q.q.g . . . . ",
+". . H at 9 I at J@K at L@q.q.q.q.q.q.q.M at N@O at P@Q at R@S at T@U at V@W at X@q.q.Y at Y@q.Z@`@ #g . . . . ",
+". . . .#+#K+@###$#q.Y@%#&#*#=#-#9 ;#>#,#'#)#q.!#q.q.q.x at x@=#p at q.~#{#]#g . . . . ",
+". . . s@^#/#K+(#_#q.q.:#<#[#}#|#'#1#2#r at q.q.q.q.q.3#r at 4#5#6#7#q.q.8#9#g . . . . ",
+". . . ;@9 0#K+a#b#c#q.d#L at e#&@q.q.q.q.q.r at Y@f#g#h#8+i#j#Y at q.q.q.q.q.k#g . . . . ",
+". . . l#m#n#K+o#p#q#q.q.r#q.q.q.q.q.&#Z at s#t#u#v#w#9#x#y at q.q.q.y#M at q.z#g . . . . ",
+". . . . A#B#@#K+C#D#E#q.q.q.q.q.F#s#G#H#I#J#F at q.r@q.q.q.K#L#e at M#N#O#q.g . . . . ",
+". . . . 9 ^#P#K+Q#>@R#q.q.S#T#U#V#W#X#V at Y#Z#q.q.q.q.c@`#p@ $.$+$@$q.q.g . . . . ",
+". . . . 9 #$$$%$K+&$*$=$q.q.L at -$;$q.O#q.q.q.q.>$,$'$)$!$>#q.q.q.q.q.~$g . . . . ",
+". . . . 9 {$]$^$K+/$($_$q.q.:$<$r#q.q.q.>$[$,#9.}$|$1$2$q.q.q.q.q.q.3$g . . . . ",
+". . . . 9 4$5$4+6$K+7$8$9$q.q.q.q.0$a$b$c$d$e$f$g$d at q.q.q.q.q.q.h$i$j$g . . . . ",
+". . . . 9 >.k$9 h at K+l$V#m$n$q.y#}$o$p$q$r$q.q.q.q.q.q.q.q.s$[$w#t$u$v$g . . . . ",
+". . . . 9 w$p x$>@y$K+z$A$B$q.q.C$D$E$q.q.q.q.q.q.F$l at G$H$I$M#J$V at q.r$g . . . . ",
+". . . . 9 K$p L$9 C#K+M$N$O$P$q.q.Q$q.q.q.q.q.q.R$S$T$9 U$V$W$q.Y at e@X$g . . . . ",
+". . . . g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_40x40_mask.xbm b/icon/ico_40x40_mask.xbm
new file mode 100644
index 0000000..559724e
--- /dev/null
+++ b/icon/ico_40x40_mask.xbm
@@ -0,0 +1,21 @@
+/* Created with The GIMP */
+#define ico_40x40_mask_width 40
+#define ico_40x40_mask_height 40
+static unsigned char ico_40x40_mask_bits[] = {
+   0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0xe0,
+   0x7f, 0x00, 0x00, 0x00, 0xe0, 0xfb, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff,
+   0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0,
+   0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff,
+   0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f,
+   0xf0, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0xfe, 0xff,
+   0xff, 0xff, 0x0f, 0xfe, 0xff, 0xff, 0xff, 0x0f, 0xfe, 0xff, 0xff, 0xff,
+   0x0f, 0xfe, 0xff, 0xff, 0xff, 0x0f, 0xfe, 0xff, 0xff, 0xff, 0x0f, 0xfc,
+   0xff, 0xff, 0xff, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0xff, 0xff,
+   0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0x0f,
+   0xf8, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff,
+   0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff,
+   0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0,
+   0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff,
+   0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0x0f,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/icon/ico_40x40_white.xpm b/icon/ico_40x40_white.xpm
new file mode 100644
index 0000000..e2b610b
--- /dev/null
+++ b/icon/ico_40x40_white.xpm
@@ -0,0 +1,591 @@
+/* XPM */
+static char * ico_40x40_white_xpm[] = {
+"40 40 548 2",
+"  	c None",
+". 	c #FFFFFF",
+"+ 	c #BDBDBD",
+"@ 	c #575757",
+"# 	c #5C5C5C",
+"$ 	c #5A5A5A",
+"% 	c #AFAFAF",
+"& 	c #FBFBFB",
+"* 	c #939393",
+"= 	c #666667",
+"- 	c #DFDFEF",
+"; 	c #E2E2FF",
+"> 	c #E6E6FF",
+", 	c #E1E1EF",
+"' 	c #8C8C8D",
+") 	c #3B3B3B",
+"! 	c #CECECE",
+"~ 	c #8F8F8F",
+"{ 	c #EDEDFF",
+"] 	c #B4B4D6",
+"^ 	c #4A4A59",
+"/ 	c #3A3A45",
+"( 	c #787890",
+"_ 	c #DFDFFB",
+": 	c #E5E5E8",
+"< 	c #4B4B4B",
+"[ 	c #F0F0F0",
+"} 	c #1E1E1E",
+"| 	c #E0E0E1",
+"1 	c #DBDBFF",
+"2 	c #1F1F25",
+"3 	c #382617",
+"4 	c #060402",
+"5 	c #78788C",
+"6 	c #E9E9FF",
+"7 	c #CACACA",
+"8 	c #5F5F5F",
+"9 	c #000000",
+"0 	c #272727",
+"a 	c #F2F2FF",
+"b 	c #C7C7EC",
+"c 	c #47301D",
+"d 	c #1A1A20",
+"e 	c #D9D9FE",
+"f 	c #FEFEFF",
+"g 	c #616161",
+"h 	c #B87D4C",
+"i 	c #B97F4E",
+"j 	c #BE8455",
+"k 	c #805735",
+"l 	c #4E4E4E",
+"m 	c #ECECFF",
+"n 	c #DBDBF5",
+"o 	c #765D49",
+"p 	c #EBBE99",
+"q 	c #4F4033",
+"r 	c #464648",
+"s 	c #D6D6FE",
+"t 	c #F7F7FF",
+"u 	c #EEEEEE",
+"v 	c #413C38",
+"w 	c #816954",
+"x 	c #59483A",
+"y 	c #18110B",
+"z 	c #0D0907",
+"A 	c #34231B",
+"B 	c #684635",
+"C 	c #95644C",
+"D 	c #AD7559",
+"E 	c #B1775B",
+"F 	c #B87D4D",
+"G 	c #DAA980",
+"H 	c #E3B48D",
+"I 	c #D6A379",
+"J 	c #73543A",
+"K 	c #686868",
+"L 	c #E8E8FF",
+"M 	c #E5E5FF",
+"N 	c #D4CEC9",
+"O 	c #F4E4DA",
+"P 	c #ECE0DF",
+"Q 	c #A3A3B0",
+"R 	c #DFDFFA",
+"S 	c #E0E0FF",
+"T 	c #FCFCFF",
+"U 	c #E7E7E7",
+"V 	c #160F0B",
+"W 	c #614132",
+"X 	c #9E6A51",
+"Y 	c #B87E4D",
+"Z 	c #D8A57C",
+"` 	c #78614E",
+" .	c #6B6B6B",
+"..	c #FBFBFF",
+"+.	c #E1E1FF",
+"@.	c #DEDEFF",
+"#.	c #DADAFF",
+"$.	c #E7E7FF",
+"%.	c #E0E0E0",
+"&.	c #BABABA",
+"*.	c #989797",
+"=.	c #523E35",
+"-.	c #A26D53",
+";.	c #D4A177",
+">.	c #6E5948",
+",.	c #515151",
+"'.	c #F8F8FF",
+").	c #DDDDFF",
+"!.	c #E3E3E4",
+"~.	c #372D28",
+"{.	c #A56F55",
+"].	c #855A44",
+"^.	c #4B3226",
+"/.	c #B97E4E",
+"(.	c #E7B994",
+"_.	c #D3AB8A",
+":.	c #9B7D65",
+"<.	c #241D18",
+"[.	c #707070",
+"}.	c #DFDFFF",
+"|.	c #D6D6FF",
+"1.	c #D9D9FF",
+"2.	c #F5F5FF",
+"3.	c #F0F0FF",
+"4.	c #E4E4FF",
+"5.	c #A4A4AB",
+"6.	c #2F1F18",
+"7.	c #1E140F",
+"8.	c #2F2E26",
+"9.	c #9B987C",
+"0.	c #D9A77D",
+"a.	c #EABD98",
+"b.	c #A9886E",
+"c.	c #44372C",
+"d.	c #070504",
+"e.	c #020201",
+"f.	c #222222",
+"g.	c #E9E9EB",
+"h.	c #DCDCFF",
+"i.	c #CDCDF4",
+"j.	c #C6C6EC",
+"k.	c #D4D4FC",
+"l.	c #D7D7FE",
+"m.	c #40404B",
+"n.	c #9D9A7D",
+"o.	c #FDF8CB",
+"p.	c #FFFACC",
+"q.	c #9F6C42",
+"r.	c #644932",
+"s.	c #201914",
+"t.	c #1F1510",
+"u.	c #674535",
+"v.	c #402B21",
+"w.	c #494949",
+"x.	c #DDDDE6",
+"y.	c #B9B9DC",
+"z.	c #797990",
+"A.	c #9191AC",
+"B.	c #BCBCE0",
+"C.	c #8F8FAB",
+"D.	c #474755",
+"E.	c #0D0D10",
+"F.	c #1D1D23",
+"G.	c #3E3E4A",
+"H.	c #CACAF1",
+"I.	c #D1D1F9",
+"J.	c #82818F",
+"K.	c #C7C299",
+"L.	c #CCCCCC",
+"M.	c #4C4037",
+"N.	c #100B08",
+"O.	c #593C2E",
+"P.	c #9B6850",
+"Q.	c #AC7459",
+"R.	c #35241B",
+"S.	c #656565",
+"T.	c #E8E8FC",
+"U.	c #D7D7FF",
+"V.	c #D5D5FD",
+"W.	c #6C6C81",
+"X.	c #D0D0F8",
+"Y.	c #9595B1",
+"Z.	c #050506",
+"`.	c #282830",
+" +	c #35353F",
+".+	c #222228",
+"++	c #101013",
+"@+	c #66667A",
+"#+	c #BFBFE4",
+"$+	c #C0C0E5",
+"%+	c #9090AB",
+"&+	c #35321C",
+"*+	c #C8BF72",
+"=+	c #FDF8C8",
+"-+	c #EAEAEA",
+";+	c #4A4A4A",
+">+	c #6C4837",
+",+	c #AE7559",
+"'+	c #3E2A20",
+")+	c #525252",
+"!+	c #F1F1FB",
+"~+	c #B5B5D7",
+"{+	c #C9C9EF",
+"]+	c #AEAECF",
+"^+	c #7E7E97",
+"/+	c #09090B",
+"(+	c #7A7A91",
+"_+	c #D3D3FC",
+":+	c #ACACCD",
+"<+	c #75758C",
+"[+	c #3B3B46",
+"}+	c #080705",
+"|+	c #322F1A",
+"1+	c #75703E",
+"2+	c #C0B869",
+"3+	c #EEE8B0",
+"4+	c #666666",
+"5+	c #040202",
+"6+	c #90614A",
+"7+	c #AA7257",
+"8+	c #724C3A",
+"9+	c #020202",
+"0+	c #EBEBEC",
+"a+	c #8989A4",
+"b+	c #6F6F84",
+"c+	c #17171C",
+"d+	c #555566",
+"e+	c #111114",
+"f+	c #9A9AB7",
+"g+	c #A2A2C1",
+"h+	c #545464",
+"i+	c #131316",
+"j+	c #222112",
+"k+	c #56522D",
+"l+	c #7E7943",
+"m+	c #C0B870",
+"n+	c #DED694",
+"o+	c #EFE9B1",
+"p+	c #FEF9CA",
+"q+	c #414141",
+"r+	c #B0765A",
+"s+	c #815641",
+"t+	c #5D3D2E",
+"u+	c #1D1D1D",
+"v+	c #F6F6FF",
+"w+	c #3F3F4B",
+"x+	c #77778E",
+"y+	c #C3C3E9",
+"z+	c #7C7C94",
+"A+	c #7A7A92",
+"B+	c #CECEF6",
+"C+	c #202026",
+"D+	c #0F0E08",
+"E+	c #524F2B",
+"F+	c #A9A15B",
+"G+	c #D4CC83",
+"H+	c #E5DEA1",
+"I+	c #F7F1BE",
+"J+	c #9C6950",
+"K+	c #7A513D",
+"L+	c #6F4A38",
+"M+	c #C7C7ED",
+"N+	c #CFCFF6",
+"O+	c #7E7E96",
+"P+	c #1E1E20",
+"Q+	c #4A4627",
+"R+	c #9E985B",
+"S+	c #DAD390",
+"T+	c #EDE7AD",
+"U+	c #FEFACC",
+"V+	c #9E9B7E",
+"W+	c #858585",
+"X+	c #A16C52",
+"Y+	c #94634B",
+"Z+	c #0F0B09",
+"`+	c #E8E8FA",
+" @	c #BEBEE2",
+".@	c #8B8BA6",
+"+@	c #484854",
+"@@	c #2F2E21",
+"#@	c #726F4E",
+"$@	c #CDC791",
+"%@	c #F5EFBB",
+"&@	c #E7E3B9",
+"*@	c #8D8A71",
+"=@	c #6D6B57",
+"-@	c #555344",
+";@	c #B8B8B8",
+">@	c #060403",
+",@	c #7D533F",
+"'@	c #B0775B",
+")@	c #8F5F48",
+"!@	c #4C3226",
+"~@	c #1C190E",
+"{@	c #C0BFCE",
+"]@	c #D4D4FD",
+"^@	c #A0A0BF",
+"/@	c #5C5C6C",
+"(@	c #454337",
+"_@	c #5F5B39",
+":@	c #99956A",
+"<@	c #D9D4A0",
+"[@	c #FBF6C5",
+"}@	c #DCD7B0",
+"|@	c #1C1C17",
+"1@	c #86836B",
+"2@	c #010101",
+"3@	c #573A2C",
+"4@	c #9F6B51",
+"5@	c #8E5F48",
+"6@	c #271A14",
+"7@	c #807C59",
+"8@	c #B6B079",
+"9@	c #D3D1CB",
+"0@	c #9D9A88",
+"a@	c #A7A37A",
+"b@	c #D7D196",
+"c@	c #F2EDB7",
+"d@	c #FEF9CB",
+"e@	c #F4EFC3",
+"f@	c #797660",
+"g@	c #787560",
+"h@	c #34221A",
+"i@	c #895C45",
+"j@	c #906049",
+"k@	c #16110D",
+"l@	c #F3EFC3",
+"m@	c #8E8B71",
+"n@	c #EFEABF",
+"o@	c #A5A184",
+"p@	c #696754",
+"q@	c #C3BF9C",
+"r@	c #FDF8CA",
+"s@	c #6C6C6C",
+"t@	c #0A0605",
+"u@	c #78503C",
+"v@	c #8C5E47",
+"w@	c #1C130F",
+"x@	c #D8D4AD",
+"y@	c #DEDAB2",
+"z@	c #ECE7BD",
+"A@	c #D5D1AB",
+"B@	c #AFAC8C",
+"C@	c #E3DEB6",
+"D@	c #1C1C16",
+"E@	c #2F2E25",
+"F@	c #7D7A64",
+"G@	c #E2DEB5",
+"H@	c #D0D0D0",
+"I@	c #4F3427",
+"J@	c #7B523E",
+"K@	c #3C281E",
+"L@	c #656351",
+"M@	c #E4E0B7",
+"N@	c #BFBB99",
+"O@	c #9B977C",
+"P@	c #24231C",
+"Q@	c #9A967B",
+"R@	c #38372D",
+"S@	c #4A493B",
+"T@	c #5B5949",
+"U@	c #454437",
+"V@	c #C7C39F",
+"W@	c #ECE7BC",
+"X@	c #E3DEB5",
+"Y@	c #FAF5C8",
+"Z@	c #F2EDC2",
+"`@	c #87846C",
+" #	c #797761",
+".#	c #1F1F1F",
+"+#	c #201610",
+"@#	c #674433",
+"##	c #090806",
+"$#	c #E1DCAC",
+"%#	c #CDC9A4",
+"&#	c #F9F4C7",
+"*#	c #D4D0A9",
+"=#	c #27261F",
+"-#	c #3C3B30",
+";#	c #070706",
+">#	c #676553",
+",#	c #323128",
+"'#	c #CAC6A1",
+")#	c #C5C19E",
+"!#	c #F4F0C3",
+"~#	c #B4B190",
+"{#	c #0A0908",
+"]#	c #A4A183",
+"^#	c #030201",
+"/#	c #734C39",
+"(#	c #19100C",
+"_#	c #807C53",
+":#	c #514F40",
+"<#	c #13130F",
+"[#	c #48473A",
+"}#	c #4E4C3E",
+"|#	c #73715C",
+"1#	c #89866E",
+"2#	c #FAF6C8",
+"3#	c #D0CCA6",
+"4#	c #171612",
+"5#	c #25251E",
+"6#	c #ABA889",
+"7#	c #E4E0B6",
+"8#	c #C1BD9A",
+"9#	c #D3CFA9",
+"0#	c #503528",
+"a#	c #472F24",
+"b#	c #201F11",
+"c#	c #EDE7AF",
+"d#	c #E2DDB5",
+"e#	c #F0EBC0",
+"f#	c #B2AF8F",
+"g#	c #9F9B7F",
+"h#	c #A7A385",
+"i#	c #313027",
+"j#	c #2E2D25",
+"k#	c #302F27",
+"l#	c #F8F8F8",
+"m#	c #101010",
+"n#	c #231711",
+"o#	c #764E3B",
+"p#	c #0A0705",
+"q#	c #9A9560",
+"r#	c #F7F2C6",
+"s#	c #A6A385",
+"t#	c #4E4D3F",
+"u#	c #39382D",
+"v#	c #444337",
+"w#	c #36352B",
+"x#	c #E8E3B9",
+"y#	c #F3EEC2",
+"z#	c #A09D80",
+"A#	c #615A54",
+"B#	c #010000",
+"C#	c #3A261D",
+"D#	c #292716",
+"E#	c #EEE7AF",
+"F#	c #98957A",
+"G#	c #979478",
+"H#	c #0E0E0B",
+"I#	c #141410",
+"J#	c #908E74",
+"K#	c #EDE8BD",
+"L#	c #7C7A64",
+"M#	c #1E1D18",
+"N#	c #1F1E19",
+"O#	c #EBE6BC",
+"P#	c #2C1D16",
+"Q#	c #714B39",
+"R#	c #9C9761",
+"S#	c #DDD9B1",
+"T#	c #424135",
+"U#	c #6C6956",
+"V#	c #1D1C17",
+"W#	c #080806",
+"X#	c #BCB896",
+"Y#	c #FCF7CA",
+"Z#	c #BDB997",
+"`#	c #7A7862",
+" $	c #CECAA5",
+".$	c #B7B392",
+"+$	c #AAA688",
+"@$	c #4B331F",
+"#$	c #020101",
+"$$	c #6B4736",
+"%$	c #3B271D",
+"&$	c #262514",
+"*$	c #ECE6AE",
+"=$	c #4C4B3D",
+"-$	c #26251E",
+";$	c #E0DBB3",
+">$	c #F1ECC1",
+",$	c #6A6854",
+"'$	c #6B6956",
+")$	c #6C6A57",
+"!$	c #ECE8BD",
+"~$	c #A16E44",
+"{$	c #040303",
+"]$	c #322119",
+"^$	c #6E4937",
+"/$	c #040302",
+"($	c #918C5B",
+"_$	c #E6E2B8",
+":$	c #F0ECC0",
+"<$	c #CFCBA6",
+"[$	c #34332A",
+"}$	c #585646",
+"|$	c #838169",
+"1$	c #F2EDC1",
+"2$	c #5C5A4A",
+"3$	c #C68F62",
+"4$	c #534336",
+"5$	c #6C4836",
+"6$	c #302018",
+"7$	c #2B2917",
+"8$	c #EDE7AE",
+"9$	c #C8C4A0",
+"0$	c #63614F",
+"a$	c #ADAA8A",
+"b$	c #444336",
+"c$	c #514F41",
+"d$	c #ACA889",
+"e$	c #949176",
+"f$	c #F1ECC0",
+"g$	c #A29F82",
+"h$	c #4B4A3C",
+"i$	c #5E5C4B",
+"j$	c #BC987A",
+"k$	c #644232",
+"l$	c #A59E65",
+"m$	c #FFFACB",
+"n$	c #1A1A15",
+"o$	c #151511",
+"p$	c #4F4D3F",
+"q$	c #8A876E",
+"r$	c #FEF9CC",
+"s$	c #35342A",
+"t$	c #979479",
+"u$	c #CCC8A4",
+"v$	c #D7A47B",
+"w$	c #3A2F26",
+"x$	c #704A38",
+"y$	c #201510",
+"z$	c #454224",
+"A$	c #EDE6AD",
+"B$	c #B9B594",
+"C$	c #070705",
+"D$	c #C6C29F",
+"E$	c #FCF7C9",
+"F$	c #AAA788",
+"G$	c #84826A",
+"H$	c #464438",
+"I$	c #9C997D",
+"J$	c #C48C5E",
+"K$	c #A08268",
+"L$	c #53372A",
+"M$	c #040402",
+"N$	c #BAB26D",
+"O$	c #FCF7C7",
+"P$	c #CBC7A2",
+"Q$	c #EAE6BB",
+"R$	c #666451",
+"S$	c #2D2C24",
+"T$	c #706E5A",
+"U$	c #838069",
+"V$	c #86846B",
+"W$	c #2C2B23",
+". . . . . . . . . . . . . . . + @ # # $ % & . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . * = - ; > , ' ) ! . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . ~ # { ] ^ / ( _ : < [ . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . } | 1 2 3 . 4 5 6 7 8 . . . . . . . . . . . . . . . . ",
+". . . . 9 9 9 9 9 9 9 9 9 0 a b c 9 9 9 d e f g 9 9 9 9 9 9 9 9 9 9 9 . . . . . ",
+". . . . 9 h h h i j h h k l m n o p p q r s t u v w x y z A B C D E E . . . . . ",
+". . . . 9 h h F G p H I J K L M N O P Q R S T . U < V W X E E E E E E . . . . . ",
+". . . . 9 h Y Z p p p p `  .M ; ..+. at .#.$.f . . . . %.&.*.=.-.E E E E . . . . . ",
+". . . . 9 h ;.p p p p p >.,.+.#.'.. . . . . . . . . M ).6 !.~.{.E ].^.. . . . . ",
+". . . . 9 /.(.p p p _.:.<.[.}.|.1.2.. . . 3.4.4.> ; |.|.|.).5.6.7.8.9.. . . . . ",
+". . . . 9 h 0.a.b.c.d.e.f.g.h.|.|.M . T M |.|.|.|.|.|.i.j.k.l.m.n.o.p.. . . . . ",
+". . . . 9 q.r.s.t.u.v.w.x.).|.|.|.4.m 1.y.z.A.B.C.D.E.F.G.H.I.J.K.p.p.. . . . . ",
+". . . L.M.N.O.P.Q.R.S.T.U.V.W.X.|.|.|.Y.Z.`. +.+++ at +#+|.$+%+2 &+*+=+p.. . . . . ",
+". -+;+z >+,+E ,+'+)+!+|.V.W.~+{+]+|.^+/+(+V.|.|._+:+<+[+}+|+1+2+3+p.p.. . . . . ",
+". 4+5+6+E E 7+8+9+0+ at .|.a+(+b+++c+d+e+f+|.k.g+h+i+j+k+l+m+n+o+p+p.p.p.. . . . . ",
+". q+A E E r+s+t+u+v+|.|.[+w+x+y+z+A+{+B+<+C+D+E+F+G+H+I+p.p.p.p.p.p.p.. . . . . ",
+". )+A E E J+K+L+u+3.|.|.M+|.|.|.|.N+O+P+Q+R+S+T+=+p.p.p.p.p.p.p.p.U+V+. . . . . ",
+". W+V X+E Y+K+K+Z+`+|.|.|.|. @. at +@@@#@$@%@p.p.p.p.p.p.p.p.p.p.&@*@=@- at . . . . . ",
+". ;@>@,@'@)@K+!@~@{@]@^@/@(@_@:@<@[@p.p.p.p.p.p.p.p.p.p.p.p.}@|@1 at V+p.. . . . . ",
+". -+2 at 3@4 at 5@6 at 7@8 at 9@0 at a@b at c@d at p.p.p.p.p.p.p.p.p.p.p.e@f at p.p.p.g@p.p.p.. . . . . ",
+". . f.h at i@j at k@d at p.p.p.p.p.p.p.p.p.p.p.p.p.l@p.p.m at n@o at p@q at p.p.r@p.p.p.. . . . . ",
+". . s at t@u at v@w at x@p.p.p.p.p.p.p.p.p.r at y@z at A@8.B at C@D at E@F at p.G@p.p.p.p.p.p.. . . . . ",
+". . H at 9 I at J@K at L@p.p.p.p.p.p.p.M at N@O at P@Q at R@S at T@U at V@W at X@p.p.Y at Y@p.Z@`@ #. . . . . ",
+". . . .#+#K+@###$#p.Y@%#&#*#=#-#9 ;#>#,#'#)#p.!#p.p.p.x at x@=#p at p.~#{#]#. . . . . ",
+". . .  .^#/#K+(#_#p.p.:#<#[#}#|#'#1#2#r at p.p.p.p.p.3#r at 4#5#6#7#p.p.8#9#. . . . . ",
+". . . ;@9 0#K+a#b#c#p.d#L at e#&@p.p.p.p.p.r at Y@f#g#h#9+i#j#Y at p.p.p.p.p.k#. . . . . ",
+". . . l#m#n#K+o#p#q#p.p.r#p.p.p.p.p.&#Z at s#t#u#v#w#9#x#y at p.p.p.y#M at p.z#. . . . . ",
+". . . . A#B#@#K+C#D#E#p.p.p.p.p.F#s#G#H#I#J#F at p.r@p.p.p.K#L#f at M#N#O#p.. . . . . ",
+". . . . 9 ^#P#K+Q#>@R#p.p.S#T#U#2 at V#W#V at X#Y#p.p.p.p.d at Z#p@`# $.$+$p.p.. . . . . ",
+". . . . 9 @$#$$$K+%$&$*$p.p.L@=$-$p.O#p.p.p.p.;$>$,$'$)$>#p.p.p.p.p.!$. . . . . ",
+". . . . 9 ~${$]$K+^$/$($p.p._$:$r#p.p.p.;$<$,#8.[$}$|$1$p.p.p.p.p.p.2$. . . . . ",
+". . . . 9 3$4$5+5$K+6$7$8$p.p.p.p.9$0$a$b$c$d$e$f$e at p.p.p.p.p.p.g$h$i$. . . . . ",
+". . . . 9 ;.j$9 h at K+k$2 at l$m$p.y#[$n$o$p$q$p.p.p.p.p.p.p.p.r$<$w#s$t$u$. . . . . ",
+". . . . 9 v$p w$>@x$K+y$z$A$p.p.B$C$D$p.p.p.p.p.p.E$l at F$G$H$M#I$V at p.q$. . . . . ",
+". . . . 9 J$p K$9 C#K+L$M$N$O$p.p.P$p.p.p.p.p.p.Q$R$S$9 T$U$V$p.Y at f@W$. . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_60x60.xcf.bz2 b/icon/ico_60x60.xcf.bz2
new file mode 100644
index 0000000..272f9c2
Binary files /dev/null and b/icon/ico_60x60.xcf.bz2 differ
diff --git a/icon/ico_60x60_black.xpm b/icon/ico_60x60_black.xpm
new file mode 100644
index 0000000..3d3dab8
--- /dev/null
+++ b/icon/ico_60x60_black.xpm
@@ -0,0 +1,834 @@
+/* XPM */
+static char * ico_60x60_black_xpm[] = {
+"60 60 771 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #242424",
+"@ 	c #808080",
+"# 	c #B4B4B6",
+"$ 	c #B6B6B6",
+"% 	c #878787",
+"& 	c #2A2A2A",
+"* 	c #5D5D5D",
+"= 	c #ECECF4",
+"- 	c #E4E4FF",
+"; 	c #D7D7FF",
+"> 	c #DDDDFF",
+", 	c #E6E6FF",
+"' 	c #F8F8FE",
+") 	c #AEAEAE",
+"! 	c #252525",
+"~ 	c #535353",
+"{ 	c #FBFBFE",
+"] 	c #D9D9FF",
+"^ 	c #D0D0F8",
+"/ 	c #8787A1",
+"( 	c #535363",
+"_ 	c #656578",
+": 	c #9B9BB8",
+"< 	c #F0F0FF",
+"[ 	c #F5F5F5",
+"} 	c #626262",
+"| 	c #111111",
+"1 	c #F2F2F2",
+"2 	c #ECECFF",
+"3 	c #2D2D35",
+"4 	c #525262",
+"5 	c #D6D6FE",
+"6 	c #FDFDFD",
+"7 	c #464646",
+"8 	c #666666",
+"9 	c #FEFEFF",
+"0 	c #DBDBFF",
+"a 	c #84849D",
+"b 	c #362416",
+"c 	c #795232",
+"d 	c #6A482C",
+"e 	c #090604",
+"f 	c #A1A1B8",
+"g 	c #DCDCFF",
+"h 	c #FFFFFF",
+"i 	c #CACACA",
+"j 	c #A7A7A7",
+"k 	c #EFEFFF",
+"l 	c #D6D6FF",
+"m 	c #555566",
+"n 	c #4C341F",
+"o 	c #BA7F4E",
+"p 	c #C99366",
+"q 	c #BA804F",
+"r 	c #68462B",
+"s 	c #393944",
+"t 	c #F4F4FF",
+"u 	c #B87D4C",
+"v 	c #7C5433",
+"w 	c #DCDCDC",
+"x 	c #E7E7FF",
+"y 	c #5A5A62",
+"z 	c #986A43",
+"A 	c #DDAC84",
+"B 	c #EBBE99",
+"C 	c #E6B892",
+"D 	c #B48761",
+"E 	c #0F0F12",
+"F 	c #D2D2FA",
+"G 	c #E5E5FF",
+"H 	c #E7E7E7",
+"I 	c #191918",
+"J 	c #906B4C",
+"K 	c #E7B892",
+"L 	c #DBA981",
+"M 	c #9D6D44",
+"N 	c #5D3F26",
+"O 	c #24190F",
+"P 	c #010000",
+"Q 	c #18100D",
+"R 	c #38261D",
+"S 	c #634333",
+"T 	c #855A45",
+"U 	c #AA7257",
+"V 	c #B1775B",
+"W 	c #B97F4E",
+"X 	c #BF8656",
+"Y 	c #624329",
+"Z 	c #F9F9F9",
+"` 	c #E2E2FF",
+" .	c #DADAFF",
+"..	c #838383",
+"+.	c #AA886C",
+"@.	c #5F4C3E",
+"#.	c #828285",
+"$.	c #BBBBBB",
+"%.	c #0C0B0A",
+"&.	c #665242",
+"*.	c #42362B",
+"=.	c #1B1612",
+"-.	c #0D0907",
+";.	c #2F2018",
+">.	c #6A4837",
+",.	c #9A684F",
+"'.	c #E6B791",
+").	c #D7A57B",
+"!.	c #CB9568",
+"~.	c #BD8353",
+"{.	c #4D3420",
+"].	c #181818",
+"^.	c #DEDEFF",
+"/.	c #AD9E91",
+"(.	c #F2D6BE",
+"_.	c #F3D7C0",
+":.	c #EBD8C8",
+"<.	c #666565",
+"[.	c #ADADAE",
+"}.	c #B9B9B9",
+"|.	c #131313",
+"1.	c #312119",
+"2.	c #6D4A38",
+"3.	c #8B5D47",
+"4.	c #B87D4D",
+"5.	c #D6A379",
+"6.	c #3D3126",
+"7.	c #222222",
+"8.	c #FDFDFF",
+"9.	c #F8F8FF",
+"0.	c #EAEAFF",
+"a.	c #E1E1FF",
+"b.	c #EAEAEA",
+"c.	c #696969",
+"d.	c #303030",
+"e.	c #251D19",
+"f.	c #33231A",
+"g.	c #624232",
+"h.	c #A46E54",
+"i.	c #D5A379",
+"j.	c #3F3329",
+"k.	c #FCFCFF",
+"l.	c #F3F3FF",
+"m.	c #F8F8F8",
+"n.	c #B5B5B5",
+"o.	c #2C2826",
+"p.	c #D29E73",
+"q.	c #020202",
+"r.	c #F6F6F9",
+"s.	c #F6F6FF",
+"t.	c #E9E9FF",
+"u.	c #FBFBFF",
+"v.	c #EDEDED",
+"w.	c #3B3B3B",
+"x.	c #593C2E",
+"y.	c #A56F55",
+"z.	c #7B533F",
+"A.	c #CB9669",
+"B.	c #191410",
+"C.	c #F1F1F9",
+"D.	c #E8E8FF",
+"E.	c #F2F2FF",
+"F.	c #E5E5E5",
+"G.	c #6D4938",
+"H.	c #B0765B",
+"I.	c #895C47",
+"J.	c #3C281F",
+"K.	c #080504",
+"L.	c #CC966A",
+"M.	c #D4AC8A",
+"N.	c #A9896E",
+"O.	c #534336",
+"P.	c #F7F7FE",
+"Q.	c #EEEEFF",
+"R.	c #F5F5FF",
+"S.	c #E0E0FF",
+"T.	c #8C8C8E",
+"U.	c #2D1E17",
+"V.	c #13120F",
+"W.	c #76735E",
+"X.	c #E0DBB3",
+"Y.	c #BC8252",
+"Z.	c #E7BB96",
+"`.	c #A4846B",
+" +	c #3D3228",
+".+	c #050403",
+"++	c #BDBDBD",
+"@+	c #D8D8FF",
+"#+	c #EBEBFF",
+"$+	c #D9D9FA",
+"%+	c #292930",
+"&+	c #151511",
+"*+	c #969378",
+"=+	c #EFEABF",
+"-+	c #FFFACC",
+";+	c #E0B088",
+">+	c #D6AD8B",
+",+	c #836A56",
+"'+	c #201A15",
+")+	c #0A0705",
+"!+	c #35231B",
+"~+	c #9A9A9A",
+"{+	c #E3E3FF",
+"]+	c #BCBCE0",
+"^+	c #9696B3",
+"/+	c #8A8AA5",
+"(+	c #74748A",
+"_+	c #C2C2E7",
+":+	c #B0B0D2",
+"<+	c #151412",
+"[+	c #F2EEC2",
+"}+	c #B37A4A",
+"|+	c #805735",
+"1+	c #402F21",
+"2+	c #070504",
+"3+	c #1E1410",
+"4+	c #764F3C",
+"5+	c #90614A",
+"6+	c #1B120E",
+"7+	c #1E1E1E",
+"8+	c #CDCDCD",
+"9+	c #F9F9FF",
+"0+	c #B7B7DA",
+"a+	c #6E6E83",
+"b+	c #737389",
+"c+	c #9E9EBC",
+"d+	c #D3D3FC",
+"e+	c #C3C3E9",
+"f+	c #7E7E96",
+"g+	c #010102",
+"h+	c #212127",
+"i+	c #43434F",
+"j+	c #CBCBF1",
+"k+	c #D5D5FE",
+"l+	c #9F9FBE",
+"m+	c #85815E",
+"n+	c #F7F2C5",
+"o+	c #6E4B2D",
+"p+	c #160F09",
+"q+	c #221711",
+"r+	c #9C6950",
+"s+	c #8A5D47",
+"t+	c #444444",
+"u+	c #E8E8EA",
+"v+	c #CACAF1",
+"w+	c #6E6E84",
+"x+	c #030304",
+"y+	c #060608",
+"z+	c #A2A2C1",
+"A+	c #CCCCF3",
+"B+	c #AEAED0",
+"C+	c #2C2C34",
+"D+	c #6B6638",
+"E+	c #DBD490",
+"F+	c #FFFACB",
+"G+	c #040202",
+"H+	c #3B271E",
+"I+	c #7B523F",
+"J+	c #8D5E48",
+"K+	c #2B2B2B",
+"L+	c #E6E6E8",
+"M+	c #6F6F84",
+"N+	c #585869",
+"O+	c #D4D4FC",
+"P+	c #6D6D82",
+"Q+	c #08080A",
+"R+	c #6F6F85",
+"S+	c #9C9CB9",
+"T+	c #8E8EAA",
+"U+	c #797991",
+"V+	c #646477",
+"W+	c #5E5E70",
+"X+	c #BDBDE2",
+"Y+	c #A3A3C3",
+"Z+	c #656579",
+"`+	c #3C3C47",
+" @	c #040405",
+".@	c #010101",
+"+@	c #54502C",
+"@@	c #C1B865",
+"#@	c #CEC67B",
+"$@	c #FAF5C4",
+"%@	c #97664E",
+"&@	c #96644C",
+"*@	c #120C09",
+"=@	c #1F1F1F",
+"-@	c #85859E",
+";@	c #5B5B6D",
+">@	c #B8B8DB",
+",@	c #CFCFF7",
+"'@	c #515161",
+")@	c #1D1D23",
+"!@	c #B0B0D1",
+"~@	c #9494B0",
+"{@	c #626274",
+"]@	c #31313B",
+"^@	c #1C1B0F",
+"/@	c #4D4928",
+"(@	c #9E9653",
+"_@	c #C2B966",
+":@	c #D4CD85",
+"<@	c #FCF7C7",
+"[@	c #442E23",
+"}@	c #B0765A",
+"|@	c #98664D",
+"1@	c #36241B",
+"2@	c #BABABA",
+"3@	c #9797B4",
+"4@	c #23232A",
+"5@	c #D3D3FB",
+"6@	c #454552",
+"7@	c #444452",
+"8@	c #35353F",
+"9@	c #2F2F37",
+"0@	c #BFBFE3",
+"a@	c #727288",
+"b@	c #303039",
+"c@	c #050506",
+"d@	c #050402",
+"e@	c #252313",
+"f@	c #656035",
+"g@	c #A19955",
+"h@	c #C0B765",
+"i@	c #CDC579",
+"j@	c #DFD896",
+"k@	c #F0EAB4",
+"l@	c #FEF9CA",
+"m@	c #140E0A",
+"n@	c #AF755A",
+"o@	c #92624A",
+"p@	c #7A513D",
+"q@	c #150E0B",
+"r@	c #292931",
+"s@	c #8E8EA9",
+"t@	c #1E1E23",
+"u@	c #1E1E24",
+"v@	c #060607",
+"w@	c #101013",
+"x@	c #5F5F71",
+"y@	c #CECEF5",
+"z@	c #84849E",
+"A@	c #212011",
+"B@	c #5D5931",
+"C@	c #958F4F",
+"D@	c #C5BC6B",
+"E@	c #D4CC84",
+"F@	c #E7E1A4",
+"G@	c #F9F4C2",
+"H@	c #51372A",
+"I@	c #9E6A50",
+"J@	c #100B08",
+"K@	c #BDBDE1",
+"L@	c #111114",
+"M@	c #42424F",
+"N@	c #9B9BB9",
+"O@	c #C5C5EA",
+"P@	c #77778E",
+"Q@	c #78788F",
+"R@	c #5A5A6C",
+"S@	c #030302",
+"T@	c #3A381F",
+"U@	c #968F4F",
+"V@	c #CAC273",
+"W@	c #DCD491",
+"X@	c #EEE8B0",
+"Y@	c #FCF7C8",
+"Z@	c #5A3C2E",
+"`@	c #835742",
+" #	c #251812",
+".#	c #8C8CA7",
+"+#	c #C6C6EC",
+"@#	c #C7C7ED",
+"##	c #69697D",
+"$#	c #0B0B0D",
+"%#	c #050503",
+"&#	c #403D22",
+"*#	c #878147",
+"=#	c #B6AE61",
+"-#	c #D1C97F",
+";#	c #E4DD9E",
+">#	c #F5EFBB",
+",#	c #EBE7BC",
+"'#	c #3E2920",
+")#	c #A36D53",
+"!#	c #39261C",
+"~#	c #B5B4D5",
+"{#	c #6B6B7D",
+"]#	c #0E0E10",
+"^#	c #0A0A05",
+"/#	c #5F5A32",
+"(#	c #B7AF66",
+"_#	c #D8D18C",
+":#	c #EAE3A8",
+"<#	c #FBF6C5",
+"[#	c #AEAA8B",
+"}#	c #181713",
+"|#	c #99664E",
+"1#	c #A16C52",
+"2#	c #503528",
+"3#	c #D1D1F9",
+"4#	c #ACACCD",
+"5#	c #68687C",
+"6#	c #040403",
+"7#	c #33311C",
+"8#	c #7F7B50",
+"9#	c #D7D092",
+"0#	c #F0EAB3",
+"a#	c #ACA98A",
+"b#	c #9D9A7D",
+"c#	c #9D9A7E",
+"d#	c #161612",
+"e#	c #575545",
+"f#	c #7B523E",
+"g#	c #9B684F",
+"h#	c #79513D",
+"i#	c #422C21",
+"j#	c #CDCBC5",
+"k#	c #AEAECF",
+"l#	c #707086",
+"m#	c #0F0F0E",
+"n#	c #272514",
+"o#	c #595532",
+"p#	c #948F63",
+"q#	c #D5CF9A",
+"r#	c #D3CEA8",
+"s#	c #7D7B64",
+"t#	c #060605",
+"u#	c #0E0E0B",
+"v#	c #A6A385",
+"w#	c #020101",
+"x#	c #694634",
+"y#	c #93624B",
+"z#	c #6B4736",
+"A#	c #2E1E17",
+"B#	c #434023",
+"C#	c #2B2917",
+"D#	c #9E9DAC",
+"E#	c #D4D4FD",
+"F#	c #A8A8C8",
+"G#	c #232325",
+"H#	c #5E5A31",
+"I#	c #979159",
+"J#	c #D2CB8C",
+"K#	c #EDE7AE",
+"L#	c #FDF7C8",
+"M#	c #F1ECC1",
+"N#	c #DBD7AF",
+"O#	c #050504",
+"P#	c #7F7D66",
+"Q#	c #462E23",
+"R#	c #7E543F",
+"S#	c #AF765A",
+"T#	c #6E4937",
+"U#	c #060403",
+"V#	c #4E4B36",
+"W#	c #D3CB83",
+"X#	c #9D9765",
+"Y#	c #C6C4BB",
+"Z#	c #D1CFD0",
+"`#	c #7B7960",
+" $	c #A6A277",
+".$	c #D5CE8F",
+"+$	c #E3DC9D",
+"@$	c #F4EFC3",
+"#$	c #3B3A2F",
+"$$	c #FBF6C9",
+"%$	c #605E4D",
+"&$	c #CDC9A4",
+"*$	c #281B14",
+"=$	c #523729",
+"-$	c #080806",
+";$	c #EDE8BE",
+">$	c #F9F4C7",
+",$	c #F8F3C6",
+"'$	c #AAA788",
+")$	c #070706",
+"!$	c #827F68",
+"~$	c #E5E0B7",
+"{$	c #030202",
+"]$	c #734C3A",
+"^$	c #875A44",
+"/$	c #9D6950",
+"($	c #0C0C0A",
+"_$	c #C3C09C",
+":$	c #FDF8CA",
+"<$	c #A29F82",
+"[$	c #1D1D17",
+"}$	c #B0AD8D",
+"|$	c #FEF9CB",
+"1$	c #575546",
+"2$	c #E8E3B9",
+"3$	c #D3CFA9",
+"4$	c #493125",
+"5$	c #7B513D",
+"6$	c #97654D",
+"7$	c #624131",
+"8$	c #CCC8A3",
+"9$	c #EAE5BB",
+"0$	c #B8B493",
+"a$	c #34332A",
+"b$	c #454437",
+"c$	c #EAE6BB",
+"d$	c #5A5948",
+"e$	c #0B0B09",
+"f$	c #838169",
+"g$	c #815641",
+"h$	c #5C5A49",
+"i$	c #FDF8CB",
+"j$	c #424135",
+"k$	c #918E74",
+"l$	c #2F2E25",
+"m$	c #0D0D0A",
+"n$	c #0E0D0B",
+"o$	c #1E1E18",
+"p$	c #C1BD9B",
+"q$	c #1A1A15",
+"r$	c #C0BD9A",
+"s$	c #D6D2AC",
+"t$	c #4B493C",
+"u$	c #EEE9BE",
+"v$	c #EEEABF",
+"w$	c #CBC7A3",
+"x$	c #5D3E2F",
+"y$	c #2E1F17",
+"z$	c #E2DEB4",
+"A$	c #E7E2B9",
+"B$	c #9B987C",
+"C$	c #A4A183",
+"D$	c #020201",
+"E$	c #9C997D",
+"F$	c #11100D",
+"G$	c #1B1A15",
+"H$	c #36352B",
+"I$	c #333228",
+"J$	c #86836B",
+"K$	c #E6E1B8",
+"L$	c #C3BF9C",
+"M$	c #5F5D4C",
+"N$	c #201F19",
+"O$	c #34231A",
+"P$	c #5A3C2D",
+"Q$	c #676449",
+"R$	c #FAF5C8",
+"S$	c #37362C",
+"T$	c #22211B",
+"U$	c #5A5848",
+"V$	c #010100",
+"W$	c #817F67",
+"X$	c #1A1915",
+"Y$	c #6F6D59",
+"Z$	c #C9C5A1",
+"`$	c #9A977B",
+" %	c #FCF7C9",
+".%	c #D4D0AA",
+"+%	c #23221C",
+"@%	c #A7A486",
+"#%	c #4C4A3C",
+"$%	c #0F0A08",
+"%%	c #78503C",
+"&%	c #0E0907",
+"*%	c #14130A",
+"=%	c #E6DFA5",
+"-%	c #F5F0C4",
+";%	c #2A2922",
+">%	c #323128",
+",%	c #6A6855",
+"'%	c #A09D80",
+")%	c #444337",
+"!%	c #1C1C16",
+"~%	c #6F6C58",
+"{%	c #656351",
+"]%	c #ECE7BD",
+"^%	c #D6D2AB",
+"/%	c #4A483B",
+"(%	c #282720",
+"_%	c #8A886F",
+":%	c #8C8970",
+"<%	c #302F27",
+"[%	c #D7D2AC",
+"}%	c #644232",
+"|%	c #35231A",
+"1%	c #99935A",
+"2%	c #B7B492",
+"3%	c #1F1E19",
+"4%	c #555444",
+"5%	c #BBB896",
+"6%	c #E8E4BA",
+"7%	c #807D66",
+"8%	c #D8D4AD",
+"9%	c #1D1C17",
+"0%	c #5F5E4C",
+"a%	c #BCB896",
+"b%	c #FCF7CA",
+"c%	c #77755F",
+"d%	c #412B20",
+"e%	c #39361E",
+"f%	c #E9E2A6",
+"g%	c #545343",
+"h%	c #797761",
+"i%	c #CFCBA5",
+"j%	c #3C3A30",
+"k%	c #A9A587",
+"l%	c #CECAA5",
+"m%	c #140D0A",
+"n%	c #261913",
+"o%	c #B3AC69",
+"p%	c #E7E2B8",
+"q%	c #D7D3AC",
+"r%	c #8F8C72",
+"s%	c #191914",
+"t%	c #4D4C3E",
+"u%	c #0A0A08",
+"v%	c #424035",
+"w%	c #6C6A56",
+"x%	c #BDBA98",
+"y%	c #2A2921",
+"z%	c #604030",
+"A%	c #583A2C",
+"B%	c #4E4B29",
+"C%	c #E9E2A7",
+"D%	c #E9E5BB",
+"E%	c #CBC7A2",
+"F%	c #403E33",
+"G%	c #24231D",
+"H%	c #88856D",
+"I%	c #D9D5AE",
+"J%	c #C0BC99",
+"K%	c #DFDAB2",
+"L%	c #BFBB99",
+"M%	c #0E0A06",
+"N%	c #130D0A",
+"O%	c #030301",
+"P%	c #B0A967",
+"Q%	c #8D8B71",
+"R%	c #C4C19D",
+"S%	c #7A7862",
+"T%	c #2B2A22",
+"U%	c #84826A",
+"V%	c #4B4A3C",
+"W%	c #DFDBB2",
+"X%	c #BAB795",
+"Y%	c #23231C",
+"Z%	c #302F26",
+"`%	c #5A3D25",
+" &	c #694635",
+".&	c #4E3427",
+"+&	c #56522D",
+"@&	c #E9E3A8",
+"#&	c #908E74",
+"$&	c #10100D",
+"%&	c #464438",
+"&&	c #474639",
+"*&	c #292821",
+"=&	c #686654",
+"-&	c #424034",
+";&	c #413F34",
+">&	c #4E4D3E",
+",&	c #171612",
+"'&	c #666451",
+")&	c #DCD7B0",
+"!&	c #AA7346",
+"~&	c #0B0805",
+"{&	c #2F1F17",
+"]&	c #79503C",
+"^&	c #080704",
+"/&	c #B9B26C",
+"(&	c #696754",
+"_&	c #1C1B16",
+":&	c #21211B",
+"<&	c #11110E",
+"[&	c #FCF8CA",
+"}&	c #73715C",
+"|&	c #B1AD8D",
+"1&	c #1C1C17",
+"2&	c #DDD9B1",
+"3&	c #D9D4AD",
+"4&	c #F9F4C8",
+"5&	c #E4DFB6",
+"6&	c #C4C09D",
+"7&	c #F6F1C5",
+"8&	c #634329",
+"9&	c #6D4837",
+"0&	c #474425",
+"a&	c #2D2C24",
+"b&	c #848169",
+"c&	c #3D3C31",
+"d&	c #585646",
+"e&	c #AE7648",
+"f&	c #0A0704",
+"g&	c #AFA867",
+"h&	c #A6A285",
+"i&	c #DAD6AF",
+"j&	c #C0BC9A",
+"k&	c #7F7C65",
+"l&	c #B8B593",
+"m&	c #E9E4BA",
+"n&	c #5E442F",
+"o&	c #704A38",
+"p&	c #432D22",
+"q&	c #484526",
+"r&	c #CCC8A4",
+"s&	c #21201A",
+"t&	c #4F4E40",
+"u&	c #BAB694",
+"v&	c #FEF9CC",
+"w&	c #181813",
+"x&	c #D3A783",
+"y&	c #39261D",
+"z&	c #754D3A",
+"A&	c #BBB36E",
+"B&	c #7E7B64",
+"C&	c #E0DCB3",
+"D&	c #DAD6AE",
+"E&	c #13130F",
+"F&	c #7D7A64",
+"G&	c #EFEBC0",
+"H&	c #928F75",
+"I&	c #585747",
+"J&	c #403F33",
+"K&	c #C08758",
+"L&	c #5C4A3C",
+"M&	c #714B38",
+"N&	c #302018",
+"O&	c #625E34",
+"P&	c #EAE4A9",
+"Q&	c #A39F82",
+"R&	c #9F9C7F",
+"S&	c #171712",
+"T&	c #575646",
+"U&	c #DFDBB3",
+"V&	c #12110E",
+"W&	c #D9D5AD",
+"X&	c #CD976B",
+"Y&	c #BD997B",
+"Z&	c #3D291F",
+"`&	c #6A4635",
+" *	c #100F08",
+".*	c #C3BB73",
+"+*	c #030303",
+"@*	c #C7C4A0",
+"#*	c #D19D72",
+"$*	c #0B0806",
+"%*	c #754E3B",
+"&*	c #7A7440",
+"**	c #716F5A",
+"=*	c #7B7963",
+"-*	c #3D3B30",
+";*	c #646250",
+">*	c #8D8A71",
+",*	c #BE8556",
+"'*	c #EABD98",
+")*	c #AA896F",
+"!*	c #442D22",
+"~*	c #56392B",
+"{*	c #282715",
+"]*	c #CBC377",
+"^*	c #FDF8C9",
+"/*	c #E2DEB5",
+"(*	c #403F34",
+"_*	c #141410",
+":*	c #38372D",
+"<*	c #DFAE87",
+"[*	c #0D0906",
+"}*	c #9C9552",
+"|*	c #DFD897",
+"1*	c #EDE9BE",
+"2*	c #0F0F0C",
+"3*	c #DDD8B1",
+"4*	c #DCD8B0",
+"5*	c #7A7761",
+"6*	c #1E1D18",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . + @ # # $ % & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . * = - ; ; > , ' ) ! . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . ~ { ] ^ / ( _ : ] < [ } . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . | 1 2 ^ 3 . . . . 4 5 2 6 7 . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . 8 9 0 a . b c d e . f g h i . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . j k l m n o p q r . s l t h } . . . . . . . . . . . . . . . . . h . . . . . . ",
+". . . . . . . u u u u u u u u u u u u v . w x ; y z A B C D . E F G h H I J K B L M N O P . . Q R S T U V h . . . . . . ",
+". . . . . . . u u u u u u W X u u u u Y . Z `  ...+.B B B @.. #.; g h h $.%.&.*.=.. . -.;.>.,.V V V V V V h . . . . . . ",
+". . . . . . . u u u u u W A B '.).!.~.{.].6 ^. .w /.(._.:.<.[.x l G h h h }.|.. 1.2.3.V V V V V V V V V V h . . . . . . ",
+". . . . . . . u u u u 4.5.B B B B B B 6.7.h g l 8.9.0.G a.0  .l 2 h h h h h b.c.d.e.f.g.h.V V V V V V V V h . . . . . . ",
+". . . . . . . u u u u i.B B B B B B B j.7.9 l l k.k.` a.g ] ] l.h h h h h h h h h m.b.n.o.g.V V V V V V V h . . . . . . ",
+". . . . . . . u u u p.B B B B B B B B j.q.r.l l s.h h h h 9 9 h h h h h h h h 9 t.G x u.v.w.x.V V V V y.z.h . . . . . . ",
+". . . . . . . u u A.B B B B B B B B B B.. C.l l ; l.h h h h h h h h h h h h h D.l l l  .E.F.|.G.H.I.J.K.q.h . . . . . . ",
+". . . . . . . u u L.B B B B B B M.N.O.. d.P.l l l ; Q.h h h h h R.> 0 0 0 a.S.l l l l l l , T.-.U.. V.W.X.h . . . . . . ",
+". . . . . . . u u Y.B B B Z.`. +.+. . q.++9.l l l l @+h h h h #+; l l l l l l l l l l l l l $+%+&+*+=+-+-+h . . . . . . ",
+". . . . . . . u u u ;+>+,+'+. )+!+.+q.~+k.{+l l l l @+h h s.S.l l l l l l l l ]+^+/+(+(+_+l l :+<+[+-+-+-+h . . . . . . ",
+". . . . . . . u }+|+1+2+P 3+4+5+6+7+8+t 0 l l l l l @+9+- l l 0+a+b+c+d+e+f+s g+. q.h+i+j+l k+l+m+n+-+-+-+h . . . . . . ",
+". . . . . . . o+p+. q+g.r+V s+)+t+u+x l l l a v+l l l ; l l w+x+. . . . . . y+m z+A+l l l B+C+. D+E+F+-+-+h . . . . . . ",
+". . . . . . . G+H+I+V V V J+)+K+L+> l l l M+N+O+l l l l l P+. Q+R+S+T+U+V+W+X+l l k+Y+Z+`+ @. at +@@@#@$@-+-+h . . . . . . ",
+". . . . . . 1.%@V V V V &@*@=@H Q.l l l -@;@l l >@X+l ,@'@. )@!@l l l l l l A+~@{@]@. . ^@/@(@_@:@<@-+-+-+h . . . . . . ",
+". . . . . [@}@V V V V |@1 at . 2 at k. .l l 3 at 4@5@!@6 at q.7@_+8 at . 9 at e+l l l l 0 at a@b at c@. d at e@f at g@h at i@j at k@l at -+-+-+-+h . . . . . . ",
+". . . . m at n@V V V V o at p@q@| h #+l l O+r at s@N+c at t@u at v@w at y+x@, at l l y at z@8 at . . at A@B at C@h at D@E at F@G at -+-+-+-+-+-+-+-+h . . . . . . ",
+". . . . H at V V V V I at p@p at J@K+h 0 l l K at v@L at M@N at d+O@P at Q@X+l l ]+R at L@. S at T@U at _@V at W@X at Y@-+-+-+-+-+-+-+-+-+-+-+h . . . . . . ",
+". . . . Z at V V V H.`@p at p@ #K+8.; l l e+.#+#l l l l l l l @###$#%#&#*#=#-#;#>#-+-+-+-+-+-+-+-+-+-+-+-+-+-+,#h . . . . . . ",
+". . . . '#V V V )#p at p@p@!#! 8.l l l l l l l l l l l ~#{#]#^#/#(#_#:#<#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+[#}#h . . . . . . ",
+". . . . q+|#V V 1#p at p@p at 2#q.P.l l l l l l l 3#4#5#h+6#7#8#9#0#F+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+a#b#c#d#e#h . . . . . . ",
+". . . . *@f#U V g#p at p@h#i#. j#l l l O+k#l#`+m#n#o#p#q#G at -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+r#s#t#u#u#v#-+h . . . . . . ",
+". . . . w#x#y#V |#p at z#A#B#C#D#E#F#5#G#C#H#I#J#K#L#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+M#-+-+-+-+N#O#P#-+-+-+-+h . . . . . . ",
+". . . . . Q#R#S#|#T#U#V#W#X#Y#Z#`# $.$+$>#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+@$#$$$-+-+-+-+%$&$-+-+-+-+h . . . . . . ",
+". . . . . *$p at r+|#=$-$;$-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+>$,$-+-+'$)$!$-+-+-+-+~$$$-+-+-+-+h . . . . . . ",
+". . . . . {$]$^$/$=$($-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_$:$-+-+<$[$}$|$1$2$%$3$-+-+-+-+-+-+-+-+-+h . . . . . . ",
+". . . . . . 4$5$6$7$. at 8$-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+9$|$-+0$-+a$b$c$-+d$&+e$#$f$-+-+N#-+-+-+-+-+-+-+-+-+h . . . . . . ",
+". . . . . . 6+p at g$p at K.h$-+-+-+-+-+-+-+-+-+-+-+-+-+-+i$j$k$-+l$}$m$n$o$p$q$r$s$t$u$-+-+-+-+-+-+-+-+-+v$w$|$h . . . . . . ",
+". . . . . . . x$p at p@y$O#z$-+-+-+-+-+-+-+-+A$-+-+j$B$C$. D$E$F$G$H$M#c#I$J$-+-+-+-+-+-+-+X.K$-+-+-+L$M$. N$h . . . . . . ",
+". . . . . . . O$p at p@P$. Q$|$-+-+|$R$-+-+-+S$T$U$. . . at V$W$X$Y$Z$`$-+-+|$|$-+-+-+-+ %|$.%-$+%@%-+-+f$. #%'$h . . . . . . ",
+". . . . . . . $%h#p@%%&%*%=%-+-+-%;%>%,%'%)%}#e$!%~%m${%-+]%^%-+-+-+-+-+-+-+-+-+-+/%(%)%#$_%:%-+-+=+<%[%-+h . . . . . . ",
+". . . . . . . . }%p at p@|%. 1%|$-+-+2%. 3%4%. at 5%K$L$-+6%u$-+-+-+-+-+-+-+-+-+>$7%8%-%($9%0%a%-+-+-+-+-+n+b%c%h . . . . . . ",
+". . . . . . . . d%p at p@7$. at e%f%-+-+-+g%h%-+i%-+-+-+-+-+-+-+-+-+-+-+-+B$b#-+k$. 6#j%. k%-+-+-+-+-+-+-+-+l%. h . . . . . . ",
+". . . . . . . . m%h#p at p@n%. at o%l at -+-+p%q%-+-+-+-+-+-+-+-+-+-+-+i%r%-%s%. at t%u%v%v#w%%$|$-+-+-+-+-+-+-+-+x%y%h . . . . . . ",
+". . . . . . . . . z%p at p@A%. B%C%-+-+-+-+-+-+-+-+-+-+-+-+D%E%:$)%. F%G%C$<%H%R$-+-+-+-+-+-+$$-+I%J%K%-+-+L%h . . . . . . ",
+". . . . . . . M%. *$p at p@%%N%O%P%l at -+-+-+-+-+-+-+-+Q%R%:$S%. T%. U%V%,%-+-+-+-+-+-+-+-+-+W%T%X%Y%O#Z%@$-+-+h . . . . . . ",
+". . . . . . . `%. w# &p at p@.&. +&@&-+-+-+-+C$^%-+#&. . a$$&%&&&*&=+-+>$-+-+-+-+-+-+-+-+=&u#-&;&>&,&'&)&-+-+h . . . . . . ",
+". . . . . . . !&~&. {&p at p@]&*@^&/&|$-+-+-+(&V$_&O#. at t$:&<&[&-+-+-+-+-+-+-+-+-+-+>$}&|&1&2&3&4&5&6&7&-+-+-+h . . . . . . ",
+". . . . . . . u 8&. w#9&p at p@.&. 0&@&-+-+-+=+u#a&D$:&-+-+9$-+-+-+-+-+-+|$b%-+k$b&J$c&d&;&-+-+-+-+-+-+-+-+-+h . . . . . . ",
+". . . . . . . u e&f&. !#p at p@%%&%S at g&|$-+-+-+k$8$&$h&-+-+-+-+-+-+-+i&a%j&:&k&e$+%. l&-+m&-+-+-+-+-+-+-+-+{%h . . . . . . ",
+". . . . . . . u u n&. U#o&p at p@p&. q&:#-+-+-+-%@$-+-+-+-+-+-+-+'$r&Z%. -$s&t&#$b%u&v&-+-+-+-+-+-+-+-+-+3$w&h . . . . . . ",
+". . . . . . . u u x&.+. y&p at p@z&K.S at A&l at -+-+-+-+-+-+-+B&`$C&D&E&(%<&N#J$F&-+G&-+-+-+-+-+-+-+-+-+-+H&I&J&c%h . . . . . . ",
+". . . . . . . u K&B L&. U#M&p at p@N&. O&P&-+-+-+-+C$Q&R&V$. D$S&T&i$&$-+-+-+-+-+-+-+-+-+-+-+-+-+5%U&V&&+. W&h . . . . . . ",
+". . . . . . . u X&B Y&. at . Z&p at p@`&.@ *.*|$-+-+-+6&+*. . a$S%H%@*-+-+-+-+-+-+-+-+-+-+-+|$b%-+:%. . -&7&}$-+h . . . . . . ",
+". . . . . . . u #*B B j.. $*%*p at p@ #. &*P&-+-+-+-+**. 1&m&-+-+-+-+-+-+-+-+-+-+-+-+I%-+=*-*:%+*;*k$L%-+b%>*h . . . . . . ",
+". . . . . . . u ,*'*B )*. . !*p at p@~*. {*]*^*-+-+-+@$T%L$-+-+-+-+-+-+-+-+-+-+/*v#b#6#(*_*. at . :*R$-+-+-+'$. h . . . . . . ",
+". . . . . . . u u <*B Z.'+. [*%%p@]&*@. }*|*-+-+-+-+1*-+-+-+-+-+-+-+-+-+>$^%c%. S at . 2*3*4*5*3$-+-+@$>%6*h$h . . . . . . ",
+". . . . . . h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_60x60_gray.xpm b/icon/ico_60x60_gray.xpm
new file mode 100644
index 0000000..347d732
--- /dev/null
+++ b/icon/ico_60x60_gray.xpm
@@ -0,0 +1,875 @@
+/* XPM */
+static char * ico_60x60_gray_xpm[] = {
+"60 60 812 2",
+"  	c None",
+". 	c #7F7F7F",
+"+ 	c #7E7E7E",
+"@ 	c #575757",
+"# 	c #363636",
+"$ 	c #282828",
+"% 	c #333333",
+"& 	c #616161",
+"* 	c #7C7C7C",
+"= 	c #2A2A2A",
+"- 	c #242424",
+"; 	c #808080",
+"> 	c #B4B4B6",
+", 	c #B6B6B6",
+"' 	c #878787",
+") 	c #101010",
+"! 	c #4A4A4A",
+"~ 	c #7D7D7D",
+"{ 	c #6D6D6D",
+"] 	c #1E1E1E",
+"^ 	c #5D5D5D",
+"/ 	c #ECECF4",
+"( 	c #E4E4FF",
+"_ 	c #D7D7FF",
+": 	c #DDDDFF",
+"< 	c #E6E6FF",
+"[ 	c #F8F8FE",
+"} 	c #AEAEAE",
+"| 	c #252525",
+"1 	c #707070",
+"2 	c #747474",
+"3 	c #0E0E0E",
+"4 	c #535353",
+"5 	c #FBFBFE",
+"6 	c #D9D9FF",
+"7 	c #D0D0F8",
+"8 	c #8787A1",
+"9 	c #535363",
+"0 	c #656578",
+"a 	c #9B9BB8",
+"b 	c #F0F0FF",
+"c 	c #F5F5F5",
+"d 	c #626262",
+"e 	c #202020",
+"f 	c #343434",
+"g 	c #111111",
+"h 	c #F2F2F2",
+"i 	c #ECECFF",
+"j 	c #2D2D35",
+"k 	c #000000",
+"l 	c #525262",
+"m 	c #D6D6FE",
+"n 	c #FDFDFD",
+"o 	c #464646",
+"p 	c #4D4D4D",
+"q 	c #666666",
+"r 	c #FEFEFF",
+"s 	c #DBDBFF",
+"t 	c #84849D",
+"u 	c #362416",
+"v 	c #795232",
+"w 	c #6A482C",
+"x 	c #090604",
+"y 	c #A1A1B8",
+"z 	c #DCDCFF",
+"A 	c #FFFFFF",
+"B 	c #CACACA",
+"C 	c #070707",
+"D 	c #6E6E6E",
+"E 	c #010101",
+"F 	c #A7A7A7",
+"G 	c #EFEFFF",
+"H 	c #D6D6FF",
+"I 	c #555566",
+"J 	c #4C341F",
+"K 	c #BA7F4E",
+"L 	c #C99366",
+"M 	c #BA804F",
+"N 	c #68462B",
+"O 	c #393944",
+"P 	c #F4F4FF",
+"Q 	c #B87D4C",
+"R 	c #7C5433",
+"S 	c #DCDCDC",
+"T 	c #E7E7FF",
+"U 	c #5A5A62",
+"V 	c #986A43",
+"W 	c #DDAC84",
+"X 	c #EBBE99",
+"Y 	c #E6B892",
+"Z 	c #B48761",
+"` 	c #0F0F12",
+" .	c #D2D2FA",
+"..	c #E5E5FF",
+"+.	c #E7E7E7",
+"@.	c #191918",
+"#.	c #906B4C",
+"$.	c #E7B892",
+"%.	c #DBA981",
+"&.	c #9D6D44",
+"*.	c #5D3F26",
+"=.	c #24190F",
+"-.	c #010000",
+";.	c #18100D",
+">.	c #38261D",
+",.	c #634333",
+"'.	c #855A45",
+").	c #AA7257",
+"!.	c #B1775B",
+"~.	c #B97F4E",
+"{.	c #BF8656",
+"].	c #624329",
+"^.	c #F9F9F9",
+"/.	c #E2E2FF",
+"(.	c #DADAFF",
+"_.	c #838383",
+":.	c #AA886C",
+"<.	c #5F4C3E",
+"[.	c #828285",
+"}.	c #BBBBBB",
+"|.	c #0C0B0A",
+"1.	c #665242",
+"2.	c #42362B",
+"3.	c #1B1612",
+"4.	c #0D0907",
+"5.	c #2F2018",
+"6.	c #6A4837",
+"7.	c #9A684F",
+"8.	c #E6B791",
+"9.	c #D7A57B",
+"0.	c #CB9568",
+"a.	c #BD8353",
+"b.	c #4D3420",
+"c.	c #181818",
+"d.	c #DEDEFF",
+"e.	c #AD9E91",
+"f.	c #F2D6BE",
+"g.	c #F3D7C0",
+"h.	c #EBD8C8",
+"i.	c #666565",
+"j.	c #ADADAE",
+"k.	c #B9B9B9",
+"l.	c #131313",
+"m.	c #312119",
+"n.	c #6D4A38",
+"o.	c #8B5D47",
+"p.	c #B87D4D",
+"q.	c #D6A379",
+"r.	c #3D3126",
+"s.	c #222222",
+"t.	c #FDFDFF",
+"u.	c #F8F8FF",
+"v.	c #EAEAFF",
+"w.	c #E1E1FF",
+"x.	c #EAEAEA",
+"y.	c #696969",
+"z.	c #303030",
+"A.	c #251D19",
+"B.	c #33231A",
+"C.	c #624232",
+"D.	c #A46E54",
+"E.	c #D5A379",
+"F.	c #3F3329",
+"G.	c #FCFCFF",
+"H.	c #F3F3FF",
+"I.	c #F8F8F8",
+"J.	c #B5B5B5",
+"K.	c #2C2826",
+"L.	c #D29E73",
+"M.	c #020202",
+"N.	c #F6F6F9",
+"O.	c #F6F6FF",
+"P.	c #E9E9FF",
+"Q.	c #FBFBFF",
+"R.	c #EDEDED",
+"S.	c #3B3B3B",
+"T.	c #593C2E",
+"U.	c #A56F55",
+"V.	c #7B533F",
+"W.	c #CB9669",
+"X.	c #191410",
+"Y.	c #F1F1F9",
+"Z.	c #E8E8FF",
+"`.	c #F2F2FF",
+" +	c #E5E5E5",
+".+	c #6D4938",
+"++	c #B0765B",
+"@+	c #895C47",
+"#+	c #3C281F",
+"$+	c #080504",
+"%+	c #CC966A",
+"&+	c #D4AC8A",
+"*+	c #A9896E",
+"=+	c #534336",
+"-+	c #F7F7FE",
+";+	c #EEEEFF",
+">+	c #F5F5FF",
+",+	c #E0E0FF",
+"'+	c #8C8C8E",
+")+	c #2D1E17",
+"!+	c #13120F",
+"~+	c #76735E",
+"{+	c #E0DBB3",
+"]+	c #BC8252",
+"^+	c #E7BB96",
+"/+	c #A4846B",
+"(+	c #3D3228",
+"_+	c #050403",
+":+	c #BDBDBD",
+"<+	c #D8D8FF",
+"[+	c #EBEBFF",
+"}+	c #D9D9FA",
+"|+	c #292930",
+"1+	c #151511",
+"2+	c #969378",
+"3+	c #EFEABF",
+"4+	c #FFFACC",
+"5+	c #E0B088",
+"6+	c #D6AD8B",
+"7+	c #836A56",
+"8+	c #201A15",
+"9+	c #0A0705",
+"0+	c #35231B",
+"a+	c #9A9A9A",
+"b+	c #E3E3FF",
+"c+	c #BCBCE0",
+"d+	c #9696B3",
+"e+	c #8A8AA5",
+"f+	c #74748A",
+"g+	c #C2C2E7",
+"h+	c #B0B0D2",
+"i+	c #151412",
+"j+	c #F2EEC2",
+"k+	c #B37A4A",
+"l+	c #805735",
+"m+	c #402F21",
+"n+	c #070504",
+"o+	c #1E1410",
+"p+	c #764F3C",
+"q+	c #90614A",
+"r+	c #1B120E",
+"s+	c #CDCDCD",
+"t+	c #F9F9FF",
+"u+	c #B7B7DA",
+"v+	c #6E6E83",
+"w+	c #737389",
+"x+	c #9E9EBC",
+"y+	c #D3D3FC",
+"z+	c #C3C3E9",
+"A+	c #7E7E96",
+"B+	c #010102",
+"C+	c #212127",
+"D+	c #43434F",
+"E+	c #CBCBF1",
+"F+	c #D5D5FE",
+"G+	c #9F9FBE",
+"H+	c #85815E",
+"I+	c #F7F2C5",
+"J+	c #6E4B2D",
+"K+	c #160F09",
+"L+	c #221711",
+"M+	c #9C6950",
+"N+	c #8A5D47",
+"O+	c #444444",
+"P+	c #E8E8EA",
+"Q+	c #CACAF1",
+"R+	c #6E6E84",
+"S+	c #030304",
+"T+	c #060608",
+"U+	c #A2A2C1",
+"V+	c #CCCCF3",
+"W+	c #AEAED0",
+"X+	c #2C2C34",
+"Y+	c #6B6638",
+"Z+	c #DBD490",
+"`+	c #FFFACB",
+" @	c #727272",
+".@	c #3F3F3F",
+"+@	c #040202",
+"@@	c #3B271E",
+"#@	c #7B523F",
+"$@	c #8D5E48",
+"%@	c #2B2B2B",
+"&@	c #E6E6E8",
+"*@	c #6F6F84",
+"=@	c #585869",
+"-@	c #D4D4FC",
+";@	c #6D6D82",
+">@	c #08080A",
+",@	c #6F6F85",
+"'@	c #9C9CB9",
+")@	c #8E8EAA",
+"!@	c #797991",
+"~@	c #646477",
+"{@	c #5E5E70",
+"]@	c #BDBDE2",
+"^@	c #A3A3C3",
+"/@	c #656579",
+"(@	c #3C3C47",
+"_@	c #040405",
+":@	c #54502C",
+"<@	c #C1B865",
+"[@	c #CEC67B",
+"}@	c #FAF5C4",
+"|@	c #545454",
+"1@	c #050505",
+"2@	c #97664E",
+"3@	c #96644C",
+"4@	c #120C09",
+"5@	c #1F1F1F",
+"6@	c #85859E",
+"7@	c #5B5B6D",
+"8@	c #B8B8DB",
+"9@	c #CFCFF7",
+"0@	c #515161",
+"a@	c #1D1D23",
+"b@	c #B0B0D1",
+"c@	c #9494B0",
+"d@	c #626274",
+"e@	c #31313B",
+"f@	c #1C1B0F",
+"g@	c #4D4928",
+"h@	c #9E9653",
+"i@	c #C2B966",
+"j@	c #D4CD85",
+"k@	c #FCF7C7",
+"l@	c #606060",
+"m@	c #442E23",
+"n@	c #B0765A",
+"o@	c #98664D",
+"p@	c #36241B",
+"q@	c #BABABA",
+"r@	c #9797B4",
+"s@	c #23232A",
+"t@	c #D3D3FB",
+"u@	c #454552",
+"v@	c #444452",
+"w@	c #35353F",
+"x@	c #2F2F37",
+"y@	c #BFBFE3",
+"z@	c #727288",
+"A@	c #303039",
+"B@	c #050506",
+"C@	c #050402",
+"D@	c #252313",
+"E@	c #656035",
+"F@	c #A19955",
+"G@	c #C0B765",
+"H@	c #CDC579",
+"I@	c #DFD896",
+"J@	c #F0EAB4",
+"K@	c #FEF9CA",
+"L@	c #3C3C3C",
+"M@	c #140E0A",
+"N@	c #AF755A",
+"O@	c #92624A",
+"P@	c #7A513D",
+"Q@	c #150E0B",
+"R@	c #292931",
+"S@	c #8E8EA9",
+"T@	c #1E1E23",
+"U@	c #1E1E24",
+"V@	c #060607",
+"W@	c #101013",
+"X@	c #5F5F71",
+"Y@	c #CECEF5",
+"Z@	c #84849E",
+"`@	c #212011",
+" #	c #5D5931",
+".#	c #958F4F",
+"+#	c #C5BC6B",
+"@#	c #D4CC84",
+"##	c #E7E1A4",
+"$#	c #F9F4C2",
+"%#	c #2E2E2E",
+"&#	c #51372A",
+"*#	c #9E6A50",
+"=#	c #100B08",
+"-#	c #BDBDE1",
+";#	c #111114",
+">#	c #42424F",
+",#	c #9B9BB9",
+"'#	c #C5C5EA",
+")#	c #77778E",
+"!#	c #78788F",
+"~#	c #5A5A6C",
+"{#	c #030302",
+"]#	c #3A381F",
+"^#	c #968F4F",
+"/#	c #CAC273",
+"(#	c #DCD491",
+"_#	c #EEE8B0",
+":#	c #FCF7C8",
+"<#	c #313131",
+"[#	c #5A3C2E",
+"}#	c #835742",
+"|#	c #251812",
+"1#	c #8C8CA7",
+"2#	c #C6C6EC",
+"3#	c #C7C7ED",
+"4#	c #69697D",
+"5#	c #0B0B0D",
+"6#	c #050503",
+"7#	c #403D22",
+"8#	c #878147",
+"9#	c #B6AE61",
+"0#	c #D1C97F",
+"a#	c #E4DD9E",
+"b#	c #F5EFBB",
+"c#	c #EBE7BC",
+"d#	c #494949",
+"e#	c #3E2920",
+"f#	c #A36D53",
+"g#	c #39261C",
+"h#	c #B5B4D5",
+"i#	c #6B6B7D",
+"j#	c #0E0E10",
+"k#	c #0A0A05",
+"l#	c #5F5A32",
+"m#	c #B7AF66",
+"n#	c #D8D18C",
+"o#	c #EAE3A8",
+"p#	c #FBF6C5",
+"q#	c #AEAA8B",
+"r#	c #181713",
+"s#	c #99664E",
+"t#	c #A16C52",
+"u#	c #503528",
+"v#	c #D1D1F9",
+"w#	c #ACACCD",
+"x#	c #68687C",
+"y#	c #040403",
+"z#	c #33311C",
+"A#	c #7F7B50",
+"B#	c #D7D092",
+"C#	c #F0EAB3",
+"D#	c #ACA98A",
+"E#	c #9D9A7D",
+"F#	c #9D9A7E",
+"G#	c #161612",
+"H#	c #575545",
+"I#	c #7B7B7B",
+"J#	c #030303",
+"K#	c #7B523E",
+"L#	c #9B684F",
+"M#	c #79513D",
+"N#	c #422C21",
+"O#	c #CDCBC5",
+"P#	c #AEAECF",
+"Q#	c #707086",
+"R#	c #0F0F0E",
+"S#	c #272514",
+"T#	c #595532",
+"U#	c #948F63",
+"V#	c #D5CF9A",
+"W#	c #D3CEA8",
+"X#	c #7D7B64",
+"Y#	c #060605",
+"Z#	c #0E0E0B",
+"`#	c #A6A385",
+" $	c #171717",
+".$	c #020101",
+"+$	c #694634",
+"@$	c #93624B",
+"#$	c #6B4736",
+"$$	c #2E1E17",
+"%$	c #434023",
+"&$	c #2B2917",
+"*$	c #9E9DAC",
+"=$	c #D4D4FD",
+"-$	c #A8A8C8",
+";$	c #232325",
+">$	c #5E5A31",
+",$	c #979159",
+"'$	c #D2CB8C",
+")$	c #EDE7AE",
+"!$	c #FDF7C8",
+"~$	c #F1ECC1",
+"{$	c #DBD7AF",
+"]$	c #050504",
+"^$	c #7F7D66",
+"/$	c #2F2F2F",
+"($	c #462E23",
+"_$	c #7E543F",
+":$	c #AF765A",
+"<$	c #6E4937",
+"[$	c #060403",
+"}$	c #4E4B36",
+"|$	c #D3CB83",
+"1$	c #9D9765",
+"2$	c #C6C4BB",
+"3$	c #D1CFD0",
+"4$	c #7B7960",
+"5$	c #A6A277",
+"6$	c #D5CE8F",
+"7$	c #E3DC9D",
+"8$	c #F4EFC3",
+"9$	c #3B3A2F",
+"0$	c #FBF6C9",
+"a$	c #605E4D",
+"b$	c #CDC9A4",
+"c$	c #484848",
+"d$	c #281B14",
+"e$	c #523729",
+"f$	c #080806",
+"g$	c #EDE8BE",
+"h$	c #F9F4C7",
+"i$	c #F8F3C6",
+"j$	c #AAA788",
+"k$	c #070706",
+"l$	c #827F68",
+"m$	c #E5E0B7",
+"n$	c #676767",
+"o$	c #030202",
+"p$	c #734C3A",
+"q$	c #875A44",
+"r$	c #9D6950",
+"s$	c #0C0C0A",
+"t$	c #C3C09C",
+"u$	c #FDF8CA",
+"v$	c #A29F82",
+"w$	c #1D1D17",
+"x$	c #B0AD8D",
+"y$	c #FEF9CB",
+"z$	c #575546",
+"A$	c #E8E3B9",
+"B$	c #D3CFA9",
+"C$	c #0F0F0F",
+"D$	c #493125",
+"E$	c #7B513D",
+"F$	c #97654D",
+"G$	c #624131",
+"H$	c #CCC8A3",
+"I$	c #EAE5BB",
+"J$	c #B8B493",
+"K$	c #34332A",
+"L$	c #454437",
+"M$	c #EAE6BB",
+"N$	c #5A5948",
+"O$	c #0B0B09",
+"P$	c #838169",
+"Q$	c #454545",
+"R$	c #815641",
+"S$	c #5C5A49",
+"T$	c #FDF8CB",
+"U$	c #424135",
+"V$	c #918E74",
+"W$	c #2F2E25",
+"X$	c #0D0D0A",
+"Y$	c #0E0D0B",
+"Z$	c #1E1E18",
+"`$	c #C1BD9B",
+" %	c #1A1A15",
+".%	c #C0BD9A",
+"+%	c #D6D2AC",
+"@%	c #4B493C",
+"#%	c #EEE9BE",
+"$%	c #EEEABF",
+"%%	c #CBC7A3",
+"&%	c #6A6A6A",
+"*%	c #5D3E2F",
+"=%	c #2E1F17",
+"-%	c #E2DEB4",
+";%	c #E7E2B9",
+">%	c #9B987C",
+",%	c #A4A183",
+"'%	c #020201",
+")%	c #9C997D",
+"!%	c #11100D",
+"~%	c #1B1A15",
+"{%	c #36352B",
+"]%	c #333228",
+"^%	c #86836B",
+"/%	c #E6E1B8",
+"(%	c #C3BF9C",
+"_%	c #5F5D4C",
+":%	c #201F19",
+"<%	c #121212",
+"[%	c #34231A",
+"}%	c #5A3C2D",
+"|%	c #676449",
+"1%	c #FAF5C8",
+"2%	c #37362C",
+"3%	c #22211B",
+"4%	c #5A5848",
+"5%	c #010100",
+"6%	c #817F67",
+"7%	c #1A1915",
+"8%	c #6F6D59",
+"9%	c #C9C5A1",
+"0%	c #9A977B",
+"a%	c #FCF7C9",
+"b%	c #D4D0AA",
+"c%	c #23221C",
+"d%	c #A7A486",
+"e%	c #4C4A3C",
+"f%	c #393939",
+"g%	c #0F0A08",
+"h%	c #78503C",
+"i%	c #0E0907",
+"j%	c #14130A",
+"k%	c #E6DFA5",
+"l%	c #F5F0C4",
+"m%	c #2A2922",
+"n%	c #323128",
+"o%	c #6A6855",
+"p%	c #A09D80",
+"q%	c #444337",
+"r%	c #1C1C16",
+"s%	c #6F6C58",
+"t%	c #656351",
+"u%	c #ECE7BD",
+"v%	c #D6D2AB",
+"w%	c #4A483B",
+"x%	c #282720",
+"y%	c #8A886F",
+"z%	c #8C8970",
+"A%	c #302F27",
+"B%	c #D7D2AC",
+"C%	c #5E5E5E",
+"D%	c #644232",
+"E%	c #35231A",
+"F%	c #99935A",
+"G%	c #B7B492",
+"H%	c #1F1E19",
+"I%	c #555444",
+"J%	c #BBB896",
+"K%	c #E8E4BA",
+"L%	c #807D66",
+"M%	c #D8D4AD",
+"N%	c #1D1C17",
+"O%	c #5F5E4C",
+"P%	c #BCB896",
+"Q%	c #FCF7CA",
+"R%	c #77755F",
+"S%	c #080808",
+"T%	c #412B20",
+"U%	c #39361E",
+"V%	c #E9E2A6",
+"W%	c #545343",
+"X%	c #797761",
+"Y%	c #CFCBA5",
+"Z%	c #3C3A30",
+"`%	c #A9A587",
+" &	c #CECAA5",
+".&	c #140D0A",
+"+&	c #261913",
+"@&	c #B3AC69",
+"#&	c #E7E2B8",
+"$&	c #D7D3AC",
+"%&	c #8F8C72",
+"&&	c #191914",
+"*&	c #4D4C3E",
+"=&	c #0A0A08",
+"-&	c #424035",
+";&	c #6C6A56",
+">&	c #BDBA98",
+",&	c #2A2921",
+"'&	c #604030",
+")&	c #583A2C",
+"!&	c #4E4B29",
+"~&	c #E9E2A7",
+"{&	c #E9E5BB",
+"]&	c #CBC7A2",
+"^&	c #403E33",
+"/&	c #24231D",
+"(&	c #88856D",
+"_&	c #D9D5AE",
+":&	c #C0BC99",
+"<&	c #DFDAB2",
+"[&	c #BFBB99",
+"}&	c #0E0A06",
+"|&	c #130D0A",
+"1&	c #030301",
+"2&	c #B0A967",
+"3&	c #8D8B71",
+"4&	c #C4C19D",
+"5&	c #7A7862",
+"6&	c #2B2A22",
+"7&	c #84826A",
+"8&	c #4B4A3C",
+"9&	c #DFDBB2",
+"0&	c #BAB795",
+"a&	c #23231C",
+"b&	c #302F26",
+"c&	c #5A3D25",
+"d&	c #694635",
+"e&	c #4E3427",
+"f&	c #56522D",
+"g&	c #E9E3A8",
+"h&	c #908E74",
+"i&	c #10100D",
+"j&	c #464438",
+"k&	c #474639",
+"l&	c #292821",
+"m&	c #686654",
+"n&	c #424034",
+"o&	c #413F34",
+"p&	c #4E4D3E",
+"q&	c #171612",
+"r&	c #666451",
+"s&	c #DCD7B0",
+"t&	c #AA7346",
+"u&	c #0B0805",
+"v&	c #2F1F17",
+"w&	c #79503C",
+"x&	c #080704",
+"y&	c #B9B26C",
+"z&	c #696754",
+"A&	c #1C1B16",
+"B&	c #21211B",
+"C&	c #11110E",
+"D&	c #FCF8CA",
+"E&	c #73715C",
+"F&	c #B1AD8D",
+"G&	c #1C1C17",
+"H&	c #DDD9B1",
+"I&	c #D9D4AD",
+"J&	c #F9F4C8",
+"K&	c #E4DFB6",
+"L&	c #C4C09D",
+"M&	c #F6F1C5",
+"N&	c #634329",
+"O&	c #6D4837",
+"P&	c #474425",
+"Q&	c #2D2C24",
+"R&	c #848169",
+"S&	c #3D3C31",
+"T&	c #585646",
+"U&	c #AE7648",
+"V&	c #0A0704",
+"W&	c #AFA867",
+"X&	c #A6A285",
+"Y&	c #DAD6AF",
+"Z&	c #C0BC9A",
+"`&	c #7F7C65",
+" *	c #B8B593",
+".*	c #E9E4BA",
+"+*	c #5E442F",
+"@*	c #704A38",
+"#*	c #432D22",
+"$*	c #484526",
+"%*	c #CCC8A4",
+"&*	c #21201A",
+"**	c #4F4E40",
+"=*	c #BAB694",
+"-*	c #FEF9CC",
+";*	c #181813",
+">*	c #D3A783",
+",*	c #39261D",
+"'*	c #754D3A",
+")*	c #BBB36E",
+"!*	c #7E7B64",
+"~*	c #E0DCB3",
+"{*	c #DAD6AE",
+"]*	c #13130F",
+"^*	c #7D7A64",
+"/*	c #EFEBC0",
+"(*	c #928F75",
+"_*	c #585747",
+":*	c #403F33",
+"<*	c #C08758",
+"[*	c #5C4A3C",
+"}*	c #714B38",
+"|*	c #302018",
+"1*	c #625E34",
+"2*	c #EAE4A9",
+"3*	c #A39F82",
+"4*	c #9F9C7F",
+"5*	c #171712",
+"6*	c #575646",
+"7*	c #DFDBB3",
+"8*	c #12110E",
+"9*	c #D9D5AD",
+"0*	c #CD976B",
+"a*	c #BD997B",
+"b*	c #3D291F",
+"c*	c #6A4635",
+"d*	c #100F08",
+"e*	c #C3BB73",
+"f*	c #C7C4A0",
+"g*	c #D19D72",
+"h*	c #0B0806",
+"i*	c #754E3B",
+"j*	c #7A7440",
+"k*	c #716F5A",
+"l*	c #7B7963",
+"m*	c #3D3B30",
+"n*	c #646250",
+"o*	c #8D8A71",
+"p*	c #BE8556",
+"q*	c #EABD98",
+"r*	c #AA896F",
+"s*	c #442D22",
+"t*	c #56392B",
+"u*	c #282715",
+"v*	c #CBC377",
+"w*	c #FDF8C9",
+"x*	c #E2DEB5",
+"y*	c #403F34",
+"z*	c #141410",
+"A*	c #38372D",
+"B*	c #DFAE87",
+"C*	c #0D0906",
+"D*	c #9C9552",
+"E*	c #DFD897",
+"F*	c #EDE9BE",
+"G*	c #0F0F0C",
+"H*	c #DDD8B1",
+"I*	c #DCD8B0",
+"J*	c #7A7761",
+"K*	c #1E1D18",
+". . . . . . . . . . . . . . . . . . . . . . . + @ # $ $ $ % & + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . * = - ; > > , ' = ) ! ~ . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . { ] ^ / ( _ _ : < [ } | ] 1 . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . 2 3 4 5 6 7 8 9 0 a 6 b c d e ~ . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . f g h i 7 j k k k k l m i n o p . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . g q r s t k u v w x k y z A B C D . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . k k k k k k k k k k k k k k E F G H I J K L M N k O H P A d k k k k k k k k k k k k k k k k k A . . . . . . ",
+". . . . . . k Q Q Q Q Q Q Q Q Q Q Q Q R k S T _ U V W X Y Z k `  ...A +. at .#.$.X %.&.*.=.-.k k ;.>.,.'.).!.A . . . . . . ",
+". . . . . . k Q Q Q Q Q Q ~.{.Q Q Q Q ].k ^./.(._.:.X X X <.k [._ z A A }.|.1.2.3.k k 4.5.6.7.!.!.!.!.!.!.A . . . . . . ",
+". . . . . . k Q Q Q Q Q ~.W X 8.9.0.a.b.c.n d.(.S e.f.g.h.i.j.T H ..A A A k.l.k m.n.o.!.!.!.!.!.!.!.!.!.!.A . . . . . . ",
+". . . . . . k Q Q Q Q p.q.X X X X X X r.s.A z H t.u.v...w.s (.H i A A A A A x.y.z.A.B.C.D.!.!.!.!.!.!.!.!.A . . . . . . ",
+". . . . . . k Q Q Q Q E.X X X X X X X F.s.r H H G.G./.w.z 6 6 H.A A A A A A A A A I.x.J.K.C.!.!.!.!.!.!.!.A . . . . . . ",
+". . . . . . k Q Q Q L.X X X X X X X X F.M.N.H H O.A A A A r r A A A A A A A A r P...T Q.R.S.T.!.!.!.!.U.V.A . . . . . . ",
+". . . . . . k Q Q W.X X X X X X X X X X.k Y.H H _ H.A A A A A A A A A A A A A Z.H H H (.`. +l..+++ at +#+$+M.A . . . . . . ",
+". . . . . . k Q Q %+X X X X X X &+*+=+k z.-+H H H _ ;+A A A A A >+: s s s w.,+H H H H H H < '+4.)+k !+~+{+A . . . . . . ",
+". . . . . . k Q Q ]+X X X ^+/+(+_+k k M.:+u.H H H H <+A A A A [+_ H H H H H H H H H H H H H }+|+1+2+3+4+4+A . . . . . . ",
+". . . . . . k Q Q Q 5+6+7+8+k 9+0+_+M.a+G.b+H H H H <+A A O.,+H H H H H H H H c+d+e+f+f+g+H H h+i+j+4+4+4+A . . . . . . ",
+". . . . . . k Q k+l+m+n+-.o+p+q+r+] s+P s H H H H H <+t+( H H u+v+w+x+y+z+A+O B+k M.C+D+E+H F+G+H+I+4+4+4+A . . . . . . ",
+". . . . . . k J+K+k L+C.M+!.N+9+O+P+T H H H t Q+H H H _ H H R+S+k k k k k k T+I U+V+H H H W+X+k Y+Z+`+4+4+A . . . . . . ",
+". . . .  @. at k +@@@#@!.!.!.$@9+%@&@: H H H *@=@- at H H H H H ;@k >@,@'@)@!@~@{@]@H H F+^@/@(@_ at E :@<@[@}@4+4+A . . . . . . ",
+". . . |@1 at k m.2@!.!.!.!.3 at 4@5 at +.;+H H H 6 at 7@H H 8@]@H 9 at 0@k a at b@H H H H H H V+c at d@e at k k f at g@h at i@j at k@4+4+4+A . . . . . . ",
+". . l at k k m at n@!.!.!.!.o at p@k q at G.(.H H r at s@t at b@u at M.v@g+w at k x at z+H H H H y at z@A at B@k C at D@E at F@G at H@I at J@K at 4+4+4+4+A . . . . . . ",
+". . L at k M at N@!.!.!.!.O at P@Q at g A [+H H - at R@S@=@B at T@U at V@W at T+X@9 at H H Y at Z@w at k E `@ #.#G at +#@###$#4+4+4+4+4+4+4+4+A . . . . . . ",
+". . %#k &#!.!.!.!.*#P at P@=#%@A s H H -#V@;#>#,#y+'#)#!#]@H H c+~#;#k {#]#^#i@/#(#_#:#4+4+4+4+4+4+4+4+4+4+4+A . . . . . . ",
+". . <#k [#!.!.!.++}#P at P@|#%@t._ H H z+1#2#H H H H H H H 3#4#5#6#7#8#9#0#a#b#4+4+4+4+4+4+4+4+4+4+4+4+4+4+c#A . . . . . . ",
+". . d#k e#!.!.!.f#P at P@P at g#| t.H H H H H H H H H H H h#i#j#k#l#m#n#o#p#4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+q#r#A . . . . . . ",
+". . d k L+s#!.!.t#P at P@P at u#M.-+H H H H H H H v#w#x#C+y#z#A#B#C#`+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+D#E#F#G#H#A . . . . . . ",
+". . I#J#4 at K#).!.L#P at P@M#N#k O#H H H - at P#Q#(@R#S#T#U#V#$#4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+W#X#Y#Z#Z#`#4+A . . . . . . ",
+". . .  $.$+$@$!.s#P@#$$$%$&$*$=$-$x#;$&$>$,$'$)$!$4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+~$4+4+4+4+{$]$^$4+4+4+4+A . . . . . . ",
+". . . /$k ($_$:$s#<$[$}$|$1$2$3$4$5$6$7$b#4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+8$9$0$4+4+4+4+a$b$4+4+4+4+A . . . . . . ",
+". . . c$k d$P at M+s#e$f$g$4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+h$i$4+4+j$k$l$4+4+4+4+m$0$4+4+4+4+A . . . . . . ",
+". . . n$k o$p$q$r$e$s$4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+t$u$4+4+v$w$x$y$z$A$a$B$4+4+4+4+4+4+4+4+4+A . . . . . . ",
+". . . * C$k D$E$F$G$E H$4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+I$y$4+J$4+K$L$M$4+N$1+O$9$P$4+4+{$4+4+4+4+4+4+4+4+4+A . . . . . . ",
+". . . . Q$k r+P at R$P@$+S$4+4+4+4+4+4+4+4+4+4+4+4+4+4+T$U$V$4+W$x$X$Y$Z$`$ %.%+%@%#%4+4+4+4+4+4+4+4+4+$%%%y$A . . . . . . ",
+". . . . &%k k *%P at P@=%]$-%4+4+4+4+4+4+4+4+;%4+4+U$>%,%k '%)%!%~%{%~$F#]%^%4+4+4+4+4+4+4+{+/%4+4+4+(%_%k :%A . . . . . . ",
+". . . . . <%k [%P at P@}%k |%y$4+4+y$1%4+4+4+2%3%4%k k E 5%6%7%8%9%0%4+4+y$y$4+4+4+4+a%y$b%f$c%d%4+4+P$k e%j$A . . . . . . ",
+". . . . . f%k g%M#P at h%i%j%k%4+4+l%m%n%o%p%q%r#O$r%s%X$t%4+u%v%4+4+4+4+4+4+4+4+4+4+w%x%q%9$y%z%4+4+3+A%B%4+A . . . . . . ",
+". . . . . C%k k D%P at P@E%k F%y$4+4+G%k H%I%E J%/%(%4+K%#%4+4+4+4+4+4+4+4+4+h$L%M%l%s$N%O%P%4+4+4+4+4+I+Q%R%A . . . . . . ",
+". . . . . ~ S%k T%P at P@G$E U%V%4+4+4+W%X%4+Y%4+4+4+4+4+4+4+4+4+4+4+4+>%E#4+V$k y#Z%k `%4+4+4+4+4+4+4+4+ &k A . . . . . . ",
+". . . . . . %@k .&M#P at P@+&E @&K at 4+4+#&$&4+4+4+4+4+4+4+4+4+4+4+Y%%&l%&&E *&=&-&`#;&a$y$4+4+4+4+4+4+4+4+>&,&A . . . . . . ",
+". . . . . . k k k '&P at P@)&k !&~&4+4+4+4+4+4+4+4+4+4+4+4+{&]&u$q%k ^&/&,%A%(&1%4+4+4+4+4+4+0$4+_&:&<&4+4+[&A . . . . . . ",
+". . . . . . k }&k d$P at P@h%|&1&2&K at 4+4+4+4+4+4+4+4+3&4&u$5&k 6&k 7&8&o%4+4+4+4+4+4+4+4+4+9&6&0&a&]$b&8$4+4+A . . . . . . ",
+". . . . . . k c&k .$d&P at P@e&k f&g&4+4+4+4+,%v%4+h&k k K$i&j&k&l&3+4+h$4+4+4+4+4+4+4+4+m&Z#n&o&p&q&r&s&4+4+A . . . . . . ",
+". . . . . . k t&u&k v&P at P@w&4 at x&y&y$4+4+4+z&5%A&]$E @%B&C&D&4+4+4+4+4+4+4+4+4+4+h$E&F&G&H&I&J&K&L&M&4+4+4+A . . . . . . ",
+". . . . . . k Q N&k .$O&P at P@e&k P&g&4+4+4+3+Z#Q&'%B&4+4+I$4+4+4+4+4+4+y$Q%4+V$R&^%S&T&o&4+4+4+4+4+4+4+4+4+A . . . . . . ",
+". . . . . . k Q U&V&k g#P at P@h%i%{#W&y$4+4+4+V$H$b$X&4+4+4+4+4+4+4+Y&P%Z&B&`&O$c%k  *4+.*4+4+4+4+4+4+4+4+t%A . . . . . . ",
+". . . . . . k Q Q +*k [$@*P at P@#*k $*o#4+4+4+l%8$4+4+4+4+4+4+4+j$%*b&k f$&***9$Q%=*-*4+4+4+4+4+4+4+4+4+B$;*A . . . . . . ",
+". . . . . . k Q Q >*_+k ,*P at P@'*$+{#)*K at 4+4+4+4+4+4+4+!*0%~*{*]*x%C&{$^%^*4+/*4+4+4+4+4+4+4+4+4+4+(*_*:*R%A . . . . . . ",
+". . . . . . k Q <*X [*k [$}*P at P@|*k 1*2*4+4+4+4+,%3*4*5%k '%5*6*T$b$4+4+4+4+4+4+4+4+4+4+4+4+4+J%7*8*1+k 9*A . . . . . . ",
+". . . . . . k Q 0*X a*E k b*P at P@c*E d*e*y$4+4+4+L&J#k k K$5&(&f*4+4+4+4+4+4+4+4+4+4+4+y$Q%4+z%k k n&M&x$4+A . . . . . . ",
+". . . . . . k Q g*X X F.k h*i*P at P@|#k j*2*4+4+4+4+k*k G&.*4+4+4+4+4+4+4+4+4+4+4+4+_&4+l*m*z%J#n*V$[&4+Q%o*A . . . . . . ",
+". . . . . . k Q p*q*X r*k k s*P at P@t*k u*v*w*4+4+4+8$6&(%4+4+4+4+4+4+4+4+4+4+x*`#E#y#y*z*E k A*1%4+4+4+j$k A . . . . . . ",
+". . . . . . k Q Q B*X ^+8+k C*h%P at w&4 at k D*E*4+4+4+4+F*4+4+4+4+4+4+4+4+4+h$v%R%k {#k G*H*I*J*B$4+4+8$n%K*S$A . . . . . . ",
+". . . . . . A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/icon/ico_60x60_mask.xbm b/icon/ico_60x60_mask.xbm
new file mode 100644
index 0000000..96af719
--- /dev/null
+++ b/icon/ico_60x60_mask.xbm
@@ -0,0 +1,44 @@
+#define ico_60x60_mask_width 60
+#define ico_60x60_mask_height 60
+static unsigned char ico_60x60_mask_bits[] = {
+  0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 
+  0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 
+  0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe7, 0x1f, 0x00, 0x00, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xf0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xf0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 
+  0xff, 0xff, 0x3f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+  };
diff --git a/icon/ico_60x60_white.xpm b/icon/ico_60x60_white.xpm
new file mode 100644
index 0000000..9d9664c
--- /dev/null
+++ b/icon/ico_60x60_white.xpm
@@ -0,0 +1,875 @@
+/* XPM */
+static char * ico_60x60_white_xpm[] = {
+"60 60 812 2",
+"  	c None",
+". 	c #FFFFFF",
+"+ 	c #FEFEFE",
+"@ 	c #B0B0B0",
+"# 	c #6D6D6D",
+"$ 	c #525252",
+"% 	c #676767",
+"& 	c #C3C3C3",
+"* 	c #FDFDFD",
+"= 	c #F9F9F9",
+"- 	c #555555",
+"; 	c #242424",
+"> 	c #808080",
+", 	c #B4B4B6",
+"' 	c #B6B6B6",
+") 	c #878787",
+"! 	c #2A2A2A",
+"~ 	c #222222",
+"{ 	c #959595",
+"] 	c #FBFBFB",
+"^ 	c #DCDCDC",
+"/ 	c #3D3D3D",
+"( 	c #5D5D5D",
+"_ 	c #ECECF4",
+": 	c #E4E4FF",
+"< 	c #D7D7FF",
+"[ 	c #DDDDFF",
+"} 	c #E6E6FF",
+"| 	c #F8F8FE",
+"1 	c #AEAEAE",
+"2 	c #252525",
+"3 	c #E1E1E1",
+"4 	c #E9E9E9",
+"5 	c #1D1D1D",
+"6 	c #535353",
+"7 	c #FBFBFE",
+"8 	c #D9D9FF",
+"9 	c #D0D0F8",
+"0 	c #8787A1",
+"a 	c #535363",
+"b 	c #656578",
+"c 	c #9B9BB8",
+"d 	c #F0F0FF",
+"e 	c #F5F5F5",
+"f 	c #626262",
+"g 	c #424242",
+"h 	c #FCFCFC",
+"i 	c #696969",
+"j 	c #111111",
+"k 	c #F2F2F2",
+"l 	c #ECECFF",
+"m 	c #2D2D35",
+"n 	c #000000",
+"o 	c #525262",
+"p 	c #D6D6FE",
+"q 	c #464646",
+"r 	c #9C9C9C",
+"s 	c #666666",
+"t 	c #FEFEFF",
+"u 	c #DBDBFF",
+"v 	c #84849D",
+"w 	c #362416",
+"x 	c #795232",
+"y 	c #6A482C",
+"z 	c #090604",
+"A 	c #A1A1B8",
+"B 	c #DCDCFF",
+"C 	c #CACACA",
+"D 	c #0E0E0E",
+"E 	c #DDDDDD",
+"F 	c #040404",
+"G 	c #A7A7A7",
+"H 	c #EFEFFF",
+"I 	c #D6D6FF",
+"J 	c #555566",
+"K 	c #4C341F",
+"L 	c #BA7F4E",
+"M 	c #C99366",
+"N 	c #BA804F",
+"O 	c #68462B",
+"P 	c #393944",
+"Q 	c #F4F4FF",
+"R 	c #B87D4C",
+"S 	c #7C5433",
+"T 	c #E7E7FF",
+"U 	c #5A5A62",
+"V 	c #986A43",
+"W 	c #DDAC84",
+"X 	c #EBBE99",
+"Y 	c #E6B892",
+"Z 	c #B48761",
+"` 	c #0F0F12",
+" .	c #D2D2FA",
+"..	c #E5E5FF",
+"+.	c #E7E7E7",
+"@.	c #191918",
+"#.	c #906B4C",
+"$.	c #E7B892",
+"%.	c #DBA981",
+"&.	c #9D6D44",
+"*.	c #5D3F26",
+"=.	c #24190F",
+"-.	c #010000",
+";.	c #18100D",
+">.	c #38261D",
+",.	c #634333",
+"'.	c #855A45",
+").	c #AA7257",
+"!.	c #B1775B",
+"~.	c #B97F4E",
+"{.	c #BF8656",
+"].	c #624329",
+"^.	c #E2E2FF",
+"/.	c #DADAFF",
+"(.	c #838383",
+"_.	c #AA886C",
+":.	c #5F4C3E",
+"<.	c #828285",
+"[.	c #BBBBBB",
+"}.	c #0C0B0A",
+"|.	c #665242",
+"1.	c #42362B",
+"2.	c #1B1612",
+"3.	c #0D0907",
+"4.	c #2F2018",
+"5.	c #6A4837",
+"6.	c #9A684F",
+"7.	c #E6B791",
+"8.	c #D7A57B",
+"9.	c #CB9568",
+"0.	c #BD8353",
+"a.	c #4D3420",
+"b.	c #181818",
+"c.	c #DEDEFF",
+"d.	c #AD9E91",
+"e.	c #F2D6BE",
+"f.	c #F3D7C0",
+"g.	c #EBD8C8",
+"h.	c #666565",
+"i.	c #ADADAE",
+"j.	c #B9B9B9",
+"k.	c #131313",
+"l.	c #312119",
+"m.	c #6D4A38",
+"n.	c #8B5D47",
+"o.	c #B87D4D",
+"p.	c #D6A379",
+"q.	c #3D3126",
+"r.	c #FDFDFF",
+"s.	c #F8F8FF",
+"t.	c #EAEAFF",
+"u.	c #E1E1FF",
+"v.	c #EAEAEA",
+"w.	c #303030",
+"x.	c #251D19",
+"y.	c #33231A",
+"z.	c #624232",
+"A.	c #A46E54",
+"B.	c #D5A379",
+"C.	c #3F3329",
+"D.	c #FCFCFF",
+"E.	c #F3F3FF",
+"F.	c #F8F8F8",
+"G.	c #B5B5B5",
+"H.	c #2C2826",
+"I.	c #D29E73",
+"J.	c #020202",
+"K.	c #F6F6F9",
+"L.	c #F6F6FF",
+"M.	c #E9E9FF",
+"N.	c #FBFBFF",
+"O.	c #EDEDED",
+"P.	c #3B3B3B",
+"Q.	c #593C2E",
+"R.	c #A56F55",
+"S.	c #7B533F",
+"T.	c #CB9669",
+"U.	c #191410",
+"V.	c #F1F1F9",
+"W.	c #E8E8FF",
+"X.	c #F2F2FF",
+"Y.	c #E5E5E5",
+"Z.	c #6D4938",
+"`.	c #B0765B",
+" +	c #895C47",
+".+	c #3C281F",
+"++	c #080504",
+"@+	c #CC966A",
+"#+	c #D4AC8A",
+"$+	c #A9896E",
+"%+	c #534336",
+"&+	c #F7F7FE",
+"*+	c #EEEEFF",
+"=+	c #F5F5FF",
+"-+	c #E0E0FF",
+";+	c #8C8C8E",
+">+	c #2D1E17",
+",+	c #13120F",
+"'+	c #76735E",
+")+	c #E0DBB3",
+"!+	c #BC8252",
+"~+	c #E7BB96",
+"{+	c #A4846B",
+"]+	c #3D3228",
+"^+	c #050403",
+"/+	c #BDBDBD",
+"(+	c #D8D8FF",
+"_+	c #EBEBFF",
+":+	c #D9D9FA",
+"<+	c #292930",
+"[+	c #151511",
+"}+	c #969378",
+"|+	c #EFEABF",
+"1+	c #FFFACC",
+"2+	c #E0B088",
+"3+	c #D6AD8B",
+"4+	c #836A56",
+"5+	c #201A15",
+"6+	c #0A0705",
+"7+	c #35231B",
+"8+	c #9A9A9A",
+"9+	c #E3E3FF",
+"0+	c #BCBCE0",
+"a+	c #9696B3",
+"b+	c #8A8AA5",
+"c+	c #74748A",
+"d+	c #C2C2E7",
+"e+	c #B0B0D2",
+"f+	c #151412",
+"g+	c #F2EEC2",
+"h+	c #B37A4A",
+"i+	c #805735",
+"j+	c #402F21",
+"k+	c #070504",
+"l+	c #1E1410",
+"m+	c #764F3C",
+"n+	c #90614A",
+"o+	c #1B120E",
+"p+	c #1E1E1E",
+"q+	c #CDCDCD",
+"r+	c #F9F9FF",
+"s+	c #B7B7DA",
+"t+	c #6E6E83",
+"u+	c #737389",
+"v+	c #9E9EBC",
+"w+	c #D3D3FC",
+"x+	c #C3C3E9",
+"y+	c #7E7E96",
+"z+	c #010102",
+"A+	c #212127",
+"B+	c #43434F",
+"C+	c #CBCBF1",
+"D+	c #D5D5FE",
+"E+	c #9F9FBE",
+"F+	c #85815E",
+"G+	c #F7F2C5",
+"H+	c #6E4B2D",
+"I+	c #160F09",
+"J+	c #221711",
+"K+	c #9C6950",
+"L+	c #8A5D47",
+"M+	c #444444",
+"N+	c #E8E8EA",
+"O+	c #CACAF1",
+"P+	c #6E6E84",
+"Q+	c #030304",
+"R+	c #060608",
+"S+	c #A2A2C1",
+"T+	c #CCCCF3",
+"U+	c #AEAED0",
+"V+	c #2C2C34",
+"W+	c #6B6638",
+"X+	c #DBD490",
+"Y+	c #FFFACB",
+"Z+	c #E6E6E6",
+"`+	c #7F7F7F",
+" @	c #040202",
+".@	c #3B271E",
+"+@	c #7B523F",
+"@@	c #8D5E48",
+"#@	c #2B2B2B",
+"$@	c #E6E6E8",
+"%@	c #6F6F84",
+"&@	c #585869",
+"*@	c #D4D4FC",
+"=@	c #6D6D82",
+"-@	c #08080A",
+";@	c #6F6F85",
+">@	c #9C9CB9",
+",@	c #8E8EAA",
+"'@	c #797991",
+")@	c #646477",
+"!@	c #5E5E70",
+"~@	c #BDBDE2",
+"{@	c #A3A3C3",
+"]@	c #656579",
+"^@	c #3C3C47",
+"/@	c #040405",
+"(@	c #010101",
+"_@	c #54502C",
+":@	c #C1B865",
+"<@	c #CEC67B",
+"[@	c #FAF5C4",
+"}@	c #A9A9A9",
+"|@	c #0B0B0B",
+"1@	c #97664E",
+"2@	c #96644C",
+"3@	c #120C09",
+"4@	c #1F1F1F",
+"5@	c #85859E",
+"6@	c #5B5B6D",
+"7@	c #B8B8DB",
+"8@	c #CFCFF7",
+"9@	c #515161",
+"0@	c #1D1D23",
+"a@	c #B0B0D1",
+"b@	c #9494B0",
+"c@	c #626274",
+"d@	c #31313B",
+"e@	c #1C1B0F",
+"f@	c #4D4928",
+"g@	c #9E9653",
+"h@	c #C2B966",
+"i@	c #D4CD85",
+"j@	c #FCF7C7",
+"k@	c #C1C1C1",
+"l@	c #442E23",
+"m@	c #B0765A",
+"n@	c #98664D",
+"o@	c #36241B",
+"p@	c #BABABA",
+"q@	c #9797B4",
+"r@	c #23232A",
+"s@	c #D3D3FB",
+"t@	c #454552",
+"u@	c #444452",
+"v@	c #35353F",
+"w@	c #2F2F37",
+"x@	c #BFBFE3",
+"y@	c #727288",
+"z@	c #303039",
+"A@	c #050506",
+"B@	c #050402",
+"C@	c #252313",
+"D@	c #656035",
+"E@	c #A19955",
+"F@	c #C0B765",
+"G@	c #CDC579",
+"H@	c #DFD896",
+"I@	c #F0EAB4",
+"J@	c #FEF9CA",
+"K@	c #7A7A7A",
+"L@	c #140E0A",
+"M@	c #AF755A",
+"N@	c #92624A",
+"O@	c #7A513D",
+"P@	c #150E0B",
+"Q@	c #292931",
+"R@	c #8E8EA9",
+"S@	c #1E1E23",
+"T@	c #1E1E24",
+"U@	c #060607",
+"V@	c #101013",
+"W@	c #5F5F71",
+"X@	c #CECEF5",
+"Y@	c #84849E",
+"Z@	c #212011",
+"`@	c #5D5931",
+" #	c #958F4F",
+".#	c #C5BC6B",
+"+#	c #D4CC84",
+"@#	c #E7E1A4",
+"##	c #F9F4C2",
+"$#	c #51372A",
+"%#	c #9E6A50",
+"&#	c #100B08",
+"*#	c #BDBDE1",
+"=#	c #111114",
+"-#	c #42424F",
+";#	c #9B9BB9",
+">#	c #C5C5EA",
+",#	c #77778E",
+"'#	c #78788F",
+")#	c #5A5A6C",
+"!#	c #030302",
+"~#	c #3A381F",
+"{#	c #968F4F",
+"]#	c #CAC273",
+"^#	c #DCD491",
+"/#	c #EEE8B0",
+"(#	c #FCF7C8",
+"_#	c #636363",
+":#	c #5A3C2E",
+"<#	c #835742",
+"[#	c #251812",
+"}#	c #8C8CA7",
+"|#	c #C6C6EC",
+"1#	c #C7C7ED",
+"2#	c #69697D",
+"3#	c #0B0B0D",
+"4#	c #050503",
+"5#	c #403D22",
+"6#	c #878147",
+"7#	c #B6AE61",
+"8#	c #D1C97F",
+"9#	c #E4DD9E",
+"0#	c #F5EFBB",
+"a#	c #EBE7BC",
+"b#	c #949494",
+"c#	c #3E2920",
+"d#	c #A36D53",
+"e#	c #39261C",
+"f#	c #B5B4D5",
+"g#	c #6B6B7D",
+"h#	c #0E0E10",
+"i#	c #0A0A05",
+"j#	c #5F5A32",
+"k#	c #B7AF66",
+"l#	c #D8D18C",
+"m#	c #EAE3A8",
+"n#	c #FBF6C5",
+"o#	c #AEAA8B",
+"p#	c #181713",
+"q#	c #C5C5C5",
+"r#	c #99664E",
+"s#	c #A16C52",
+"t#	c #503528",
+"u#	c #D1D1F9",
+"v#	c #ACACCD",
+"w#	c #68687C",
+"x#	c #040403",
+"y#	c #33311C",
+"z#	c #7F7B50",
+"A#	c #D7D092",
+"B#	c #F0EAB3",
+"C#	c #ACA98A",
+"D#	c #9D9A7D",
+"E#	c #9D9A7E",
+"F#	c #161612",
+"G#	c #575545",
+"H#	c #F7F7F7",
+"I#	c #070707",
+"J#	c #7B523E",
+"K#	c #9B684F",
+"L#	c #79513D",
+"M#	c #422C21",
+"N#	c #CDCBC5",
+"O#	c #AEAECF",
+"P#	c #707086",
+"Q#	c #0F0F0E",
+"R#	c #272514",
+"S#	c #595532",
+"T#	c #948F63",
+"U#	c #D5CF9A",
+"V#	c #D3CEA8",
+"W#	c #7D7B64",
+"X#	c #060605",
+"Y#	c #0E0E0B",
+"Z#	c #A6A385",
+"`#	c #2F2F2F",
+" $	c #020101",
+".$	c #694634",
+"+$	c #93624B",
+"@$	c #6B4736",
+"#$	c #2E1E17",
+"$$	c #434023",
+"%$	c #2B2917",
+"&$	c #9E9DAC",
+"*$	c #D4D4FD",
+"=$	c #A8A8C8",
+"-$	c #232325",
+";$	c #5E5A31",
+">$	c #979159",
+",$	c #D2CB8C",
+"'$	c #EDE7AE",
+")$	c #FDF7C8",
+"!$	c #F1ECC1",
+"~$	c #DBD7AF",
+"{$	c #050504",
+"]$	c #7F7D66",
+"^$	c #606060",
+"/$	c #462E23",
+"($	c #7E543F",
+"_$	c #AF765A",
+":$	c #6E4937",
+"<$	c #060403",
+"[$	c #4E4B36",
+"}$	c #D3CB83",
+"|$	c #9D9765",
+"1$	c #C6C4BB",
+"2$	c #D1CFD0",
+"3$	c #7B7960",
+"4$	c #A6A277",
+"5$	c #D5CE8F",
+"6$	c #E3DC9D",
+"7$	c #F4EFC3",
+"8$	c #3B3A2F",
+"9$	c #FBF6C9",
+"0$	c #605E4D",
+"a$	c #CDC9A4",
+"b$	c #919191",
+"c$	c #281B14",
+"d$	c #523729",
+"e$	c #080806",
+"f$	c #EDE8BE",
+"g$	c #F9F4C7",
+"h$	c #F8F3C6",
+"i$	c #AAA788",
+"j$	c #070706",
+"k$	c #827F68",
+"l$	c #E5E0B7",
+"m$	c #D0D0D0",
+"n$	c #030202",
+"o$	c #734C3A",
+"p$	c #875A44",
+"q$	c #9D6950",
+"r$	c #0C0C0A",
+"s$	c #C3C09C",
+"t$	c #FDF8CA",
+"u$	c #A29F82",
+"v$	c #1D1D17",
+"w$	c #B0AD8D",
+"x$	c #FEF9CB",
+"y$	c #575546",
+"z$	c #E8E3B9",
+"A$	c #D3CFA9",
+"B$	c #493125",
+"C$	c #7B513D",
+"D$	c #97654D",
+"E$	c #624131",
+"F$	c #CCC8A3",
+"G$	c #EAE5BB",
+"H$	c #B8B493",
+"I$	c #34332A",
+"J$	c #454437",
+"K$	c #EAE6BB",
+"L$	c #5A5948",
+"M$	c #0B0B09",
+"N$	c #838169",
+"O$	c #8C8C8C",
+"P$	c #815641",
+"Q$	c #5C5A49",
+"R$	c #FDF8CB",
+"S$	c #424135",
+"T$	c #918E74",
+"U$	c #2F2E25",
+"V$	c #0D0D0A",
+"W$	c #0E0D0B",
+"X$	c #1E1E18",
+"Y$	c #C1BD9B",
+"Z$	c #1A1A15",
+"`$	c #C0BD9A",
+" %	c #D6D2AC",
+".%	c #4B493C",
+"+%	c #EEE9BE",
+"@%	c #EEEABF",
+"#%	c #CBC7A3",
+"$%	c #D5D5D5",
+"%%	c #5D3E2F",
+"&%	c #2E1F17",
+"*%	c #E2DEB4",
+"=%	c #E7E2B9",
+"-%	c #9B987C",
+";%	c #A4A183",
+">%	c #020201",
+",%	c #9C997D",
+"'%	c #11100D",
+")%	c #1B1A15",
+"!%	c #36352B",
+"~%	c #333228",
+"{%	c #86836B",
+"]%	c #E6E1B8",
+"^%	c #C3BF9C",
+"/%	c #5F5D4C",
+"(%	c #201F19",
+"_%	c #262626",
+":%	c #34231A",
+"<%	c #5A3C2D",
+"[%	c #676449",
+"}%	c #FAF5C8",
+"|%	c #37362C",
+"1%	c #22211B",
+"2%	c #5A5848",
+"3%	c #010100",
+"4%	c #817F67",
+"5%	c #1A1915",
+"6%	c #6F6D59",
+"7%	c #C9C5A1",
+"8%	c #9A977B",
+"9%	c #FCF7C9",
+"0%	c #D4D0AA",
+"a%	c #23221C",
+"b%	c #A7A486",
+"c%	c #4C4A3C",
+"d%	c #747474",
+"e%	c #0F0A08",
+"f%	c #78503C",
+"g%	c #0E0907",
+"h%	c #14130A",
+"i%	c #E6DFA5",
+"j%	c #F5F0C4",
+"k%	c #2A2922",
+"l%	c #323128",
+"m%	c #6A6855",
+"n%	c #A09D80",
+"o%	c #444337",
+"p%	c #1C1C16",
+"q%	c #6F6C58",
+"r%	c #656351",
+"s%	c #ECE7BD",
+"t%	c #D6D2AB",
+"u%	c #4A483B",
+"v%	c #282720",
+"w%	c #8A886F",
+"x%	c #8C8970",
+"y%	c #302F27",
+"z%	c #D7D2AC",
+"A%	c #BEBEBE",
+"B%	c #644232",
+"C%	c #35231A",
+"D%	c #99935A",
+"E%	c #B7B492",
+"F%	c #1F1E19",
+"G%	c #555444",
+"H%	c #BBB896",
+"I%	c #E8E4BA",
+"J%	c #807D66",
+"K%	c #D8D4AD",
+"L%	c #1D1C17",
+"M%	c #5F5E4C",
+"N%	c #BCB896",
+"O%	c #FCF7CA",
+"P%	c #77755F",
+"Q%	c #121212",
+"R%	c #412B20",
+"S%	c #39361E",
+"T%	c #E9E2A6",
+"U%	c #545343",
+"V%	c #797761",
+"W%	c #CFCBA5",
+"X%	c #3C3A30",
+"Y%	c #A9A587",
+"Z%	c #CECAA5",
+"`%	c #575757",
+" &	c #140D0A",
+".&	c #261913",
+"+&	c #B3AC69",
+"@&	c #E7E2B8",
+"#&	c #D7D3AC",
+"$&	c #8F8C72",
+"%&	c #191914",
+"&&	c #4D4C3E",
+"*&	c #0A0A08",
+"=&	c #424035",
+"-&	c #6C6A56",
+";&	c #BDBA98",
+">&	c #2A2921",
+",&	c #604030",
+"'&	c #583A2C",
+")&	c #4E4B29",
+"!&	c #E9E2A7",
+"~&	c #E9E5BB",
+"{&	c #CBC7A2",
+"]&	c #403E33",
+"^&	c #24231D",
+"/&	c #88856D",
+"(&	c #D9D5AE",
+"_&	c #C0BC99",
+":&	c #DFDAB2",
+"<&	c #BFBB99",
+"[&	c #0E0A06",
+"}&	c #130D0A",
+"|&	c #030301",
+"1&	c #B0A967",
+"2&	c #8D8B71",
+"3&	c #C4C19D",
+"4&	c #7A7862",
+"5&	c #2B2A22",
+"6&	c #84826A",
+"7&	c #4B4A3C",
+"8&	c #DFDBB2",
+"9&	c #BAB795",
+"0&	c #23231C",
+"a&	c #302F26",
+"b&	c #5A3D25",
+"c&	c #694635",
+"d&	c #4E3427",
+"e&	c #56522D",
+"f&	c #E9E3A8",
+"g&	c #908E74",
+"h&	c #10100D",
+"i&	c #464438",
+"j&	c #474639",
+"k&	c #292821",
+"l&	c #686654",
+"m&	c #424034",
+"n&	c #413F34",
+"o&	c #4E4D3E",
+"p&	c #171612",
+"q&	c #666451",
+"r&	c #DCD7B0",
+"s&	c #AA7346",
+"t&	c #0B0805",
+"u&	c #2F1F17",
+"v&	c #79503C",
+"w&	c #080704",
+"x&	c #B9B26C",
+"y&	c #696754",
+"z&	c #1C1B16",
+"A&	c #21211B",
+"B&	c #11110E",
+"C&	c #FCF8CA",
+"D&	c #73715C",
+"E&	c #B1AD8D",
+"F&	c #1C1C17",
+"G&	c #DDD9B1",
+"H&	c #D9D4AD",
+"I&	c #F9F4C8",
+"J&	c #E4DFB6",
+"K&	c #C4C09D",
+"L&	c #F6F1C5",
+"M&	c #634329",
+"N&	c #6D4837",
+"O&	c #474425",
+"P&	c #2D2C24",
+"Q&	c #848169",
+"R&	c #3D3C31",
+"S&	c #585646",
+"T&	c #AE7648",
+"U&	c #0A0704",
+"V&	c #AFA867",
+"W&	c #A6A285",
+"X&	c #DAD6AF",
+"Y&	c #C0BC9A",
+"Z&	c #7F7C65",
+"`&	c #B8B593",
+" *	c #E9E4BA",
+".*	c #5E442F",
+"+*	c #704A38",
+"@*	c #432D22",
+"#*	c #484526",
+"$*	c #CCC8A4",
+"%*	c #21201A",
+"&*	c #4F4E40",
+"**	c #BAB694",
+"=*	c #FEF9CC",
+"-*	c #181813",
+";*	c #D3A783",
+">*	c #39261D",
+",*	c #754D3A",
+"'*	c #BBB36E",
+")*	c #7E7B64",
+"!*	c #E0DCB3",
+"~*	c #DAD6AE",
+"{*	c #13130F",
+"]*	c #7D7A64",
+"^*	c #EFEBC0",
+"/*	c #928F75",
+"(*	c #585747",
+"_*	c #403F33",
+":*	c #C08758",
+"<*	c #5C4A3C",
+"[*	c #714B38",
+"}*	c #302018",
+"|*	c #625E34",
+"1*	c #EAE4A9",
+"2*	c #A39F82",
+"3*	c #9F9C7F",
+"4*	c #171712",
+"5*	c #575646",
+"6*	c #DFDBB3",
+"7*	c #12110E",
+"8*	c #D9D5AD",
+"9*	c #CD976B",
+"0*	c #BD997B",
+"a*	c #3D291F",
+"b*	c #6A4635",
+"c*	c #100F08",
+"d*	c #C3BB73",
+"e*	c #030303",
+"f*	c #C7C4A0",
+"g*	c #D19D72",
+"h*	c #0B0806",
+"i*	c #754E3B",
+"j*	c #7A7440",
+"k*	c #716F5A",
+"l*	c #7B7963",
+"m*	c #3D3B30",
+"n*	c #646250",
+"o*	c #8D8A71",
+"p*	c #BE8556",
+"q*	c #EABD98",
+"r*	c #AA896F",
+"s*	c #442D22",
+"t*	c #56392B",
+"u*	c #282715",
+"v*	c #CBC377",
+"w*	c #FDF8C9",
+"x*	c #E2DEB5",
+"y*	c #403F34",
+"z*	c #141410",
+"A*	c #38372D",
+"B*	c #DFAE87",
+"C*	c #0D0906",
+"D*	c #9C9552",
+"E*	c #DFD897",
+"F*	c #EDE9BE",
+"G*	c #0F0F0C",
+"H*	c #DDD8B1",
+"I*	c #DCD8B0",
+"J*	c #7A7761",
+"K*	c #1E1D18",
+". . . . . . . . . . . . . . . . . . . . . . . + @ # $ $ $ % & * . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . = - ; > , , ' ) ! ~ { ] . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ^ / ( _ : < < [ } | 1 2 / 3 . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . 4 5 6 7 8 9 0 a b c 8 d e f g h . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . i j k l 9 m n n n n o p l * q r . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . ; s t u v n w x y z n A B . C D E . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . n n n n n n n n n n n n n n F G H I J K L M N O n P I Q . f n n n n n n n n n n n n n n n n n . . . . . . . ",
+". . . . . . n R R R R R R R R R R R R S n ^ T < U V W X Y Z n `  .... +. at .#.$.X %.&.*.=.-.n n ;.>.,.'.).!.. . . . . . . ",
+". . . . . . n R R R R R R ~.{.R R R R ].n = ^./.(._.X X X :.n <.< B . . [.}.|.1.2.n n 3.4.5.6.!.!.!.!.!.!.. . . . . . . ",
+". . . . . . n R R R R R ~.W X 7.8.9.0.a.b.* c./.^ d.e.f.g.h.i.T I ... . . j.k.n l.m.n.!.!.!.!.!.!.!.!.!.!.. . . . . . . ",
+". . . . . . n R R R R o.p.X X X X X X q.~ . B I r.s.t...u.u /.I l . . . . . v.i w.x.y.z.A.!.!.!.!.!.!.!.!.. . . . . . . ",
+". . . . . . n R R R R B.X X X X X X X C.~ t I I D.D.^.u.B 8 8 E.. . . . . . . . . F.v.G.H.z.!.!.!.!.!.!.!.. . . . . . . ",
+". . . . . . n R R R I.X X X X X X X X C.J.K.I I L.. . . . t t . . . . . . . . t M...T N.O.P.Q.!.!.!.!.R.S.. . . . . . . ",
+". . . . . . n R R T.X X X X X X X X X U.n V.I I < E.. . . . . . . . . . . . . W.I I I /.X.Y.k.Z.`. +.+++J.. . . . . . . ",
+". . . . . . n R R @+X X X X X X #+$+%+n w.&+I I I < *+. . . . . =+[ u u u u.-+I I I I I I } ;+3.>+n ,+'+)+. . . . . . . ",
+". . . . . . n R R !+X X X ~+{+]+^+n n J./+s.I I I I (+. . . . _+< I I I I I I I I I I I I I :+<+[+}+|+1+1+. . . . . . . ",
+". . . . . . n R R R 2+3+4+5+n 6+7+^+J.8+D.9+I I I I (+. . L.-+I I I I I I I I 0+a+b+c+c+d+I I e+f+g+1+1+1+. . . . . . . ",
+". . . . . . n R h+i+j+k+-.l+m+n+o+p+q+Q u I I I I I (+r+: I I s+t+u+v+w+x+y+P z+n J.A+B+C+I D+E+F+G+1+1+1+. . . . . . . ",
+". . . . . . n H+I+n J+z.K+!.L+6+M+N+T I I I v O+I I I < I I P+Q+n n n n n n R+J S+T+I I I U+V+n W+X+Y+1+1+. . . . . . . ",
+". . . . Z+`+n  @. at +@!.!.!.@@6+#@$@[ I I I %@&@*@I I I I I =@n -@;@>@,@'@)@!@~@I I D+{@]@^@/@(@_@:@<@[@1+1+. . . . . . . ",
+". . . }@|@n l.1@!.!.!.!.2 at 3@4 at +.*+I I I 5 at 6@I I 7@~@I 8 at 9@n 0 at a@I I I I I I T+b at c@d at n n e at f@g at h@i at j@1+1+1+. . . . . . . ",
+". . k@(@n l at m@!.!.!.!.n at o@n p at D./.I I q at r@s at a@t at J.u@d+v at n w at x+I I I I x at y@z at A@n B at C@D at E@F at G@H at I@J at 1+1+1+1+. . . . . . . ",
+". . K at n L at M@!.!.!.!.N at O@P at j . _+I I *@Q at R@&@A at S@T at U@V at R+W@8 at I I X at Y@v at n (@Z@`@ #F at .#+#@###1+1+1+1+1+1+1+1+. . . . . . . ",
+". . ( n $#!.!.!.!.%#O at O@&##@. u I I *#U@=#-#;#w+>#,#'#~@I I 0+)#=#n !#~#{#h@]#^#/#(#1+1+1+1+1+1+1+1+1+1+1+. . . . . . . ",
+". . _#n :#!.!.!.`.<#O at O@[##@r.< I I x+}#|#I I I I I I I 1#2#3#4#5#6#7#8#9#0#1+1+1+1+1+1+1+1+1+1+1+1+1+1+a#. . . . . . . ",
+". . b#n c#!.!.!.d#O at O@O at e#2 r.I I I I I I I I I I I f#g#h#i#j#k#l#m#n#1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+o#p#. . . . . . . ",
+". . q#n J+r#!.!.s#O at O@O at t#J.&+I I I I I I I u#v#w#A+x#y#z#A#B#Y+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+C#D#E#F#G#. . . . . . . ",
+". . H#I#3 at J#).!.K#O at O@L#M#n N#I I I *@O#P#^@Q#R#S#T#U###1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+V#W#X#Y#Y#Z#1+. . . . . . . ",
+". . . `# $.$+$!.r#O@@$#$$$%$&$*$=$w#-$%$;$>$,$'$)$1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+!$1+1+1+1+~${$]$1+1+1+1+. . . . . . . ",
+". . . ^$n /$($_$r#:$<$[$}$|$1$2$3$4$5$6$0#1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+7$8$9$1+1+1+1+0$a$1+1+1+1+. . . . . . . ",
+". . . b$n c$O at K+r#d$e$f$1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+g$h$1+1+i$j$k$1+1+1+1+l$9$1+1+1+1+. . . . . . . ",
+". . . m$n n$o$p$q$d$r$1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+s$t$1+1+u$v$w$x$y$z$0$A$1+1+1+1+1+1+1+1+1+. . . . . . . ",
+". . . = 4 at n B$C$D$E$(@F$1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+G$x$1+H$1+I$J$K$1+L$[+M$8$N$1+1+~$1+1+1+1+1+1+1+1+1+. . . . . . . ",
+". . . . O$n o+O at P$O at ++Q$1+1+1+1+1+1+1+1+1+1+1+1+1+1+R$S$T$1+U$w$V$W$X$Y$Z$`$ %.%+%1+1+1+1+1+1+1+1+1+@%#%x$. . . . . . . ",
+". . . . $%(@n %%O at O@&%{$*%1+1+1+1+1+1+1+1+=%1+1+S$-%;%n >%,%'%)%!%!$E#~%{%1+1+1+1+1+1+1+)+]%1+1+1+^%/%n (%. . . . . . . ",
+". . . . . _%n :%O at O@<%n [%x$1+1+x$}%1+1+1+|%1%2%n n (@3%4%5%6%7%8%1+1+x$x$1+1+1+1+9%x$0%e$a%b%1+1+N$n c%i$. . . . . . . ",
+". . . . . d%n e%L#O at f%g%h%i%1+1+j%k%l%m%n%o%p#M$p%q%V$r%1+s%t%1+1+1+1+1+1+1+1+1+1+u%v%o%8$w%x%1+1+|+y%z%1+. . . . . . . ",
+". . . . . A%n n B%O at O@C%n D%x$1+1+E%n F%G%(@H%]%^%1+I%+%1+1+1+1+1+1+1+1+1+g$J%K%j%r$L%M%N%1+1+1+1+1+G+O%P%. . . . . . . ",
+". . . . . h Q%n R%O at O@E$(@S%T%1+1+1+U%V%1+W%1+1+1+1+1+1+1+1+1+1+1+1+-%D#1+T$n x#X%n Y%1+1+1+1+1+1+1+1+Z%n . . . . . . . ",
+". . . . . . `%n  &L#O at O@.&(@+&J at 1+1+@&#&1+1+1+1+1+1+1+1+1+1+1+W%$&j%%&(@&&*&=&Z#-&0$x$1+1+1+1+1+1+1+1+;&>&. . . . . . . ",
+". . . . . . n n n ,&O at O@'&n )&!&1+1+1+1+1+1+1+1+1+1+1+1+~&{&t$o%n ]&^&;%y%/&}%1+1+1+1+1+1+9$1+(&_&:&1+1+<&. . . . . . . ",
+". . . . . . n [&n c$O at O@f%}&|&1&J at 1+1+1+1+1+1+1+1+2&3&t$4&n 5&n 6&7&m%1+1+1+1+1+1+1+1+1+8&5&9&0&{$a&7$1+1+. . . . . . . ",
+". . . . . . n b&n  $c&O at O@d&n e&f&1+1+1+1+;%t%1+g&n n I$h&i&j&k&|+1+g$1+1+1+1+1+1+1+1+l&Y#m&n&o&p&q&r&1+1+. . . . . . . ",
+". . . . . . n s&t&n u&O at O@v&3 at w&x&x$1+1+1+y&3%z&{$(@.%A&B&C&1+1+1+1+1+1+1+1+1+1+g$D&E&F&G&H&I&J&K&L&1+1+1+. . . . . . . ",
+". . . . . . n R M&n  $N&O at O@d&n O&f&1+1+1+|+Y#P&>%A&1+1+G$1+1+1+1+1+1+x$O%1+T$Q&{%R&S&n&1+1+1+1+1+1+1+1+1+. . . . . . . ",
+". . . . . . n R T&U&n e#O at O@f%g%!#V&x$1+1+1+T$F$a$W&1+1+1+1+1+1+1+X&N%Y&A&Z&M$a%n `&1+ *1+1+1+1+1+1+1+1+r%. . . . . . . ",
+". . . . . . n R R .*n <$+*O at O@@*n #*m#1+1+1+j%7$1+1+1+1+1+1+1+i$$*a&n e$%*&*8$O%**=*1+1+1+1+1+1+1+1+1+A$-*. . . . . . . ",
+". . . . . . n R R ;*^+n >*O at O@,*++!#'*J at 1+1+1+1+1+1+1+)*8%!*~*{*v%B&~${%]*1+^*1+1+1+1+1+1+1+1+1+1+/*(*_*P%. . . . . . . ",
+". . . . . . n R :*X <*n <$[*O at O@}*n |*1*1+1+1+1+;%2*3*3%n >%4*5*R$a$1+1+1+1+1+1+1+1+1+1+1+1+1+H%6*7*[+n 8*. . . . . . . ",
+". . . . . . n R 9*X 0*(@n a*O at O@b*(@c*d*x$1+1+1+K&e*n n I$4&/&f*1+1+1+1+1+1+1+1+1+1+1+x$O%1+x%n n m&L&w$1+. . . . . . . ",
+". . . . . . n R g*X X C.n h*i*O at O@[#n j*1*1+1+1+1+k*n F& *1+1+1+1+1+1+1+1+1+1+1+1+(&1+l*m*x%e*n*T$<&1+O%o*. . . . . . . ",
+". . . . . . n R p*q*X r*n n s*O at O@t*n u*v*w*1+1+1+7$5&^%1+1+1+1+1+1+1+1+1+1+x*Z#D#x#y*z*(@n A*}%1+1+1+i$n . . . . . . . ",
+". . . . . . n R R B*X ~+5+n C*f%O at v&3 at n D*E*1+1+1+1+F*1+1+1+1+1+1+1+1+1+g$t%P%n !#n G*H*I*J*A$1+1+7$l%K*Q$. . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/rcconfig.c b/rcconfig.c
new file mode 100644
index 0000000..69cb231
--- /dev/null
+++ b/rcconfig.c
@@ -0,0 +1,462 @@
+#include <wmcliphist.h>
+#include <sys/stat.h>
+
+#define	RC_BUF_SIZE	256
+
+/* automat state */
+typedef enum {
+	STATE_BEGINING,
+	STATE_COMMENT,
+	STATE_DIRECTIVE,
+	STATE_VALUE,
+	STATE_EXPRESSION_START,
+	STATE_EXPRESSION,
+	STATE_EXPRESSION_END,
+	STATE_ACTION,
+	STATE_COMMAND
+} STATE;
+
+
+GList	*action_list = NULL;
+
+
+/* add character to buffer */
+#define	add_to_buff(buf, pos, chr)	do { \
+	buf[pos++] = chr; \
+	buf[pos] = '\0'; \
+	if (pos + 1 == RC_BUF_SIZE) \
+		error = 7; \
+} while (0)
+
+
+#define	ismywhite(c)	(c == '\t' || c == ' ')
+
+
+/*
+ * returns config/data file name in user's home
+ */
+char *
+rcconfig_get_name(char *append)
+{
+	static gchar	fname[PATH_MAX];
+	gchar		*home;
+
+	begin_func("rcconfig_get_name");
+
+	if (!(home = g_getenv("HOME")))
+		return_val(NULL);
+
+	memset(fname, 0, PATH_MAX);
+	snprintf(fname, PATH_MAX, "%s/.wmcliphist%s", home, append);
+
+	return_val(fname);
+}
+
+
+
+
+/*
+ * appends parsed action to action list
+ */
+int
+action_append(char *expr_buf, char *action_buf, char *cmd_buf)
+{
+	ACTION		*action;
+
+	begin_func("action_append");
+
+	action = g_new0(ACTION, 1);
+	
+	if (regcomp(&action->expression, expr_buf,
+				REG_EXTENDED|REG_ICASE|REG_NOSUB) != 0) {
+		g_free(action);
+		return_val(-101);
+	}
+
+	if (strcmp(action_buf, "exec") == 0)
+		action->action = ACT_EXEC;
+	else if (strcmp(action_buf, "submenu") == 0)
+		action->action = ACT_SUBMENU;
+	else if (strcmp(action_buf, "ignore") == 0)
+		action->action = ACT_IGNORE;
+	else {
+		g_free(action);
+		return_val(-102);
+	}
+	
+	action->command = g_strdup(cmd_buf);
+
+	action_list = g_list_append(action_list, action);
+	
+	return_val(0);
+}
+
+
+/*
+ * read and parse rcconfig
+ */
+int
+rcconfig_get(char *fname)
+{
+	int		f_rc;
+	char		tmp[1024], c;
+	int		byte_cnt;
+	STATE		state = STATE_BEGINING;
+	char		direc_buf[RC_BUF_SIZE],
+			expr_buf[RC_BUF_SIZE],
+			action_buf[RC_BUF_SIZE],
+			cmd_buf[RC_BUF_SIZE];
+	int		buf_index = 0;
+	int		error = 0, eof = 0;
+	int		i;
+	int		line = 0;
+	int		res;
+
+	begin_func("rcconfig_get");
+
+	close(open(fname,  O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH));
+
+	if ((f_rc = open(fname, O_RDONLY)) < 0) {
+		fprintf(stderr, ".wmcliphistrc not found\n");
+		return_val(1);
+	}
+
+	i = byte_cnt = 0;
+	while (1) {
+		if (i == byte_cnt) {
+			byte_cnt = read(f_rc, tmp, 1024);
+			if (byte_cnt == -1) {
+				fprintf(stderr, "cannot read .wmcliphistrc\n");
+				break;
+			} else if (byte_cnt < 1024) {
+				tmp[byte_cnt++] = 0;
+				eof = 1;
+			}
+			i = 0;
+		}
+
+		c = tmp[i++];
+		switch (state) {
+			case STATE_BEGINING:
+				line++;
+				if (isalnum(c)) {
+					state = STATE_DIRECTIVE;
+					buf_index = 0;
+					add_to_buff(direc_buf, buf_index, c);
+				} else if (c == '#')
+					state = STATE_COMMENT;
+				else if (ismywhite(c))
+					line--;
+				else if (c == '\n')
+					state = STATE_BEGINING;
+				else
+					error = 1;
+				break;
+
+			case STATE_COMMENT:
+				if (c == '\n' || c == '\0')
+					state = STATE_BEGINING;
+				break;
+
+			case STATE_DIRECTIVE:
+				if (ismywhite(c)) {
+					if (strcmp(direc_buf, "action") == 0) {
+						state = STATE_EXPRESSION_START;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "menukey") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "prev_item_key") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "exec_item_key") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "keep") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "lcolor") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "autosave") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf,
+								"confirm_exec") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "exec_immediately") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "exec_middleclick") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "exec_hotkey") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else if (strcmp(direc_buf, "auto_take_up") == 0) {
+						state = STATE_VALUE;
+						buf_index = 0;
+					} else {
+						error = 8;
+					}
+				} else if (isalpha(c) || c == '_') {
+					add_to_buff(direc_buf, buf_index, c);
+				} else {
+					error = 1;
+				}
+				break;
+
+			case STATE_VALUE:
+				if (c == '\n' || ismywhite(c)) {
+					if (strcmp(direc_buf, "menukey") == 0) {
+						memset(menukey_str, 0, 32);
+						strncpy(menukey_str,
+								expr_buf, 31);
+					} else if (strcmp(direc_buf, "prev_item_key") == 0) {
+						memset(prev_item_key_str, 0, 32);
+						strncpy(prev_item_key_str,
+								expr_buf, 31);
+					} else if (strcmp(direc_buf, "exec_item_key") == 0) {
+						memset(exec_item_key_str, 0, 32);
+						strncpy(exec_item_key_str,
+								expr_buf, 31);
+					} else if (strcmp(direc_buf, "keep") == 0) {
+						num_items_to_keep =
+							atoi(expr_buf);
+					} else if (strcmp(direc_buf, "lcolor")
+							== 0) {
+						memset(locked_color_str, 0, 32);
+						strncpy(locked_color_str,
+								expr_buf, 31);
+					} else if (strcmp(direc_buf, "autosave") == 0) {
+						autosave_period =
+							atoi(expr_buf);
+					} else if (strcmp(direc_buf,
+								"confirm_exec") == 0) {
+						if (strcasecmp(expr_buf, "yes") == 0) {
+							confirm_exec = 1;
+						}
+					} else if (strcmp(direc_buf, "exec_immediately") == 0) {
+						if (strcasecmp(expr_buf, "no") == 0) {
+							exec_immediately= 0;
+						}
+					} else if (strcmp(direc_buf, "exec_middleclick") == 0) {
+						if (strcasecmp(expr_buf, "no") == 0) {
+							exec_middleclick = 0;
+						}
+					} else if (strcmp(direc_buf, "exec_hotkey") == 0) {
+						if (strcasecmp(expr_buf, "no") == 0) {
+							exec_hotkey = 0;
+						}
+					} else if (strcmp(direc_buf, "auto_take_up") == 0) {
+						if (strcasecmp(expr_buf, "no") == 0) {
+							auto_take_up = 0;
+						}
+					} else
+						error = 1;
+				} else if (isgraph(c))
+					add_to_buff(expr_buf, buf_index, c);
+				else
+					error = 2;
+
+				if (error == 0) {
+					if (c == '\n' || c == '\0') {
+						buf_index = 0;
+						state = STATE_BEGINING;
+					} else if (ismywhite(c)) {
+						buf_index = 0;
+						state = STATE_COMMENT;
+					}
+				}
+
+				break;
+
+			case STATE_EXPRESSION_START:
+				if (c == '"')
+					state = STATE_EXPRESSION;
+				else
+					error = 1;
+				break;
+
+			case STATE_EXPRESSION:
+				if (c == '"')
+					state = STATE_EXPRESSION_END;
+				else if (c == '\n')
+					error = 1;
+				else
+					add_to_buff(expr_buf, buf_index, c);
+				break;
+
+			case STATE_EXPRESSION_END:
+				if (c != ' ' && c != '\t')
+					error = 1;
+				if (strcmp(direc_buf, "action") == 0) {
+					state = STATE_ACTION;
+					buf_index = 0;
+				} else
+					error = 1;
+				
+				break;
+
+			case STATE_ACTION:
+				if (c == ' ' || c == '\t') {
+					state = STATE_COMMAND;
+					buf_index = 0;
+				} else if (c == '\0' || c == '\n') {
+					if (strcmp(action_buf, "ignore") == 0) {
+						state = STATE_BEGINING;
+						buf_index = 0;
+						*cmd_buf = '\0';
+						res = action_append(
+								expr_buf,
+								action_buf,
+								cmd_buf);
+						if (res < 0)
+							error = abs(res);
+					} else
+						error = 1;
+				} else if (isalpha(c))
+					add_to_buff(action_buf, buf_index, c);
+				else
+					error = 1;
+				break;
+
+			case STATE_COMMAND:
+				if (c == '\n' || c == '\0') {
+					state = STATE_BEGINING;
+					buf_index = 0;
+					res = action_append(
+							expr_buf,
+							action_buf,
+							cmd_buf);
+					if (res < 0)
+						error = abs(res);
+				} else
+					add_to_buff(cmd_buf, buf_index, c);
+				break;
+		}
+
+		if (!error && (!eof || i < byte_cnt))
+			continue;
+
+		switch (state) {
+			case STATE_DIRECTIVE:
+				if (error == 7)
+					fprintf(stderr, "Directive is too long "
+							"(line %d)\n", line);
+				else if (error == 8)
+					fprintf(stderr, "Unknown directive "
+							"(line %d)\n", line);
+				else
+					fprintf(stderr, "Only letters are "
+							"allowed in directive "
+							"name (line %d)\n",
+							line);
+				break;
+
+			case STATE_EXPRESSION_START:
+			case STATE_EXPRESSION:
+				if (error == 7)
+					fprintf(stderr, "Expression is too long "
+							"(line %d)\n", line);
+				else
+					fprintf(stderr, "Expression must be "
+							"enclosed with quotes "
+							"\" (line %d)\n", line);
+				break;
+
+			case STATE_EXPRESSION_END:
+				fprintf(stderr, "One space/tab and "
+						"action must follow "
+						"each expression"
+						" (line %d)\n", line);
+				break;
+
+			case STATE_ACTION:
+				if (error == 1)
+					fprintf(stderr, "Only letters are "
+							"allowed in action "
+							"name (line %d)\n",
+							line);
+				else if (error == 101)
+					fprintf(stderr, "Invalid expression "
+							"(line %d)\n", line);
+				else if (error == 7)
+					fprintf(stderr, "Action is too long "
+							"(line %d)\n", line);
+				else
+					fprintf(stderr, "Invalid action "
+							"(line %d)\n", line);
+				break;
+
+			case STATE_VALUE:
+				if (error == 1)
+					fprintf(stderr, "Invalid directive "
+							"(line %d)\n", line);
+				else if (error == 7)
+					fprintf(stderr, "Value is too long "
+							"(line %d)\n", line);
+				else
+					fprintf(stderr, "Invalid value "
+							"(line %d)\n", line);
+				break;
+
+			case STATE_COMMAND:
+				if (error == 101)
+					fprintf(stderr, "Invalid expression "
+							"(line %d)\n", line);
+				else if (error == 7)
+					fprintf(stderr, "Command is too long "
+							"(line %d)\n", line);
+				else
+					fprintf(stderr, "Invalid action "
+							"(line %d)\n", line);
+				break;
+
+			case STATE_COMMENT:
+				if (!eof)
+					fprintf(stderr, "Unknown error "
+							"(line %d)\n", line);
+				else
+					error = 0;
+				break;
+
+			case STATE_BEGINING:
+				/* everything is OK */
+				error = 0;
+				break;
+		}
+
+		break;
+	}
+
+	close(f_rc);
+
+	return_val(error);
+}
+
+
+/*
+ * free rcconfig data
+ */
+void
+rcconfig_free()
+{
+	GList		*list_node;
+
+	begin_func("rcconfig_free");
+
+	list_node = action_list;
+	while (list_node) {
+		ACTION		*action = list_node->data;
+
+		g_free(action->command);
+		regfree(&action->expression);
+		g_free(action);
+		list_node = list_node->next;
+	}
+	g_list_free(action_list);
+
+	return_void();
+}
diff --git a/wmcliphist.c b/wmcliphist.c
new file mode 100644
index 0000000..d0f24b6
--- /dev/null
+++ b/wmcliphist.c
@@ -0,0 +1,374 @@
+/*
+ * (c) 2001 Michal Krause <michal at krause.cz>
+ */
+
+#include <wmcliphist.h>
+
+#include <icon/ico_60x60_mask.xbm>
+#include <icon/ico_60x60_black.xpm>
+#include <icon/ico_60x60_white.xpm>
+#include <icon/ico_60x60_gray.xpm>
+
+#include <icon/ico_40x40_mask.xbm>
+#include <icon/ico_40x40_black.xpm>
+#include <icon/ico_40x40_white.xpm>
+#include <icon/ico_40x40_gray.xpm>
+
+#include <icon/ico_30x30_mask.xbm>
+#include <icon/ico_30x30_black.xpm>
+#include <icon/ico_30x30_white.xpm>
+#include <icon/ico_30x30_gray.xpm>
+
+#include <icon/ico_16x16_mask.xbm>
+#include <icon/ico_16x16.xpm>
+
+/*
+ * print some help
+ */
+void
+print_help()
+{
+	begin_func("print_help");
+
+	fprintf(stderr, "Usage: wmcliphist [options]\n\n"
+			"wmcliphist is small dock applet for Window Maker which "
+			"keeps X clipboard history\n\n");
+	fprintf(stderr, "-h         show this help\n"
+			"-n <num>   set number of items to keep (default 10)\n"
+			"-c color   set color for locked items (default is red)\n"
+			"-s <size>  choose wmcliphist icon size:\n"
+			"           16 = tiny 16x16 px icon\n"
+			"           30 = icon suitable for 32px dock/slit\n"
+			"           40 = icon suitable for 48px dock/slit\n"
+			"           60 = icon suitable for 64px dock/slit (default)\n");
+	fprintf(stderr, "-i <num>   choose wmcliphist icon antialiasing:\n"
+			"           0 = for mid tones background (default)\n"
+			"           1 = for dark background\n"
+			"           2 = for light background\n\n");
+
+	exit(1);
+	return_void();
+}
+
+static void
+wmcliphist_exit(gint code)
+{
+	begin_func("wmcliphist_exit");
+	gtk_exit(code);
+	return_void();
+}
+
+
+/*
+ * main func
+ */
+int
+main(int argc, char **argv)
+{
+	gint	i = 1, res;
+	gchar	*arg;
+	GList	*list_node;
+	int	icon_number = 0;
+	int	icon_size = 60;
+	gchar	**icon_data;
+
+#ifdef	FNCALL_DEBUG
+	debug_init_nothreads();
+#endif
+	begin_func("main");
+
+	/* load configuration */
+	if ((res = rcconfig_get(rcconfig_get_name("rc"))) != 0) {
+		fprintf(stderr, "~/.wmcliphistrc parse error (%d)\n", res);
+		return_val(1);
+	}
+
+	/* parse command line */
+	while ((arg = argv[i])) {
+		if (*arg == '-') {
+			if (*(arg + 1) == 'h')
+				print_help();
+			else if (*(arg + 1) == 'n') {
+				i++;
+				if (!argv[i]) {
+					fprintf(stderr, "Missing value of -n\n");
+					print_help();
+				}
+				num_items_to_keep = atol(argv[i]);
+			} else if (*(arg + 1) == 'c') {
+				i++;
+				if (!argv[i]) {
+					fprintf(stderr, "Missing value of -c\n");
+					print_help();
+				}
+				memset(locked_color_str, 0, 32);
+				strncpy(locked_color_str, argv[i], 31);
+			} else if (*(arg + 1) == 'i') {
+				i++;
+				if (!argv[i]) {
+					fprintf(stderr, "Missing value of -i\n");
+					print_help();
+				}
+				icon_number = atoi(argv[i]);
+				if (icon_number < 0 || icon_number > 2) {
+					fprintf(stderr, "Invalid value of -i\n");
+					print_help();
+				}
+			} else if (*(arg + 1) == 's') {
+				i++;
+				if (!argv[i]) {
+					fprintf(stderr, "Missing value of -s\n");
+					print_help();
+				}
+				icon_size = atoi(argv[i]);
+				if (icon_size != 60 && icon_size != 40
+						&& icon_size != 30
+						&& icon_size != 16) {
+					fprintf(stderr, "Invalid value of -s\n");
+					print_help();
+				}
+			} else {
+				fprintf(stderr, "Invalid option -%c\n", *(arg + 1));
+				print_help();
+			}
+		} else {
+			fprintf(stderr, "Invalid option %s\n", arg);
+			print_help();
+		}
+		i++;
+	}
+
+	signal(SIGCHLD, SIG_IGN);
+
+	/* initialize Gtk */
+	gtk_set_locale();
+	gtk_init(&argc, &argv);
+
+
+	/* create main window */
+	main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+	gtk_widget_realize(main_window);
+
+
+	/* creat dock icon */
+	dock_app = foo_create_main_icon_window(main_window,
+			icon_size, argc, argv);
+
+
+	/* create icon_mask */
+	if (icon_size == 60) {
+		/* 60x60 icon */
+		icon_mask = gdk_bitmap_create_from_data(main_window->window,
+				(gchar *) ico_60x60_mask_bits,
+				ico_60x60_mask_width,
+				ico_60x60_mask_height);
+		/* create icon */
+		if (icon_number == 0) {
+			icon_data = ico_60x60_gray_xpm;
+		} else if (icon_number == 1) {
+			icon_data = ico_60x60_black_xpm;
+		} else {
+			icon_data = ico_60x60_white_xpm;
+		}
+	} else if (icon_size == 40) {
+		/* 40x40 icon */
+		icon_mask = gdk_bitmap_create_from_data(main_window->window,
+				(gchar *) ico_40x40_mask_bits,
+				ico_40x40_mask_width,
+				ico_40x40_mask_height);
+		/* create icon */
+		if (icon_number == 0) {
+			icon_data = ico_40x40_gray_xpm;
+		} else if (icon_number == 1) {
+			icon_data = ico_40x40_black_xpm;
+		} else {
+			icon_data = ico_40x40_white_xpm;
+		}
+	} else if (icon_size == 30) {
+		/* 30x30 icon */
+		icon_mask = gdk_bitmap_create_from_data(main_window->window,
+				(gchar *) ico_30x30_mask_bits,
+				ico_30x30_mask_width,
+				ico_30x30_mask_height);
+		/* create icon */
+		if (icon_number == 0) {
+			icon_data = ico_30x30_gray_xpm;
+		} else if (icon_number == 1) {
+			icon_data = ico_30x30_black_xpm;
+		} else {
+			icon_data = ico_30x30_white_xpm;
+		}
+	} else {
+		/* 16x16 icon */
+		icon_mask = gdk_bitmap_create_from_data(main_window->window,
+				(gchar *) ico_16x16_mask_bits,
+				ico_16x16_mask_width,
+				ico_16x16_mask_height);
+		/* create icon */
+		icon_data = ico_16x16_xpm;
+	}
+
+	icon = gdk_pixmap_create_from_xpm_d(main_window->window,
+			NULL, NULL, icon_data);
+	pixmap = gtk_pixmap_new(icon, icon_mask);
+	gtk_widget_show(pixmap);
+	gtk_container_add(GTK_CONTAINER(dock_app), pixmap);
+
+	
+	/* create clipboard history menu */
+	menu_hist = gtk_menu_new();
+	gtk_menu_set_title(GTK_MENU(menu_hist), "Clipboard history");
+	menu_title = gtk_tearoff_menu_item_new();
+	gtk_menu_append(GTK_MENU(menu_hist), menu_title);
+	gtk_widget_show(menu_title);
+	gtk_widget_show(menu_hist);
+
+
+	/* create application menu */
+	menu_app = gtk_menu_new();
+
+	menu_app_clip_lock = gtk_check_menu_item_new_with_label("Clipboard lock");
+	gtk_menu_append(GTK_MENU(menu_app), menu_app_clip_lock);
+
+	menu_app_clip_ignore = gtk_check_menu_item_new_with_label("Clipboard ignore");
+	gtk_menu_append(GTK_MENU(menu_app), menu_app_clip_ignore);
+
+	menu_app_save = gtk_menu_item_new_with_label("Save history");
+	gtk_menu_append(GTK_MENU(menu_app), menu_app_save);
+	gtk_signal_connect(GTK_OBJECT(menu_app_save),
+			"activate",
+			GTK_SIGNAL_FUNC(menu_app_item_click),
+			GINT_TO_POINTER(0));
+
+	menu_app_exit = gtk_menu_item_new_with_label("Exit");
+	gtk_menu_append(GTK_MENU(menu_app), menu_app_exit);
+	gtk_signal_connect(GTK_OBJECT(menu_app_exit),
+			"activate",
+			GTK_SIGNAL_FUNC(menu_app_item_click),
+			GINT_TO_POINTER(1));
+
+	gtk_widget_show_all(menu_app);
+
+
+	list_node = action_list;
+	while (list_node) {
+		ACTION	*action = list_node->data;
+
+		if (action->action == ACT_SUBMENU &&
+				strcmp(action->command, "-") != 0) {
+			action->menu_item = gtk_menu_item_new_with_label(
+					action->command);
+			gtk_menu_append(GTK_MENU(menu_hist),
+					action->menu_item);
+			action->submenu = gtk_menu_new();
+			gtk_menu_item_set_submenu(
+					GTK_MENU_ITEM(action->menu_item),
+					action->submenu);
+			menu_title = gtk_tearoff_menu_item_new();
+			gtk_menu_append(GTK_MENU(action->submenu), menu_title);
+			gtk_widget_show(menu_title);
+			gtk_widget_show(action->menu_item);
+			gtk_widget_show(action->submenu);
+			submenu_count++;
+		}
+		if (action->action == ACT_SUBMENU &&
+				strcmp(action->command, "-") == 0) {
+			printf("'%s'\n", action->command);
+			action->submenu = menu_hist;
+		}
+		list_node = list_node->next;
+	}
+	if (submenu_count) {
+		GtkWidget	*separator;
+
+		separator = gtk_menu_item_new();
+		gtk_widget_show(separator);
+		gtk_menu_insert(GTK_MENU(menu_hist), separator, 1);
+	}
+
+	/* prepare colors and styles */
+	if (gdk_color_parse(locked_color_str, &locked_color) == 0) {
+		char	msg_str[128];
+
+		sprintf(msg_str, "Invalid color string: '%s'.\n"
+				"Falling back to default (red).",
+				locked_color_str);
+		show_message(msg_str, "Warning", "OK", NULL, NULL);
+		strcpy(locked_color_str, DEF_LOCKED_COLOR);
+		gdk_color_parse(locked_color_str, &locked_color);
+	}
+	style_normal = gtk_style_copy(gtk_widget_get_style(menu_hist));
+	style_locked = gtk_style_copy(gtk_widget_get_style(menu_hist));
+	style_locked->fg[GTK_STATE_NORMAL] = locked_color;
+	style_locked->fg[GTK_STATE_PRELIGHT] = locked_color;
+
+
+	/* load previously saved history */
+	if (history_load() != 0) {
+		if (errno == E_TOO_MUCH) {
+			if (show_message("Number of items to keep (-n switch or "
+					"keep directive in ~/.wmcliphistrc)\n"
+					"is lower than actual number of items "
+					"in history file.\nSome items from "
+					"history will be lost. May I continue?",
+					"Warning", "Yes", "No", NULL) == 1) {
+				rcconfig_free();
+				gtk_exit(1);
+			}
+		} else if (errno != E_OPEN) {
+			rcconfig_free();
+			fprintf(stderr, "cannot load history (%d)\n", errno);
+			gtk_exit(1);
+		}
+	}
+
+
+	/* connect signal for menu popup */
+	gtk_signal_connect(GTK_OBJECT(dock_app),
+			"event",
+			GTK_SIGNAL_FUNC(button_press),
+			GTK_OBJECT(menu_hist));
+
+
+	/* show icon */
+	gtk_widget_show(dock_app);
+	gtk_widget_show(main_window);
+	gdk_window_shape_combine_mask(main_window->window, icon_mask, 0, 0);
+	gdk_window_shape_combine_mask(dock_app->window, icon_mask, 0, 0);
+
+	
+	/* run clipboard monitor */
+	gtk_signal_connect(GTK_OBJECT(main_window),
+			"selection_received",
+			GTK_SIGNAL_FUNC(my_get_xselection),
+			NULL);
+	gtk_timeout_add(250, time_conv_select, NULL);
+	
+
+	/* run autosave timer */
+	if (autosave_period > 0)
+		gtk_timeout_add(autosave_period * 1000, history_autosave, NULL);
+	
+
+	/* setup everything for supplying selection to other apps */
+	gtk_selection_add_target(dock_app,
+			GDK_SELECTION_PRIMARY,
+			GDK_SELECTION_TYPE_STRING,
+			1);
+
+	gtk_signal_connect(GTK_OBJECT(dock_app),
+			"selection_get",
+			GTK_SIGNAL_FUNC(selection_handle),
+			NULL);
+
+	gtk_signal_connect(GTK_OBJECT(dock_app),
+			"destroy",
+			GTK_SIGNAL_FUNC(wmcliphist_exit),
+			NULL);
+
+	hotkeys_init();
+	
+	gtk_main();
+
+	return_val(0);
+}
diff --git a/wmcliphist.h b/wmcliphist.h
new file mode 100644
index 0000000..92ade52
--- /dev/null
+++ b/wmcliphist.h
@@ -0,0 +1,328 @@
+#ifndef	_WMCLIPHIST_H_
+#define	_WMCLIPHIST_H_
+
+
+#define _GNU_SOURCE
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <errno.h>
+
+#include <fcntl.h>
+#include <regex.h>
+
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+
+#include <foodock.h>
+
+#include <debug.h>
+
+
+#define	VERSION			0x0003
+#define	DEF_LOCKED_COLOR	"red"
+#define	DEF_MENUKEY		"Control+Alt+V"
+#define	DEF_PREV_ITEM_KEY	"Control+Alt+C"
+#define	DEF_EXEC_ITEM_KEY	"Control+Alt+E"
+#define	MAX_ITEM_LENGTH		40
+
+
+/* ==========================================================================
+ *                                                        CLIPBOARD FUNCTIONS
+ */
+
+/* history item */
+typedef struct {
+	GtkWidget	*menu_item;
+	gint		locked;
+	gchar		*content;
+	size_t		content_len;
+	GtkWidget	*menu;
+}	HISTORY_ITEM;
+
+
+/* number of items to keep (may be overriden from command line) */
+extern gint		num_items_to_keep;
+
+/* when true, clipboard will be automatically taken up by wmcliphist */
+extern gint		auto_take_up;
+
+/* number of items kept */
+extern gint		num_items;
+
+/* list of clipboard history items */
+extern GList		*history_items;
+
+/* selected item */
+extern HISTORY_ITEM	*selected;
+
+/* current number of locked items */
+extern gint		locked_count;
+
+
+
+#ifdef DEBUG
+#define	dump_history_list(header)	dump_history_list_fn(header)
+#else
+#define	dump_history_list(header)	
+#endif
+
+
+/*
+ * get clipboard content - partialy inspired by Downloader for X
+ */
+gboolean
+my_get_xselection(GtkWidget *window, GdkEvent *event);
+
+/*
+ * clipboard conversion - inspired by Downloader for X too :)
+ */
+gboolean
+time_conv_select();
+
+/*
+ * handles request for selection from other apps
+ */
+gint
+selection_handle(GtkWidget *widget, 
+		GtkSelectionData *selection_data,
+		guint info,
+		guint time_stamp,
+		gpointer data);
+
+
+/* ==========================================================================
+ *                                                                  RC CONFIG
+ */
+
+/* action record */
+typedef struct {
+	regex_t			expression;
+	enum {
+		ACT_EXEC,
+		ACT_SUBMENU,
+		ACT_IGNORE
+	}			action;
+	char			*command;
+	GtkWidget		*menu_item;
+	GtkWidget		*submenu;
+} ACTION;
+
+
+extern GList	*action_list;
+
+
+/*
+ * returns config/data file name in user's home
+ */
+char *
+rcconfig_get_name(char *append);
+
+/*
+ * read and parse rcconfig
+ */
+int
+rcconfig_get(char *fname);
+
+/*
+ * free rcconfig data
+ */
+void
+rcconfig_free();
+
+
+
+/* ==========================================================================
+ *                                                                        GUI
+ */
+
+/* error codes */
+#define	E_BASE		10000
+#define	E_OPEN		(E_BASE | 1)
+#define	E_INVALID	(E_BASE | 2)
+#define	E_REMOVE	(E_BASE | 3)
+#define	E_TOO_MUCH	(E_BASE | 4)
+#define	E_WRITE		(E_BASE | 5)
+#define	E_RENAME	(E_BASE | 6)
+
+
+/*
+ * process new history item
+ */
+void
+process_item(char *content, size_t length, gint locked, gboolean exec);
+
+
+
+/* ==========================================================================
+ *                                                          HISTORY FUNCTIONS
+ */
+
+/*
+ * autosave period
+ */
+extern int	autosave_period;
+
+/*
+ * confirm actions?
+ */
+extern int	confirm_exec;
+
+/*
+ *  Exec immediately when item is captured?
+ */
+extern int	exec_immediately;
+
+/*
+ * move supplied item to begin
+ */
+void
+move_item_to_begin(HISTORY_ITEM *item);
+
+/*
+ * Execute an item.
+ */
+void
+exec_item(char *content, size_t len, ACTION *action);
+
+/*
+ * loads history from file
+ */
+int
+history_load();
+
+/*
+ * store history to file
+ */
+int
+history_save();
+
+/*
+ * free history data
+ */
+void
+history_free();
+
+/*
+ * autosave timer function
+ */
+gboolean
+history_autosave();
+
+
+/* ==========================================================================
+ *                                                                    HOTKEYS
+ */
+
+/* hotkeys */
+extern gchar		menukey_str[32];
+extern guint		menukey;
+extern gchar		prev_item_key_str[32];
+extern gchar		exec_item_key_str[32];
+
+/*
+ *  Exec on hotkey?
+ */
+extern int	exec_hotkey;
+
+/*
+ * initialize hotkeys
+ */
+void
+hotkeys_init();
+
+/*
+ * disable hotkeys
+ */
+void
+hotkeys_done();
+
+
+
+/* ==========================================================================
+ *                                                                        GUI
+ */
+
+/* color of locked item */
+extern gchar		locked_color_str[32];
+extern GdkColor		locked_color;
+extern GtkStyle		*style_locked,
+			*style_normal;
+extern gint		submenu_count;
+
+/*
+ *  Exec on middle click?
+ */
+extern int	exec_middleclick;
+
+/* main window widget */
+extern GtkWidget	*main_window;
+
+/* dock icon widget */
+extern GtkWidget	*dock_app;
+
+/* clipboard history menu */
+extern GtkWidget	*menu_hist;
+extern GtkWidget	*menu_title;
+
+/* application menu */
+extern GtkWidget	*menu_app;
+extern GtkWidget	*menu_app_clip_ignore;
+extern GtkWidget	*menu_app_clip_lock;
+extern GtkWidget	*menu_app_exit;
+extern GtkWidget	*menu_app_save;
+
+/* button */
+extern GtkWidget	*button;
+
+/* pixmap */
+extern GtkWidget	*pixmap;
+extern GdkPixmap	*icon;
+extern GdkBitmap	*icon_mask;
+extern GdkBitmap	*mask;
+
+
+/*
+ * dock button click response
+ */
+gboolean
+button_press(GtkWidget *widget, GdkEvent *event, gpointer data);
+
+
+/*
+ * checks, if there is already such item in menu,
+ * in which case it moves it to the begining
+ */
+HISTORY_ITEM *
+menu_item_exists(gchar *content, size_t length, GtkWidget *submenu);
+
+/*
+ * add new item to menu
+ */
+HISTORY_ITEM *
+menu_item_add(gchar *content, size_t length,
+		gint locked, GtkWidget *target_menu);
+
+
+/*
+ * application main menu handler
+ */
+gboolean
+menu_app_item_click(GtkWidget *menuitem, gpointer data);
+
+
+/*
+ * open dialog with specified message andbuttons
+ * and return number of button pressed
+ */
+gint
+show_message(gchar *message, char *title,
+		char *b1_text, char *b2_text, char *b3_text);
+
+
+#endif
diff --git a/wmcliphist.spec b/wmcliphist.spec
new file mode 100644
index 0000000..5d6e89c
--- /dev/null
+++ b/wmcliphist.spec
@@ -0,0 +1,72 @@
+Summary: dockable clipboard history applet for Window Maker
+Name: wmcliphist
+Version: 0.6
+Release: 1
+Source0: %{name}-%{version}.tar.gz
+License: GPL
+Group: Applications/File
+BuildRoot: %{_builddir}/%{name}-root
+Packager: Daniel Tschan <tschan+rpm at devzone.ch>
+URL: http://linux.nawebu.cz/wmcliphist/
+
+%description
+In short, it is clipboard history dockable application for Window Maker
+(and maybe AfterStep with some little modifications - not tested).
+wmcliphist keeps history of clipboard operations and allows you to put
+previously copied items back to clipboard for pasting to other
+applications. I wrote wmcliphist because there was no such application
+suitable for usage in Window Maker and I was confused to run number of
+KDE daemons for Klipper (which was the inspiration).
+
+%prep
+%setup -q
+
+%build
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/bin
+cp -f wmcliphist $RPM_BUILD_ROOT/usr/bin
+mkdir -p $RPM_BUILD_ROOT/usr/share/%{name}
+cp -f .wmcliphistrc $RPM_BUILD_ROOT/usr/share/%{name}/wmcliphistrc.sample
+
+%clean
+if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi
+if [ -d $RPM_BUILD_DIR/%{name}-%{version} ]; then rm -rf $RPM_BUILD_DIR/%{name}-%{version}; fi
+
+%files
+%defattr(-,root,root)
+%attr(0755,root,root) /usr/bin/wmcliphist
+%doc ChangeLog COPYING README AUTHORS NEWS INSTALL
+/usr/share/%{name}/wmcliphistrc.sample
+
+%changelog
+* Sun Aug 24 2003 Michal Krause
+- exec actions can be performed automatically or on demand by middle mouse
+  button click on menu item or by hot key for last captured item (Michael
+  Beattie)
+- wmcliphist can automatically take up clipboard content allowing to paste it
+  when application who copied it ended already
+* Mon Jun 23 2003 Michal Krause
+- brand new icon set made by Daniel Richard G. <skunk at iskunk.org>
+- icon size (60, 40, 30 or 16 pixels) selectable on command line
+* Sun Apr 06 2003 Michal Krause
+- first version containing spec for building RPMs (Daniel Tschan
+  <tschan+rpm at devzone.ch>)
+- fixed locale and zombie bugs (Victor Cheburkin <vc at iptcom.net>)
+- wmcliphist now starts without .wmcliphistrc (Sebastian Ley
+  <sebastian.ley at mmweg.rwth-aachen.de>)
+- permissions of .wmcliphist.data are more secure now (Kresimir Kukulj
+  <madmax at iskon.hr>)
+- fixed buffer overrun bug in reading history (Simon 'corecode' Schubert
+  <corecode at corecode.ath.cx>)
+- keyboard navigation in history menu is possible now
+- icons with antialiasing against dark, mid and light background are now
+  compiled into wmcliphist and it can be choosen on command line (-i)
+- wmcliphist can optionaly ask you to confirm performing of exec action
+  (suggested by Ivica Letunic <Ivica.Letunic at EMBL-Heidelberg.DE>)
+- added hotkey which returns previously captured item back to clipboard. It can
+  safe some keystrokes or mouse clicks in some situation, escpecially if you
+  need clear destination before pasting to it and selecting of its content
+  replaces your data in the clipboard

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmcliphist.git



More information about the Pkg-wmaker-commits mailing list