xmotd - message-of-the-day browser for X (and dumb terminals, VT100, etc.)
[ X-toolkit options
[ X-toolkit options
or (in text-mode)
[ -stampfile stamp-file
is a utility program (for X11 and dumb terminals) that can be
executed during the login process to display pertinent messages (i.e. the
message of the day) or to periodically check, while the user is logged in,
whether one or more message files have been modified and display them if they
have. Under X11, it displays a customizable bitmap in the top-left corner. It
provides for up to 3 lines of title-text (the length of the text depends on
the size of the font chosen). It has a "Dismiss"
the bitmap and a read-only text-widget that displays the message (or messages)
of the day. The date of the message (and optionally, the filename) is
displayed just above the text.
can be configured to run in various modes: to always pop-up after
login or to pop-up only when the motd changes; to pop-down automatically
(without user-intervention) after a specified delay; to run in the background
and periodically check if the motd has changed and display it. By default,
displays a message only if the file(s) was updated since the last
time the user read it.
has to display more than one file, the user is obliged to press
the "Next Message"
button to view subsequent messages; the
text of the button changes to "Dismiss"
when the last message
defaults to text-only mode (output to stdout
when it cannot
connect to an X display. This mode is useful for running xmotd
file in cases where they can also login via dialup.
This version of xmotd
cannot display messages marked-up with HTML and xpm
colour pixmap logos, because the code that provided that functionality does
not comply with Debian Free Software Guidelines.
is usually run from the system Xsession
file via xdm(1), CDE
login and/or from the user's ~/.login
file. At sites where xdm is not
may be run from the user's ~/.xinitrc
(possibly) malicious user may intentionally or accidentally remove the
invocation from the file.
first runs, it creates a timestamp file (by default called
) in the user's home-directory. On subsequent invocations,
uses the date of this file to decide whether or not the
message-of-the-day (motd) files have been updated. If the date of the motd
file is later than the date on the ~/.xmotd
file, then xmotd
will display the motd file; otherwise it will silently exit (if there are no
more files to be displayed and if -wakeup
was not used). When invoked
, xmotd daemonizes itself and goes to sleep for the
specified sleep-period, periodically waking-up to see if the motds have
changed and then displaying them.
By default, xmotd
pops-down only when the "Dismiss"
button is clicked; the rest of the login-procedure then continues. This
interactive behaviour can be overridden so xmotd
will pop-down without
user intervention, after a specified timeout period.
All the standard X
options are valid. In addition, the following options,
which may also be set as resources in the app-defaults file (See RESOURCES),
overrides xmotd default behavior; the ~/.xmotd time-stamp is
ignored and the message (or messages) is always displayed. Zero-length
(empty) files are displayed when this option is specified.
- -atom atom-name
register xmotd with name atom-name. By default, only one
xmotd is allowed to run (per user). You can permit multiple
instances of xmotd to run by giving each instance an unique name.
xmotd will intern an atom with the X server, that combines the
atom-name and the user's login-id (e.g. "xmotd.elf" ; the
default atom name is "xmotd"); subsequent invocations of
xmotd will check if this atom exists and exit if it does.
- -bitmaplogo bitmap-filename
specifies that the bitmap bitmap-filename is to be displayed in place
of the default bitmap, the "X" logo. Ideally, the specified
bitmap should have a width and height of 100 pixels. If xpm support is
compiled-in, xpm colour pixmaps may be substituted instead. See NOTES for
displays command-line options usage.
(used with -warnfile) displays the warning message unconditionally at
every login (even when there are no messages to be displayed).
- -popdown timeout
exit or pop-down without user intervention, timeout seconds after
being invoked. The user can dismiss xmotd at any time before the
timeout, by clicking on the "Dismiss" button. This option
is only valid at the initial login; it is ignored on subsequent pop-ups
when xmotd is invoked with -wakeup.
displays the filename of the file currently being viewed (as it appears on
the command-line), alongside the date.
- -stampfile stamp-filename
overrides the default timestamp filename, ~/.xmotd, and uses
display the end of a file; the text is automatically scrolled so the end of
the file is visible.
uses local domain-name based time-stamping in cases where user's
home-directories are shared (NFS mounted) across various domains.
Time-stamps are created (and checked) with appropriate domain-names
- -warnfile warning-filename
specifies a file containing a standard message used to warn users of the
consequences of deviance and sundry unlawful things they should not even
think of doing on your network; your network's rules of use,
information about disk quotas, modem charges and printer accounting fees
(used with -paranoid).
- -wakeup sleep-period
causes xmotd to run in the background and wakeup periodically every
sleep-period hours to check whether the files have been modified
and therefore need to be (re-)displayed. The sleep period is specified as
a floating point number where the fractional portion indicates the number
of minutes. For example, a sleep-period of 0.25 indicates 15 minutes (one
quarter of an hour) and a sleep-period of 1.5 indicates one and one-half
hours; the minimum (enforced) sleep-period is 1 minute. The -wakeup
option is useful at sites where users with personal workstations never
log-out. See NOTES for additional details.
- file [file2 ... ]
one or more files to be displayed may be specified. The file(s) contain the
text of the message(s) of the day. If HTML support is compiled-in the motd
files should be marked-up with HTML.
Instead of supplying one or more files on the command-line, xmotd may
be supplied a directory containing file(s) to be displayed.
xmotd will scan the directory and display all the files contained
therein, that need to be displayed. This feature is useful when used with
the -wakeup option; upon waking-up, xmotd will re-scan the
directory for any files (including new files that have been subsequently
added) that need to be displayed.
a geometry option to tell it to pop-up at a location other
than 0,0 and read-in the message-of-the-day from the file
xmotd -geometry +20+20 /usr/local/motd
Use a bigger window (900x600) and automatically position it (at top-left corner
at 20,20), always pop-up xmotd
displaying the contents of
, ignoring the user's ~/.xmotd
pop-down after 20 seconds:
xmotd -geom 900x600+20+20 -always -popdown 20 /usr/local/motd
Use a custom bitmap in the file /usr/local/xmotd.bm
xmotd -geom +5+5 -bitmaplogo /usr/local/xmotd.bm /usr/local/motd
In the following example, all the files in /usr/local/messages/
checked for modification times greater than the time-stamp and only those
files will be displayed and every eight and a half hours, xmotd
check if any files have changed (or new ones added) and display them if
xmotd -geom +5+5 -wakeup 8.5 /usr/local/messages/
To display a warning-message every time the user logs-in (even when no messages
need to be displayed), and to display the filenames of the files being viewed,
xmotd -geom +5+5 -warnfile /usr/local/WARNING -paranoid \
X resources may be changed from the command-line using the -xrm
This example (typed as a single line) illustrates how xmotd
customized exclusively from the command-line:
xmotd -always \
-xrm "*title.label: Top 10 Disk Hogs\n As of midnight\n " \
-xrm "*title.foreground: yellow" \
-xrm "*form.background: red" \
-xrm "*title.background: red" \
-xrm "*logo.background: pink" \
-xrm "*text*font: -adobe-times-bold-*-normal-*-*-180-*" \
-geometry 500x650-1-1 \
-popdown 10 \
editres(1) may be used to edit resources. The application class-name is
The resource: XMotd*Always
(set to either True
equivalent to the -always
The resource: XMotd*Atom
(set to the name of the atom xmotd
registered with) is equivalent to the -atom
The resource: XMotd*BitmapLogo
(set to the path and filename of the
bitmap/pixmap-file) is equivalent to the -bitmaplogo
The resource: XMotd*Browser
(set to the path and filename of the browser
to be used when users click on an URL (HTML version only)) is equivalent to
The resource: XMotd*Paranoid
(set to True/False
) is equivalent to
The resource: XMotd*Popdown
(set to the number of seconds) is equivalent
to the -popdown
The resource: XMotd*UseDomains
(set to True/False
) is equivalent
to the -usedomains
The resource: XMotd*ShowFilename
(set to True/False
) is equivalent
to the -showfilename
The resource: XMotd*Warnfile
(set to the path and filename of the
warning-file) is equivalent to the -warnfile
The resource: XMotd*Tail
(set to True/False
) is equivalent to the
The resource: XMotd*Wakeup
(set to an floating-point number representing
hours) is equivalent to the -wakeup
The resource: XMotd*title.label
(set to a possibly multi-line string) may
be used to customize the title.
By default, the title is the single line: "Message Of The
(the 2-character sequence, "\n"
indicates a carriage-return).
For example, if you want a 2 line title that reads:
This is the
Message of the Day
the resource can be specified as:
*title.label: \ This is the\nMessage of the Day\n\n
Note that the first backslash quotes the leading spaces that indent the words,
"This is the"
The widget hierarchy is as follows (Class-name & object-name):
Text text OR Html text
or, perhaps /usr/X11
For systems running CDE put a script that invokes xmotd
(default timestamp filename)
X(1), xdm(1), editres(1), login(1), xv(l),
gimp(l), xpaint(l), cat(1), less(l)
option is considered fascist; it is provided merely for
completeness and for testing purposes.
If xpm support is compiled-in, xmotd -help
will print the words
for the -bitmaplogo
instead of just "bitmap"
Under dumb-terminal mode, all command-line options are ignored with the
exception of -stampfile
; the -always
is equivalent to cat'ing the motd from the ~/.login
is not really relevant. Both -warnfile
may be simulated with appropriate cat(1) and more(1)
processes invoked with -wakeup
will continue sleeping,
"S" in the ps(1) status field, after the user has logged-out until
the sleep timeout expires. Only when xmotd
wakes-up, will it detect
that the user has logged-out and exit. xmotd
's logout-detection routine
relies on the xdm(1) support scripts GiveConsole
to the user) and TakeConsole
back to root) setting the correct permissions and
ownership on /dev/console
. When xmotd
wakes-up, it attempts to
for reading; if this open fails, it is an
indication that the user has logged out because TakeConsole
ownership of the console.
There are no provisions for displaying embedded images in the HTML version of
(until a stable XmHTML widget is available, or perhaps when
is ported to the GTK).
At least one other.
...and our lives are forever changed
we will never be the same
the more you change the less you feel
-- Tonight, tonight,
"Mellon Collie And The Infinite Sadness"
Billy Corgan, The Smashing Pumpkins
Omnia mutantur, nos et mutamur in illis.
(All things change, and we change with them).
Deliciae Poetarum Germanorum, i. 685
To everything there is a season,
And a time to every purpose under heaven.
Luis Fernandes <firstname.lastname@example.org> is the primary author and maintainer.
Richard Deal <email@example.com> contributed the directory-scanning code.
Stuart A. Harvey <firstname.lastname@example.org> contributed the URL support code
for the HTML version.
David M. Ronis <email@example.com> contributed code to support
Copyright 1993 (as xbanner, no public release)
Copyright 1994-97, 1999, 2001, 2003 Luis A. Fernandes
Permission to use, copy, hack, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting documentation.
This application is presented as is without any implied or written warranty.
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
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., 675 Mass
Ave, Cambridge, MA 02139, USA.
The HTML widget Copyright 1993, Board of Trustees of the University of Illinois.
See the file libhtmlw/HTML.c for the complete text of the NCSA copyright.
NOTE: THE HTML WIDGET IS NOT DISTRIBUTED IN THE "LITE" VERSION OF THE
xmotd DISTRIBUTION, WHICH IS THEREFORE FULLY COMPLIANT WITH THE GPL.