XMULTIBIFF(1) XMULTIBIFF(1)
02/21/94
NAME
xmultibiff - multiple mailbox and newsgroup biff and reader
SYNOPSIS
xmultibiff [X toolkit options] [-help] [-version] [-horiz] [-poll
seconds] [-header seconds] [-au sound file] [-nobeep] [-names] [-new]
[-bc] [-shortnames] [-last number of messages] [-mail <mailbox
files...>] [-news <newsgroup names...>]
DESCRIPTION
There are many things that separate this biff from all the other X
biffs out there. Xmultibiff has the ability to keep track of multiple
mailboxes and newsgroups and tell you how many unread messages are in
each. It also acts as a mail and news reader. You can click and drag
to whatever mail message or news article you want to see and have it
pop-up in a separate shell window. You can either specify mailbox
files and newsgroups on the command line, in a Xresources file, or set
your MAILPATH and NEWSPATH environment variable (a colon separated
list of files/newsgroups).
There are many more customizable options to Xmultibiff. You can
execute any shell command you specify for a box by clicking on mouse
button 2 in the box. You can have it play a sound file when new mail
comes in or have it make no sound at all. You can specify a name for
any given box, and much more. Almost every option is configurable on
a per-box basis. In general, it is a very extensible biff. Read on
for details on what it can do.
OPTIONS
The following options are recognized:
-help Print a brief help message and exit
-version Print the current version and exit
-poll secs
How often the mailbox files are polled for new mail. If
this is not specified, it will use the MAILCHECK environment
variable.
-header secs
This will display the From: and Subject: lines from incoming
mail messages in a popup window when button 1 is pressed in
the box label. The mail header will also popup
automatically for the amount of time indicated in secs when
new mail arrives. If secs is 0, the mail header will not
pop up when new mail arrives. Clicking in the popup window
when mail arrives (if the argument is non-zero) will
instantly popdown the window. This feature was borrowed
- 1 - Formatted: November 2, 2025
XMULTIBIFF(1) XMULTIBIFF(1)
02/21/94
from xpbiff.
-last num This enables display of, at most, num articles from any
given box when the header window pops up. This only works
when the header option is on.
-au sound file
This will simply cat a Sun audio file to /dev/audio instead
of ringing the bell when new mail arrives.
-horiz This will line up the boxes horizontally
-nobeep This will disable the beep (or sound) when new mail arrives
-new This will only show new (unread) messages in each mailbox.
It has no effect on news groups.
-names Will display the full pathname of all the mailboxes it is
watching.
-shortnames
Will display the file names of all the mailboxes it is
watching.
-bc Enables backward compatibility. This will mean that the
popup headers don't function like "menus" for previewing
messages.
X Options Standard X windows options (e.g. -fn, -display, etc.)
ENVIRONMENT
The names and purpose of the some of the following environment
variables were borrowed from Bash, the GNU Shell.
MAILCHECK
This specifies the amount of seconds to wait in between polling
for mail.
MAILPATH
This is a colon separated list of files to check for mail.
NEWSPATH
This is a colon separated list of newsgroups to monitor.
X DEFAULTS
The application class is XMultibiff. Almost all the arguments above
can be set in the X resource database, allowing for one-time
configuration and eliminating long command lines. The two environment
variables described above take precedence over any X resources that
are specified. Also, any command line arguments take precedence over
- 2 - Formatted: November 2, 2025
XMULTIBIFF(1) XMULTIBIFF(1)
02/21/94
both X resources and environment variables.
The following resources are settable on a per-box basis. When set
with wildcards (for example, XMultibiff*new: TRUE) it will have the
same effect as using the equivalent command line option (-new, in this
case):
new Set to TRUE or FALSE. This will cause only unread messages
in the specified mailbox to be counted.
nobeep Set to TRUE or FALSE. This will cause the specified box to
not beep when new things arrive.
name Set to TRUE or FALSE. This will cause the specified box to
be prefaced with a name.
shortname Set to TRUE or FALSE. This will cause the specified box to
be prefaced with a full path name.
audiofile Set to the path of a sun audio file. This will cause the
specified box to play the specified audio file when new
things arrive.
polltime Set to the time (in seconds) in between polling the box.
headertime
Set to the time (in seconds) to display the header when new
things arrive.
last Set to the maximum number of messages that will pop up in
the header window when new things arrive.
command Specifies a UNIX shell command to be executed by sh when the
middle mouse button is pushed in a box. Take care to escape
characters correctly especially in the .Xdefaults file.
The following resources are settable for each box, but they
don't have command line equivalents:
title Set the name of the specified box. This allows for
customization of the names of the boxes. For example:
XMultibiff*box1.title: foo This will set the box label to
be "foo: <#messages>".
The following resources are settable on a per application basis:
- 3 - Formatted: November 2, 2025
XMULTIBIFF(1) XMULTIBIFF(1)
02/21/94
horiz Set to TRUE or FALSE. Same as the -horiz option.
bc Set to TRUE or FALSE. Same as the -bc option.
mailboxes Set to a colon separated list of mailboxes (files). This is
the same as specifying files on the command line.
newsboxes Set to a colon separated list of news groups. This is the
same as specifying files on the command line.
EXAMPLES
The following examples demonstrate how to configure xmultibiff to do
the same thing from both the command-line and X resources. Although,
for maximum flexibility on a per-box basis, I suggest customizing your
X resources in your .Xdefaults file, making sure to execute % xrdb
-load ~/.Xdefaults after each modification, and then restarting
xmultibiff.
The following example will watch 2 mailboxes in a home directory:
% xmultibiff -mail ~/box1 ~/box2 &
.Xdefaults:
XMultibiff*mailboxes: <home dir>/box1:<home dir>/box2 &
Note: make sure to always specify an absolute pathname!
The following example will watch a mailbox and a newsgroup:
% xmultibiff -mail /usr/spool/mail/you -news comp.windows.x &
.Xdefaults:
XMultibiff*mailboxes: /usr/spool/mail/you
XMultibiff*newsboxes: comp.windows.x
For more detailed examples and instructions on how to specify
different fonts for different boxes, titles for different boxes, and
more customization than you could ever dream of, look in the
"Examples" directory of this distribution.
GRATITUDE
Thanks to Bob Shaw for pointing out some bugs
and feeding me many good ideas.
Thanks to Mike Fleishner for designing such a
cool xmultibiff icon.
Thanks to Bill Pemberton for sending me his
improvements (called "xbuffy") on parsing mail boxes (from Elm
code) that allows the "new" option so that only new mail messages
will be shown.
Thanks to Gregory Gulik for allowing me to use
the code he developed (nntplist.c) to provide the feature that
- 4 - Formatted: November 2, 2025
XMULTIBIFF(1) XMULTIBIFF(1)
02/21/94
watches news groups via NNTP.
Thanks to Michael Kinstrey for adding the "command"
option.
Thanks to Daryl Sayers and Jan Akalla for porting
to SCO and SYSV.
Thanks to Art Mellor for the original function to count the
mail.
Thanks to the GNU Project for the function to parse the
MAILPATH environment variable (from Bash).
Thanks to the authors of xpbiff which gave me most
of the original code to extract the From and Subject lines from
mail messages.
BUGS
The -au option cats a file to /dev/audio. This is a dangerous way to
do it. If someone wants to improve this, please do.
This is really a bizarre thing that will happen with X resources and
not a bug, per se. Because the X resource file is passed through a
pre-processor, there are symbols defined that may interfere with
certain newsgroup names. For example, on a Sun, If I define:
XMultibiff*newsboxes: alt.sys.sun.admin
It will parse to alt.sys.1.admin because "sun" is #define'd to be "1"
in the pre-processor. This will result in the error:
411 No such group
You can get around this by doing "xrdb -Usun -load ~/.Xdefaults
AUTHOR
John Reardon, Midnight Networks Inc., badger@midnight.com
- 5 - Formatted: November 2, 2025