WMMail.app(1) Window Maker Mail.app


WMMail [options ...] [<pathname>]


WMMail.app is a "mail-checker" like xbiff(1x). It indicates the status of the user's mailbox by showing animated XPM icons when incoming mails are detected. Additionally, it can be configured to execute a program on incoming mail and/or on mouse double-clicks, and can provide a count of emails in the user's mailbox.

WMMail.app is based on asmail, a similar applet designed for the AfterStep window manager. However, WMMail.app has been re-written to be compatible with the Window Maker Dock, i.e. WMMail.app can be dragged and dropped on (and off) the Dock dynamically. It also uses a different config file format, more consistent with the one used by Window Maker.

To use WMMail.app with the Window Maker Dock, simply drag the WMMail.app icon to the Window Maker Dock.

To use WMMail.app with another window manager, you may need to use the -s option. This tells WMMail.app to use its main window, rather than leaving it blank and trying to hide it. If a small, empty window appears when you run WMMail.app, try this.


-help, -h
Prints a help message
-quiet, -q
Suppress all error messages
-swallowed, -s
Show window as well as appicon (for swallowing with AfterStep or other window manager).
Full path of defaults domain to use. If none is specified, a series of paths are searched for this file. See the FILES section for more information.


The configuration file consists of a single PropList dictionary, which in turn is composed of several PropList key-value pairs. The recognized keys are:
DisableBeep (Yes|No)
When set to `Yes', WMMail won't make an audible signal when new mail is found.
DoubleClickTime (Int)
WMMail will consider two clicks a double click event if they arrive in less than 'DoubleClickTime' milliseconds appart from each other.
DisplayEachMailbox (Yes|No)
(Experimental) Show name of each mailbox containing new messages along with its message counts. Must be used with Animations!
DisplayMessageCount (None|NewOnly|TotalOnly|NewOverTotal)
None, no message count is displayed; NewOnly, only the new messages count is displayed; TotalOnly, only the total message count is displayed; NewOverTotal, the message count is displayed as 'New/Total'
DisplayColor (Color)
the string name of a color with respect to the screen associated with a colormap. An RGB Device specification is identified by the prefix ``rgb:'' and conforms to the following syntax: rgb:<red>/<green>/<blue>, where each component is of the form hhhh where `h' is a single hexadecimal digit. `h' is scaled to 4 bits, `hh' to 8, `hhh' to 12 and `hhhh' to 16 bits. The forms `#RGB', `#RRGGBB', `#RRRGGGBBB' and `#RRRRGGGGBBBB' are also accepted. An RGB intensity specification is identified by the prefix ``rgbi:'' and conforms to the following syntax: rgbi:<red>/<green>/<blue>, where each componet is a floating point value between 0.0 and 1.0, inclusive.
DisplayFont (Font)
The font used for displaying the count information. `Font' is a standard structured format for font names string. Since it probably contains `*' and or `?', you have to enclose it in double quotes.
ExecuteOnNew (String)
The program (and arguments) to excecute when new mail is found.
ExecuteOnClick (String)
The program (and arguments) to excecute when a double click event is processed.
DisplayLocation (Coordinates)
Specifies the coordinates relative to the lower left corner where the message count is displayed.
Animations (Dictionary)
This dictionary consists in turn of three dictionaries: Empty, Old and New. Each of them can have two entries: Delay and Frames. Delay specifies the number of tenths of seconds to stop between each frame of the animation; Frames is an array that lists all the pixmaps in the animation. You have to specify the full path to the pixmaps. List the pixmaps in the order you want them to be shown. If you do not want an animation, list just one icon.
Mailboxes (Array)
Specifies all the mailboxes WMMail.app should monitor. Each element of the array is a dictionary which varies according to the mailbox type. See the Mailboxes section. The generic keys for each mailbox are Name (string), the name of current mailbox; Type (string), the type of the mailbox; UpdateInterval (int), the number of seconds between updates (default: 15); and Options (dictionary), which are options specific to each mailbox type.


