ef546fc369
Obtained from [1] at the request of Nerijus Baliunas [2]. [1] https://web.archive.org/web/20110720231607/http://www.fcoutant.freesurf.fr/download/wmmenu-1.2.tar.gz [2] http://lists.windowmaker.org/dev/msg07991.html
332 lines
12 KiB
Plaintext
332 lines
12 KiB
Plaintext
WHAT IS IT
|
||
----------
|
||
|
||
This is a "dock application" for Windowmaker, that provides a button bar to
|
||
launch applications from.
|
||
|
||
The bar opens automatically when either the mouse enters the button or you
|
||
click on it (this is configurable).
|
||
|
||
Multiple instances of the program can run at the same time: each one provides
|
||
a menu that it reads from a separate file, so you can have as many different
|
||
menus as you want (you can also display the same menu more than once if you
|
||
want; dunno what it's useful for...).
|
||
|
||
REQUIREMENTS
|
||
------------
|
||
|
||
Xlib, Xpm, libdockapp.
|
||
|
||
By default only XPM format icons can be loaded. If you have
|
||
gdk-pixbuf (>= 0.9.0) installed, you can build wmmenu with it and all
|
||
image types supported by gdk-pixbuf will be loadable by wmmenu.
|
||
|
||
NB:
|
||
- gdk-pixbuf 0.8.0 might work, but I didn't check
|
||
- the new gdk-pixbuf (2.0) provided with Gtk+ 2.0 is currently
|
||
broken: the Xlib part doesn't seem to be able to compile
|
||
without Gdk any more, making it useless. I have included
|
||
Makefile definitions so that you can check by yourself (please
|
||
complain to the maintainer(s) of gdk-pixbuf-xlib).
|
||
|
||
LIBDOCKAPP WARNING
|
||
------------------
|
||
|
||
There is a bug in libdockapp-0.4.0: it does not setup the dockapp's title
|
||
correctly, and wmmenu appears as being named "DockApp". This prevents
|
||
using several wmmenus in WMaker's dock.
|
||
|
||
To correct this, apply the following one-change patch:
|
||
|
||
========================================================================
|
||
diff -ru libdockapp-0.4.0.orig/src/damain.c libdockapp-0.4.0/src/damain.c
|
||
--- libdockapp-0.4.0.orig/src/damain.c Mon Feb 14 11:08:04 2000
|
||
+++ libdockapp-0.4.0/src/damain.c Sat May 4 13:59:30 2002
|
||
@@ -67,7 +67,7 @@
|
||
/* Set ClassHint */
|
||
if (!(classHint = XAllocClassHint()))
|
||
printf("%s: can't allocate memory for class hints!\n", progName), exit(1);
|
||
- classHint->res_class = "DockApp";
|
||
+ classHint->res_class = name;
|
||
classHint->res_name = name;
|
||
|
||
XSetClassHint(DADisplay, DALeader, classHint);
|
||
========================================================================
|
||
|
||
I also found my Debian package "libdockapp-dev" version 0.61.1-5 to have a
|
||
bug regarding timers: If you use the hide_timeout option, you should
|
||
definitely recompile your own version.
|
||
|
||
QUICKSTART
|
||
----------
|
||
|
||
1. Make a ".wmmenu" directory in your home directory:
|
||
|
||
mkdir ~/.wmmenu
|
||
|
||
2. You have to make at least one file containing the menu definition. It's
|
||
also strongly advised to make a second file named "defaults", to contain
|
||
general settings such as pixmaps paths.
|
||
The syntax of those files is quite easy (and is detailed below) but as a
|
||
start point you can copy the example files and edit them:
|
||
|
||
[from the sources main directory]
|
||
cp example/[ad]* ~/.wmmenu
|
||
vi ~/.wmmenu/*
|
||
|
||
The menu would then be named "apps".
|
||
|
||
3. The file in ~/.wmmenu you have put a menu definition in, must have its
|
||
name (relative to ~/.wmmenu) passed as argument to wmmenu like this:
|
||
|
||
wmmenu -m apps
|
||
|
||
USAGE
|
||
-----
|
||
|
||
wmmenu [<options>...]
|
||
|
||
-h
|
||
show help message
|
||
-m MENUNAME (mandatory)
|
||
set the name of the menu file to load from ~/.wmmenu
|
||
-g WxH
|
||
set width and height of tile
|
||
-t XPMFILE
|
||
set the pixmap used as tile
|
||
-l XPMFILE
|
||
set the pixmap used as highlight to track pointer
|
||
-O oldleaving
|
||
use old behavior for hiding the button bar: hide only when
|
||
leaving the bar, not when leaving the tile.
|
||
-O click
|
||
activate the button bar only when clicking on the tile, not
|
||
when the mouse moves in and out.
|
||
-O noautoscale
|
||
disable automatic scaling of pixmaps, that makes them fit
|
||
inside specified tile size.
|
||
-O behind
|
||
draw highlight pixmap behind icon, not above.
|
||
-O hide=N
|
||
set the time delay necessary for the bar to close after the
|
||
cursor has left wmmenu. N is specified as a strictly positive
|
||
integer in milliseconds. 1 is used by default.
|
||
-r ROWS
|
||
arrange icons in the bar on multiple rows (specified as the
|
||
number ROWS). The default is one. Icons are arranged leftmost
|
||
from upper left corner.
|
||
|
||
The tile is used in conjunction with transparent pixmaps as a background. When
|
||
drawing the button bar, for each button, the tile is drawn first, then the
|
||
specified icon is drawn over it.
|
||
|
||
The tile also determines the width and height of the button bar, as each
|
||
button pixmap is cut to the size of the tile if it's bigger, or centered over
|
||
it if it's smaller. The height of the bar is the height of the tile, and the
|
||
width of the bar is the width of the tile multiplied by the number of entries
|
||
specified for the displayed menu.
|
||
|
||
I have included a facility to arbitrarily set tile geometry independently of
|
||
the pixmap tile's size, but not sure it's useful.
|
||
|
||
|
||
When run, wmmenu first reads a file named "defaults" in ~/.wmmenu, from which
|
||
it gets settings common to all menus, currently the pixmap path and tile
|
||
and highlight pixmap names. The pixmap path is used to set a list of paths
|
||
from which to search pixmap file names; At each place a pixmap file name is
|
||
requested, you can then use the file name without it's directory prepended
|
||
(leaving only the "basename").
|
||
|
||
The syntax of this file is roughly the following: comments start with # and
|
||
end at the end of the line they start on. Blank lines are allowed and always
|
||
meaningless. Other lines are variable setting and take the form
|
||
<variable><blanks><value> where <blanks> does NOT contain newlines (all this
|
||
must be on the same line). <variable> can be:
|
||
. xpmpath <value> is a colon-separated list of path indicating where to
|
||
search for pixmap files (i.e. /some/path1:/some/path2).
|
||
. tile <value> is the file name of the pixmap to use as tile; Or
|
||
use !<cmd> to specify a command to execute, that will
|
||
return the name of the pixmap file name.
|
||
. highlight <value> is the file name of the pixmap to use for pointer
|
||
tracking
|
||
|
||
Multiple xpmpath definitions can occur and are merged together. A default
|
||
path of ~/.wmmenu is always prepended to the path list.
|
||
|
||
|
||
Then wmmenu reads the file specified by "-m" option from ~/.wmmenu directory.
|
||
This file specifies a list of buttons for the resulting menu, with the pixmap
|
||
to be used for the button and the command to be run when the corresponding
|
||
button is pressed.
|
||
|
||
The syntax is the following: the file is a suite of lines. Each line can be:
|
||
. blank, it is ignored
|
||
. a comment: it starts with # and is ignored too
|
||
. a menu entry: the line is written as "<pixmap>"<blanks><command>.
|
||
|
||
For each menu entry <pixmap> specifies the file name of the pixmap to be used
|
||
for the button, and <command> specifies a shell command to be run when the
|
||
button is pressed. <pixmap> can specify an absolute file name as well as a
|
||
path-less name, in which case it is searched in the pixmap path specified in
|
||
the "defaults" file. <command> usually has & at the end because wmmenu runs it
|
||
synchronously (it waits for its termination); since this is run by the shell
|
||
you can also use redirections and all sort of things if you want to. You are
|
||
free to embed blanks in <command> as well as <pixmap>, since the syntax has
|
||
been done to allow it; you can also use double-quotes in <command>, though
|
||
obviously you cannot use them for the name of the pixmap file.
|
||
|
||
Finally the first entry defined is not used as a command button but for wmmenu
|
||
itself. The <pixmap> of this first entry is used as dockapp icon, and in the
|
||
future it's <command> will be used as title appearing in WindowMaker's dockapp
|
||
balloon.
|
||
|
||
STATUS
|
||
------
|
||
|
||
1.2 2002/05/04
|
||
|
||
(Thanks to Daniel D<>chelotte for many bug fixes, patches and
|
||
suggestions)
|
||
|
||
New behaviour:
|
||
- also show the bar when entering the dockapp's tile. Hide it
|
||
after cursor has left all wmmenu windows (bar, icon or tile).
|
||
- as a side effect, "oldleaving" option has been removed.
|
||
|
||
Corrections:
|
||
- remove flicker when cursor goes from icon/tile to bar and
|
||
vice-versa.
|
||
- forgot to remove highlight pixmap when cursor leaves bar with
|
||
"-O click" behaviour.
|
||
- fixed "garbaged" highlight effects after menu file changes
|
||
- don't paint highlight pixmap on empty bar slots (those can occur
|
||
when spreading menu entries over several rows).
|
||
- don't crash when WM terminates (or changes). Gracefully handles
|
||
dock-less WM. (useful when I try new WMs)
|
||
- some updates to README (and warnings about libdockapp)
|
||
|
||
1.1 2002/04/14
|
||
|
||
New feature:
|
||
- the tile can now be specified by the value returned by an
|
||
external command. A sample script, extract_icon_back, is
|
||
provided to get the icon pixmap used by WindowMaker.
|
||
NB: this command is only used once at startup.
|
||
|
||
Correction:
|
||
- default tile pixmap is now also used when no tile pixmap is
|
||
specified at all (or an empty one).
|
||
|
||
1.0 2002/03/23
|
||
|
||
New feature: if you want to use a highlight pixmap that's designed
|
||
to cover most of tile's surface, current highlighting is not
|
||
adequate, because the highlight pixmap is drawn OVER other pixmaps.
|
||
A new drawing mechanism has been added to draw it BEHIND other menu
|
||
icons.
|
||
|
||
Added option "-O behind" to trigger this behaviour.
|
||
Also added "highlight_behind" directive in the defaults file, which
|
||
also triggers this behaviour.
|
||
Updated the sample defaults file.
|
||
Updated man page to reflect changes (have a look at it for details).
|
||
|
||
Corrections:
|
||
- Disable autoscaling of the dockapp icon (didn't scale to the
|
||
appropriate size), until someone tells me how wmmenu/libdockapp
|
||
is supposed to work in case it's too big.
|
||
(reported by Daniel D<>chelotte)
|
||
|
||
NB: gdk-pixbuf 2.0 (provided with Gtk+ 2.0) is currently not
|
||
compatible with wmmenu (see REQUIREMENTS section).
|
||
|
||
0.9 2001/10/20
|
||
|
||
When using the gdk-pixbuf enabled version, pixmaps larger than tile
|
||
(either the tile pixmap itself, or the size specified on command
|
||
line) are automatically scaled to fit within the requested size.
|
||
This affects the dock icon, tile, highlight and application icons.
|
||
If you like pixmaps overriding each other (gasp!), this can be
|
||
disabled with "-O noautoscale".
|
||
|
||
Through the "highlight" feature you can set a pixmap, that is drawn
|
||
over the menu item currently designated by the pointer, and that
|
||
follows it. This allows one to know for sure, which item will be
|
||
launched if clicked. A pixmap "target-white.xpm" is provided as a
|
||
sample: try adding its path after "-l" option on your wmmenu's
|
||
command line.
|
||
|
||
Pixmap file names and xpmpath elements accept "~/" at their
|
||
beginning, to refer to your home directory (this was suggested a
|
||
long time ago).
|
||
|
||
I have written a man page (thanks to manedit).
|
||
|
||
0.8 2001/06/16
|
||
|
||
Speedup startup by providing a different color allocation routine
|
||
to gdk-pixbuf. (Startup speedup is observed with gdk-pixbuf;
|
||
Patch from Lukasz Pankowski)
|
||
|
||
0.7 2001/04/21
|
||
|
||
Integrated "multi-rows" patch from Lukasz Pankowski: icons can be
|
||
arranged in multiple rows on the button bar. For this you have to
|
||
specify "-r ROWS" on command line.
|
||
|
||
0.6 2001/03/24
|
||
|
||
Added click-only behavior with "-O click" option.
|
||
(Thanks to Matthew Gabeler-Lee for his patch)
|
||
|
||
0.5 2001/02/03
|
||
|
||
The button bar is now hidden when the cursor leaves the dockapp
|
||
tile, and not only when it leaves the button bar (behavior
|
||
suggested by Guido Falsi).
|
||
|
||
I added an option the get the previous behavior. Please report
|
||
whether you need it, else it will disappear in next releases since
|
||
I consider the new behavior to be more user firendly.
|
||
|
||
0.4 2000/12/30
|
||
|
||
Simplify gdk-pixbuf selection as build option in Makefile.
|
||
|
||
New feature: automatic menu reloading on menu file change.
|
||
Default icons are used for app and tile when specified pixmap is not
|
||
found or not loadable (helps to not exit prematurely when doing
|
||
changes).
|
||
|
||
0.3 2000/11/01
|
||
|
||
Optionally (choice made at compile-time) use gdk-pixbuf(-xlib) to load
|
||
images. This provides loading ability for many image types: BMP, GIF,
|
||
ICO, JPEG, PNG, PNM, RAS, TIFF and XPM (on my host at least). Don't
|
||
forget that transparency is not available with BMP, PNM and (?) RAS.
|
||
|
||
Caveat: may not work very well on pseudo-color displays (not tested)
|
||
because of bad (blind) color allocation strategy. This was already
|
||
the case with libXpm, so it's not a so great change.
|
||
|
||
0.2 2000/08/05
|
||
|
||
install target in Makefile.
|
||
Accept multiple xpmpath specifications in defaults file, they are
|
||
appended to each other.
|
||
More documentation (and more explicit on usage).
|
||
Missing Xext link library on some systems.
|
||
|
||
0.1 2000/06/25
|
||
|
||
First public release.
|
||
|
||
COPYRIGHT
|
||
---------
|
||
|
||
This software is copyright (c)2000 F.COUTANT, and is placed under the GNU
|
||
General Public License (GPL), which is given in the file COPYING.
|
||
|
||
E-mail: fcoutant@freesurf.fr
|
||
|