xmotd(8)

message-of-the-day browser for X (and dumb terminals,

Section 8 xmotd bookworm source

Description

XMOTD

NAME

xmotd - message-of-the-day browser for X (and dumb terminals, VT100, etc.)

SYNOPSIS

xmotd [X-toolkit options] [xmotd-options] file [file2 ... ]

xmotd [X-toolkit options] [xmotd-options] directory

or (in text-mode)

xmotd [-stampfile stamp-file] [-wakeup sleep-period] file [file2 ...]

DESCRIPTION

xmotd 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" button below 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.

xmotd 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, xmotd displays a message only if the file(s) was updated since the last time the user read it.

If xmotd 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 is displayed.

xmotd defaults to text-only mode (output to stdout when it cannot connect to an X display. This mode is useful for running xmotd from user’s ˜/.login 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.

OPERATION

xmotd 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 used, xmotd may be run from the user’s ˜/.xinitrc where a (possibly) malicious user may intentionally or accidentally remove the xmotd invocation from the file.

When xmotd first runs, it creates a timestamp file (by default called .xmotd ) in the user’s home-directory. On subsequent invocations, xmotd 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 with -wakeup, 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.

OPTIONS

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), are available:
-always

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 additional details.

-help

displays command-line options usage.

-paranoid

(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.

-showfilename

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 stamp-filename instead.

-tail

display the end of a file; the text is automatically scrolled so the end of the file is visible.

-usedomains

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 appended.

-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.

directory

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.

EXAMPLES

Give xmotd 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 /usr/local/motd:

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 /usr/local/motd, ignoring the user’s ˜/.xmotd timestamp-file and 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/ will be checked for modification times greater than the time-stamp and only those files will be displayed and every eight and a half hours, xmotd will check if any files have changed (or new ones added) and display them if necessary:

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, use:

xmotd -geom +5+5 -warnfile /usr/local/WARNING -paranoid \
-showfilename /usr/local/motds/

X resources may be changed from the command-line using the -xrm option. This example (typed as a single line) illustrates how xmotd can be 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 \
-bitmaplogo /usr/common/choke.xbm
-popdown 10 \
/usr/common/accounting/top &

RESOURCES

editres(1) may be used to edit resources. The application class-name is XMotd.

The resource: XMotd*Always (set to either True or False) is equivalent to the -always command-line option.

The resource: XMotd*Atom (set to the name of the atom xmotd is registered with) is equivalent to the -atom command-line option.

The resource: XMotd*BitmapLogo (set to the path and filename of the bitmap/pixmap-file) is equivalent to the -bitmaplogo command-line option.

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 -browser command-line option.

The resource: XMotd*Paranoid (set to True/False) is equivalent to the -paranoid command-line option.

The resource: XMotd*Popdown (set to the number of seconds) is equivalent to the -popdown command-line option.

The resource: XMotd*UseDomains (set to True/False) is equivalent to the -usedomains command-line option.

The resource: XMotd*ShowFilename (set to True/False) is equivalent to the -showfilename command-line option.

The resource: XMotd*Warnfile (set to the path and filename of the warning-file) is equivalent to the -warnfile command-line option.

The resource: XMotd*Tail (set to True/False) is equivalent to the -tail command-line option.

The resource: XMotd*Wakeup (set to an floating-point number representing hours) is equivalent to the -wakeup command-line option.

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 Day\n\n\n" (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".

WIDGET HIERARCHY

The widget hierarchy is as follows (Class-name & object-name):
XMotd xmotd
Form form
Label logo
Label title
Label hline
Label info
Command quit
Text text OR Html text

FILES

$ProjectRoot/lib/X11/xdm/Xsession

(where $ProjectRoot is /usr/X11R6 or, perhaps /usr/X11).

For systems running CDE put a script that invokes xmotd in /etc/dt/config/Xsession.d/

$HOME/.xmotd (default timestamp filename)

$HOME/.login

SEE ALSOX(1),xdm(1),editres(1),login(1),xv(l),gimp(l),xpaint(l),cat(1),less(l)NOTESThe-alwaysoptionisconsideredfascist;itisprovidedmerelyforcompletenessandfortestingpurposes.Ifxpmsupportiscompiled-in,xmotd-helpwillprintthewords"bitmap/pixmap"forthe-bitmaplogodescriptioninsteadofjust"bitmap".Underdumb-terminalmode,allcommand-lineoptionsareignoredwiththeexceptionof-stampfileand-wakeup;the-alwaysoptionisequivalenttocat’ingthemotdfromthe˜/.loginfile;and-popdownisnotreallyrelevant.Both-warnfileand-paranoidmaybesimulatedwithappropriatecat(1)andmore(1)commands.xmotdprocessesinvokedwith-wakeupwillcontinuesleeping,"S"intheps(1)statusfield,aftertheuserhaslogged-outuntilthesleeptimeoutexpires.Onlywhenxmotdwakes-up,willitdetectthattheuserhaslogged-outandexit.xmotd’slogout-detectionroutinereliesonthexdm(1)supportscriptsGiveConsole(whichchown’s/dev/consoletotheuser)andTakeConsole(whichchown’s/dev/consolebacktoroot)settingthecorrectpermissionsandownershipon/dev/console.Whenxmotdwakes-up,itattemptstoopen(2)/dev/consoleforreading;ifthisopenfails,itisanindicationthattheuserhasloggedoutbecauseTakeConsolehaschangedownershipoftheconsole.BUGS TherearenoprovisionsfordisplayingembeddedimagesintheHTMLversionofxmotd(untilastableXmHTMLwidgetisavailable,orperhapswhenxmotdisportedtotheGTK).Atleastoneother.QUOTES ...and our lives are forever changedwe will never be the samethe more you change the less you feel--Tonight, tonight,"Mellon Collie And The Infinite Sadness"Billy Corgan, The Smashing PumpkinsOmnia mutantur, nos et mutamur in illis.(All things change, and we change with them).--Matthias Borbonius:Deliciae Poetarum Germanorum, i. 685To everything there is a season,And a time to every purpose under heaven.--Ecclesiastes 3:1-4AUTHORSLuisFernandes<elf@ee.ryerson.ca>istheprimaryauthorandmaintainer.RichardDeal<rdeal@atl.lmco.com>contributedthedirectory-scanningcode.StuartA.Harvey<sharvey@primenet.com>contributedtheURLsupportcodefortheHTMLversion.DavidM.Ronis<ronis@onsager.chem.mcgill.ca>contributedcodetosupportxpmlogos.COPYRIGHTCopyright1993(asxbanner,nopublicrelease)Copyright1994-97,1999,2001,2003LuisA.FernandesPermissiontouse,copy,hack,anddistributethissoftwareanditsdocumentationforanypurposeandwithoutfeeisherebygranted,providedthattheabovecopyrightnoticeappearinallcopiesandthatboththatcopyrightnoticeandthispermissionnoticeappearinsupportingdocumentation.Thisapplicationispresentedasiswithoutanyimpliedorwrittenwarranty.Thisprogramisfreesoftware;youcanredistributeitand/ormodifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedbytheFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyouroption)anylaterversion.Thisprogramisdistributedinthehopethatitwillbeuseful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNUGeneralPublicLicenseformoredetails.YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealongwiththisprogram;ifnot,writetotheFreeSoftwareFoundation,Inc.,675MassAve,Cambridge,MA02139,USA.TheHTMLwidgetCopyright1993,BoardofTrusteesoftheUniversityofIllinois.Seethefilelibhtmlw/HTML.cforthecompletetextoftheNCSAcopyright.NOTE:THEHTMLWIDGETISNOTDISTRIBUTEDINTHE"LITE"VERSIONOFTHExmotdDISTRIBUTION,WHICHISTHEREFOREFULLYCOMPLIANTWITHTHEGPL.

See Also