WMMail.app can monitor several types of mailboxes, namely mbox, mh, maildir, pop3 and imap. Each mailbox type takes different options:
Path (string), the path to the mailbox. CheckTimeStampOnly (Yes|No), the state of the mailbox changes according to the following rules: no mailbox or empty mailbox, no mail; smaller than last time but non-zero, old mail; read after most recent write, old mail; no read after most recent write and same size as last time, no change; bigger than last time, new mail. If CheckTimeStampOnly is set to `No', the status changes according to: no mailbox or empty mailbox, no mail; no new mails, old mail; same number of new mails or fewer, no change; more new mails than last time, new mail. MailboxHasInternalData (Yes|No), if set to `Yes' it means there's an "internal data" message stored in the mailbox and it should no be taken into account when computing the total mail count in the mailbox (IMAP daemons write this kind of message for bookkeeping purposes -- and yes, everyone hates them). This option defaults to `No'.
Path (string), the path to the mailbox. The status changes according to: no folder or empty folder, no mail; no new mails, old mail; same number of new mails or fewer, no change; more new mails than last time, new mail.
Path (string), the path to the mailbox. The state is determined in the same way as for mboxes.
Hostname (string), the POP3 server. Username (string), the username on the server. Password (string), the password. Port (int), the port number to use (optional, default is 110).

Hostname (string), the IMAP server. Username (string), the username on the server. Password (string), the password. Port (int), the port number to use (optional, default is 143). Folder (string), the name of the folder to check (optional, default is "INBOX"). UseSelect (Yes|No), use the slower "SELECT" command to examine mailbox if set to `Yes'. May be necessary with some older (broken?) IMAP servers which don't support the default "EXAMINE" command properly (optional, default is `No').


Here is an example of a configuration file.
  DisableBeep = No;
  DoubleClickTime = 250;
  DisplayMessageCount = None;
  DisplayColor = "#FFFFFF";
  DisplayFont = "-*-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*";
  DisplayLocation = (0, 10);
  ExecuteOnClick = "wterm -name mail -e mutt";
  ExecuteOnNew = "play ~/GNUstep/Library/WMMail.app/Sounds/doorbell.au";
  Animations = {
    Empty = {
      Delay = 10;
      Frames = ("~/GNUstep/Library/WMMail.app/Anims/NeXT/Mail1.xpm");
    Old = {
      Delay = 10;
      Frames = ("~/GNUstep/Library/WMMail.app/Anims/NeXT/Mail1.xpm");
    New = {
      Delay = 2;
      Frames = (
  Mailboxes = (
      Name = "Home";
      Type = mbox;
      UpdateInterval = 15;
      Options = {
        CheckTimeStampOnly = No;
        Path = "$(MAIL)";
      Name = "MH Folder";
      Type = mh;
      UpdateInterval = 60;
      Options = {
        Path = "~bryan/Mail/inbox"
      Name = "MailDir Folder";
      Type = maildir;
      UpdateInterval = 15;
      Options = {
        Path = "~bryan/MailDir";
      Name = "School";
      Type = imap;
      UpdateInterval = 300;
      Options = {
        Hostname = "mailserver.school.edu";
        Username = "bryan";
        Password = "secret";
        Folder = "mail/INBOX";

Normally, the status is only updated after a certain amount of time has passed (15 seconds, by default). However, you can force an update by sending a SIGUSR1 signal to wmmail. This can be used, for example, by procmail(1) to notify wmmail that mail has just arrived. Simply add the following to the end of your ~/.procmailrc:

# Notify WMMail.app of the updated inbox
| (sleep 1 && killall -USR1 WMMail) </dev/null &


WMMail.app defaults.
System wide defaults.
WMMail.app's animations are installed here.
WMMail.app's sounds are installed here.


specifies the initial path for the Defaults directory. "Defaults/" is appended to this variable to determine the actual location of the databases. If the varialbe is not set, it defaults to "~/GNUstep"
specifies the location of the system-wide local GNUstep directory (this is useful, for example, in those cases where the system-wide location is really a network wide location). If this variable is empty, GNUSTEP_SYSTEM_ROOT is looked for.
specifies the location of the system-wide GNUstep directory. If this variable is empty, it defaults to /etc/GNUstep


ExecuteOnNewOnce (previously AlwaysNewMailExecute) is broken.

ExecuteOnUpdate is broken.

DisplayEachMailbox crashes if no Animations defined.

With some weird, old combination of OS and X Window, e.g. Solaris with X11R5, SunOS with OpenWindows, etc., the WMMail application icon may not show up when the program is run. If this is the case for you, add the following line to your ~/GNUstep/Defaults/WMWindowAttributes: WMMail = { EmulateAppIcon = Yes; };

With some window managers that have an automatic dock or "slit" (i.e. blackbox or fluxbox), an extra empty window may appear in the dock/slit area. This is harmless, and you can make the window disappear by selecting "restart" from the window manager's menu.


This man page is up-to-date for version 0.64 of WMMail.app.


WMMail.app is based on asmail for the AfterStep window manager (C) 1996, 1997, 1998 by Per Liden <[email protected]> (http://www.rby.hk-r.se/~pt96pli/)

All modifications made to asmail to make it work with Window Maker and further development, (C) 1997, 1998, 1999 by Bryan Chan <[email protected]>. WMMail.app is licensed through the GNU General Public License. Read COPYING for the complete license.

The NeXT-lookalike XPM icons are acquired from an asmail hack by Jon Leffert <[email protected]>.

The notification sounds are acquired from xbiff++, an enhanced xbiff by Mike Wagner <[email protected]> and Jamie Zawinski <[email protected]>.

WMMail.app also contains code from:

Window Maker (http://windowmaker.org/)
Alfredo K. Kojima ([email protected])
Malaprop (http://www.sorted.org/~pete/wmaker)
Peter Bentley ([email protected])
GNU CC (http://fsf.varesearch.com/software/gcc)
Free Software Foundation, Inc.

This manpage was written by Marcelo Magallon <[email protected]> for the Debian Project, and has been maintained and updated by Chris Waters <[email protected]>. This is free documentation; 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.