MirBSD manpage: xmh(1)


XMH(1)              UNIX Programmer's Manual               XMH(1)

NAME

     xmh - send and read mail with an X interface to MH

SYNOPSIS

     xmh [-path mailpath] [-initial foldername] [-flag] [-toolki-
     toption ...]

DESCRIPTION

     The xmh program provides a graphical user interface to the
     MH Message Handling System.  To actually do things with your
     mail, it makes calls to the MH package.  Electronic mail
     messages may be composed, sent, received, replied to, for-
     warded, sorted, and stored in folders.  xmh provides exten-
     sive mechanism for customization of the user interface.

     This document introduces many aspects of the Athena Widget
     Set.

OPTIONS

     -path directory
             This option specifies an alternate collection of
             mail folders in which to process mail.  The direc-
             tory is specified as an absolute pathname. The
             default mail path is the value of the Path component
             in the MH profile, which is determined by the MH
             environment variable and defaults to
             $HOME/.mh_profile.  $HOME/Mail will be used as the
             path if the MH Path is not given in the profile.

     -initial folder
             This option specifies an alternate folder which may
             receive new mail and is initially opened by xmh. The
             default initial folder is ``inbox''.

     -flag   This option will cause xmh to change the appearance
             of appropriate folder buttons and to request the
             window manager to change the appearance of the xmh
             icon when new mail has arrived.  By default, xmh
             will change the appearance of the ``inbox'' folder
             button when new mail is waiting.  The application-
             specific resource checkNewMail can be used to turn
             off this notification, and the -flag option will
             still override it.

     These three options have corresponding application-specific
     resources, MailPath, InitialFolder, and MailWaitingFlag,
     which can be specified in a resource file.

     The standard toolkit command line options are given in X(7).

XFree86                   Version 4.5.0                         1

XMH(1)              UNIX Programmer's Manual               XMH(1)

INSTALLATION

     xmh requires that the user is already set up to use MH, ver-
     sion 6.  To do so, see if there is a file called .mh_profile
     in your home directory.  If it exists, check to see if it
     contains a line that starts with ``Current-Folder''.  If it
     does, you've been using version 4 or earlier of MH; to con-
     vert to version 6, you must remove that line.  (Failure to
     do so causes spurious output to stderr, which can hang xmh
     depending on your setup.)

     If you do not already have a .mh_profile, you can create one
     (and everything else you need) by typing ``inc'' to the
     shell.  You should do this before using xmh to incorporate
     new mail.

     For more information, refer to the mh(1) documentation.

     Much of the user interface of xmh is configured in the Xmh
     application class defaults file; if this file was not
     installed properly a warning message will appear when xmh is
     used.  xmh is backwards compatible with the R4 application
     class defaults file.

     The default value of the SendBreakWidth resource has changed
     since R4.

BASIC SCREEN LAYOUT

     xmh starts out with a single window, divided into four major
     areas:

     -   Six buttons with pull-down command menus.

     -   A collection of buttons, one for each top level folder.
         New users of MH will have two folders, ``drafts'' and
         ``inbox''.

     -   A listing, or Table of Contents, of the messages in the
         open folder. Initially, this will show the messages in
         ``inbox''.

     -   A view of one of your messages.  Initially this is
         blank.

XMH AND THE ATHENA WIDGET SET

     xmh uses the X Toolkit Intrinsics and the Athena Widget Set.
     Many of the features described below (scrollbars, button-
     boxes, etc.) are actually part of the Athena Widget Set, and
     are described here only for completeness.  For more informa-
     tion, see the Athena Widget Set documentation.

XFree86                   Version 4.5.0                         2

XMH(1)              UNIX Programmer's Manual               XMH(1)

     SCROLLBARS
     Some parts of the main window will have a vertical area on
     the left containing a grey bar.  This area is a scrollbar.
     They are used whenever the data in a window takes up more
     space than can be displayed. The grey bar indicates what
     portion of your data is visible. Thus, if the entire length
     of the area is grey, then you are looking at all your data.
     If only the first half is grey, then you are looking at the
     top half of your data. The message viewing area will have a
     horizontal scrollbar if the text of the message is wider
     than the viewing area.

     You can use the pointer in the scrollbar to change what part
     of the data is visible.  If you click with pointer button 2,
     the top of the grey area will move to where the pointer is,
     and the corresponding portion of data will be displayed.  If
     you hold down pointer button 2, you can drag around the grey
     area.  This makes it easy to get to the top of the data:
     just press with button 2, drag off the top of the scrollbar,
     and release.

     If you click with button 1, then the data to the right of
     the pointer will scroll to the top of the window.  If you
     click with pointer button 3, then the data at the top of the
     window will scroll down to where the pointer is.

     BUTTONBOXES, BUTTONS, AND MENUS
     Any area containing many words or short phrases, each
     enclosed in a rectangular or rounded boundary, is called a
     buttonbox. Each rectangle or rounded area is actually a but-
     ton that you can press by moving the pointer onto it and
     pressing pointer button 1. If a given buttonbox has more
     buttons in it than can fit, it will be displayed with a
     scrollbar, so you can always scroll to the button you want.

     Some buttons have pull-down menus. Pressing the pointer but-
     ton while the pointer is over one of these buttons will pull
     down a menu.  Continuing to hold the button down while mov-
     ing the pointer over the menu, called dragging the pointer,
     will highlight each selectable item on the menu as the
     pointer passes over it.  To select an item in the menu,
     release the pointer button while the item is highlighted.

     ADJUSTING THE RELATIVE SIZES OF AREAS
     If you're not satisfied with the sizes of the various areas
     of the main window, they can easily be changed.  Near the
     right edge of the border between each region is a black box,
     called a grip.  Simply point to that grip with the pointer,
     press a pointer button, drag up or down, and release.
     Exactly what happens depends on which pointer button you

XFree86                   Version 4.5.0                         3

XMH(1)              UNIX Programmer's Manual               XMH(1)

     press.

     If you drag with the pointer button 2, then only that border
     will move.  This mode is simplest to understand, but is the
     least useful.

     If you drag with pointer button 1, then you are adjusting
     the size of the window above.  xmh will attempt to compen-
     sate by adjusting some window below it.

     If you drag with pointer button 3, then you are adjusting
     the size of the window below.  xmh will attempt to compen-
     sate by adjusting some window above it.

     All windows have a minimum and maximum size; you will never
     be allowed to move a border past the point where it would
     make a window have an invalid size.

PROCESSING YOUR MAIL

     This section will define the concepts of the selected
     folder, current folder, selected message(s), current mes-
     sage, selected sequence, and current sequence.  Each xmh
     command is introduced.

     For use in customization, action procedures corresponding to
     each command are given; these action procedures can be used
     to customize the user interface, particularly the keyboard
     accelerators and the functionality of the buttons in the
     optional button box created by the application resource Com-
     mandButtonCount.

     FOLDERS AND SEQUENCES
     A folder contains a collection of mail messages, or is
     empty.  xmh supports folders with one level of subfolders.

     The selected folder is whichever foldername appears in the
     bar above the folder buttons.  Note that this is not neces-
     sarily the same folder that is currently being viewed. To
     change the selected folder, just press on the desired folder
     button with pointer button 1; if that folder has subfolders,
     select a folder from the pull-down menu.

     The Table of Contents, or toc, lists the messages in the
     viewed folder. The title bar above the Table of Contents
     displays the name of the viewed folder.

     The toc title bar also displays the name of the viewed
     sequence of messages within the viewed folder. Every folder
     has an implicit ``all'' sequence, which contains all the
     messages in the folder, and initially the toc title bar will

XFree86                   Version 4.5.0                         4

XMH(1)              UNIX Programmer's Manual               XMH(1)

     show ``inbox:all''.

     FOLDER COMMANDS
     The Folder command menu contains commands of a global
     nature:

     Open Folder
             Display the data in the selected folder.  Thus, the
             selected folder also becomes the viewed folder. The
             action procedure corresponding to this command is
             XmhOpenFolder([foldername]). It takes an optional
             argument as the name of a folder to select and open;
             if no folder is specified, the selected folder is
             opened.  It may be specified as part of an event
             translation from a folder menu button or from a
             folder menu, or as a binding of a keyboard accelera-
             tor to any widget other than the folder menu buttons
             or the folder menus.

     Open Folder in New Window
             Displays the selected folder in an additional main
             window. Note, however, that you cannot reliably
             display the same folder in more than one window at a
             time, although xmh will not prevent you from trying.
             The corresponding action is XmhOpenFolderInNewWin-
             dow().

     Create Folder
             Create a new folder. You will be prompted for a name
             for the new folder; to enter the name, move the
             pointer to the blank box provided and type. Subfold-
             ers are created by specifying the parent folder, a
             slash, and the subfolder name.  For example, to
             create a folder named ``xmh'' which is a subfolder
             of an existing folder named ``clients'', type
             ``clients/xmh''. Click on the Okay button when fin-
             ished, or just type Return; click on Cancel to can-
             cel this operation. The action corresponding to
             Create Folder is XmhCreateFolder().

     Delete Folder
             Destroy the selected folder.  You will be asked to
             confirm this action (see CONFIRMATION WINDOWS).
             Destroying a folder will also destroy any subfolders
             of that folder.  The corresponding action is
             XmhDeleteFolder().

     Close Window
             Exits xmh, after first confirming that you won't
             lose any changes; or, if selected from any

XFree86                   Version 4.5.0                         5

XMH(1)              UNIX Programmer's Manual               XMH(1)

             additional xmh window, simply closes that window.
             The corresponding action is XmhClose().

     HIGHLIGHTED MESSAGES, SELECTED MESSAGES

     AND THE CURRENT MESSAGE
     It is possible to highlight a set of adjacent messages in
     the area of the Table of Contents. To highlight a message,
     click on it with pointer button 1. To highlight a range of
     messages, click on the first one with pointer button 1 and
     on the last one with pointer button 3; or press pointer but-
     ton 1, drag, and release. To extend a range of selected mes-
     sages, use pointer button 3. To highlight all messages in
     the table of contents, click rapidly three times with
     pointer button 1. To cancel any selection in the table of
     contents, click rapidly twice.

     The selected messages are the same as the highlighted mes-
     sages, if any.  If no messages are highlighted, then the
     selected messages are considered the same as the current
     message.

     The current message is indicated by a `+' next to the mes-
     sage number.  It usually corresponds to the message
     currently being viewed.  Upon opening a new folder, for
     example, the current message will be different from the
     viewed message. When a message is viewed, the title bar
     above the view will identify the message.

     TABLE OF CONTENTS COMMANDS
     The Table of Contents command menu contains commands which
     operate on the open, or viewed, folder.

     Incorporate New Mail
                       Add any new mail received to viewed
                       folder, and set the current message to be
                       the first new message.  This command is
                       selectable in the menu and will execute
                       only if the viewed folder is allowed to
                       receive new mail. By default, only
                       ``inbox'' is allowed to incorporate new
                       mail. The corresponding action is XmhIn-
                       corporateNewMail().

     Commit Changes    Execute all deletions, moves, and copies
                       that have been marked in this folder.  The
                       corresponding action is XmhCom-
                       mitChanges().

XFree86                   Version 4.5.0                         6

XMH(1)              UNIX Programmer's Manual               XMH(1)

     Pack Folder       Renumber the messages in this folder so
                       they start with 1 and increment by 1.  The
                       corresponding action is XmhPackFolder().

     Sort Folder       Sort the messages in this folder in chro-
                       nological order.  (As a side effect, this
                       may also pack the folder.)  The
                       corresponding action is XmhSortFolder().

     Rescan Folder     Rebuild the list of messages.  This can be
                       used whenever you suspect that xmh's idea
                       of what messages you have is wrong.  (In
                       particular, this is necessary if you
                       change things using straight MH commands
                       without using xmh.)  The corresponding
                       action is XmhForceRescan().

     MESSAGE COMMANDS
     The Message command menu contains commands which operate on
     the selected message(s), or if there are no selected mes-
     sages, the current message.

     Compose Message   Composes a new message.  A new window will
                       be brought up for composition; a descrip-
                       tion of it is given in the COMPOSITION
                       WINDOWS section below. This command does
                       not affect the current message. The
                       corresponding action is XmhComposeMes-
                       sage().

     View Next Message View the first selected message.  If no
                       messages are highlighted, view the current
                       message.  If current message is already
                       being viewed, view the first unmarked mes-
                       sage after the current message. The
                       corresponding action is XmhViewNextMes-
                       sage().

     View Previous     View the last selected message.  If no
                       messages are highlighted, view the current
                       message.  If current message is already
                       being viewed, view the first unmarked mes-
                       sage before the current message. The
                       corresponding action is XmhViewPrevious().

     Delete            Mark the selected messages for deletion.
                       If no messages are highlighted, mark the
                       current message for deletion and automati-
                       cally display the next unmarked message.
                       The corresponding action is

XFree86                   Version 4.5.0                         7

XMH(1)              UNIX Programmer's Manual               XMH(1)

                       XmhMarkDelete().

     Move              Mark the selected messages to be moved
                       into the currently selected folder. (If
                       the selected folder is the same as the
                       viewed folder, this command will just
                       beep.)  If no messages are highlighted,
                       mark the current message to be moved and
                       display the next unmarked message. The
                       corresponding action is XmhMarkMove().

     Copy as Link      Mark the selected messages to be copied
                       into the selected folder.  (If the
                       selected folder is the same as the viewed
                       folder, this command will just beep.)  If
                       no messages are highlighted, mark the
                       current message to be copied.  Note that
                       messages are actually linked, not copied;
                       editing a message copied by xmh will
                       affect all copies of the message. The
                       corresponding action is XmhMarkCopy().

     Unmark            Remove any of the above three marks from
                       the selected messages, or the current mes-
                       sage, if none are highlighted. The
                       corresponding action is XmhUnmark().

     View in New       Create a new window containing only a view
                       of the first selected message, or the
                       current message, if none are highlighted.
                       The corresponding action is XmhViewIn-
                       NewWindow().

     Reply             Create a composition window in reply to
                       the first selected message, or the current
                       message, if none are highlighted. The
                       corresponding action is XmhReply().

     Forward           Create a composition window whose body is
                       initialized to contain an encapsulation of
                       of the selected messages, or the current
                       message if none are highlighted. The
                       corresponding action is XmhForward().

     Use as Composition
                       Create a composition window whose body is
                       initialized to be the contents of the
                       first selected message, or the current
                       message if none are selected. Any changes
                       you make in the composition will be saved
                       in a new message in the ``drafts'' folder,
                       and will not change the original message.

XFree86                   Version 4.5.0                         8

XMH(1)              UNIX Programmer's Manual               XMH(1)

                       However, there is an exception to this
                       rule. If the message to be used as compo-
                       sition was selected from the ``drafts''
                       folder, (see BUGS), the changes will be
                       reflected in the original message (see
                       COMPOSITION WINDOWS).  The action pro-
                       cedure corresponding to this command is
                       XmhUseAsComposition().

     Print             Print the selected messages, or the
                       current message if none are selected. xmh
                       normally prints by invoking the
                       enscript(1) command, but this can be cus-
                       tomized with the xmh application-specific
                       resource PrintCommand. The corresponding
                       action is XmhPrint().

     SEQUENCE COMMANDS
     The Sequence command menu contains commands pertaining to
     message sequences (See MESSAGE-SEQUENCES), and a list of the
     message-sequences defined for the currently viewed folder.
     The selected message-sequence is indicated by a check mark
     in its entry in the margin of the menu.  To change the
     selected message-sequence, select a new message-sequence
     from the sequence menu.

     Pick Messages     Define a new message-sequence. The
                       corresponding action is XmhPickMessages().

     The following menu entries will be sensitive only if the
     current folder has any message-sequences other than the
     ``all'' message-sequence.

     Open Sequence     Change the viewed sequence to be the same
                       as the selected sequence. The correspond-
                       ing action is XmhOpenSequence().

     Add to Sequence   Add the selected messages to the selected
                       sequence. The corresponding action is
                       XmhAddToSequence().

     Remove from Sequence
                       Remove the selected messages from the
                       selected sequence. The corresponding
                       action is XmhRemoveFromSequence().

     Delete Sequence   Remove the selected sequence entirely.
                       The messages themselves are not affected;
                       they simply are no longer grouped together
                       to define a message-sequence.  The

XFree86                   Version 4.5.0                         9

XMH(1)              UNIX Programmer's Manual               XMH(1)

                       corresponding action is XmhDeleteSe-
                       quence().

     VIEW COMMANDS
     Commands in the View menu and in the buttonboxes of view
     windows (which result from the Message menu command View In
     New) correspond in functionality to commands of the same
     name in the Message menu, but they operate on the viewed
     message rather than the selected messages or current mes-
     sage.

     Close Window      When the viewed message is in a separate
                       view window, this command will close the
                       view, after confirming the status of any
                       unsaved edits. The corresponding action
                       procedure is XmhCloseView().

     Reply             Create a composition window in reply to
                       the viewed message. The related action
                       procedure is XmhViewReply().

     Forward           Create a composition window whose body is
                       initialized contain an encapsulation of
                       the viewed message.  The corresponding
                       action is XmhViewForward().

     Use As Composition
                       Create a composition window whose body is
                       initialized to be the contents of the
                       viewed message.  Any changes made in the
                       composition window will be saved in a new
                       message in the ``drafts'' folder, and will
                       not change the original message.  An
                       exception: if the viewed message was
                       selected from the ``drafts'' folder, (see
                       BUGS) the original message is edited. The
                       action procedure corresponding to this
                       command is XmhViewUseAsComposition().

     Edit Message      This command enables the direct editing of
                       the viewed message. The action procedure
                       is XmhEditView().

     Save Message      This command is insensitive until the mes-
                       sage has been edited; when activated,
                       edits will be saved to the original mes-
                       sage in the view. The corresponding action
                       is XmhSaveView().

     Print             Print the viewed message.  xmh prints by

XFree86                   Version 4.5.0                        10

XMH(1)              UNIX Programmer's Manual               XMH(1)

                       invoking the enscript(1) command, but this
                       can be customized with the application-
                       specific resource PrintCommand. The
                       corresponding action procedure is
                       XmhPrintView().

     Delete            Marks the viewed message for deletion. The
                       corresponding action procedure is
                       XmhViewMarkDelete().

OPTIONS

     The Options menu contains one entry.

     Read in Reverse
          When selected, a check mark appears in the margin of
          this menu entry. Read in Reverse will switch the mean-
          ing of the next and previous messages, and will incre-
          ment to the current message marker in the opposite
          direction.  This is useful if you want to read your
          messages in the order of most recent first. The option
          acts as a toggle; select it from the menu a second time
          to undo the effect.  The check mark appears when the
          option is selected.

COMPOSITION WINDOWS

     Composition windows are created by selecting Compose Message
     from the Message command menu, or by selecting Reply or For-
     ward or Use as Composition from the Message or View command
     menu. These are used to compose mail messages. Aside from
     the normal text editing functions, there are six command
     buttons associated with composition windows:

     Close Window      Close this composition window.  If changes
                       have been made since the most recent Save
                       or Send, you will be asked to confirm los-
                       ing them. The corresponding action is
                       XmhCloseView().

     Send              Send this composition.  The corresponding
                       action is XmhSend().

     New Headers       Replace the current composition with an
                       empty message.  If changes have been made
                       since the most recent Send or Save, you
                       will be asked to confirm losing them. The
                       corresponding action is XmhResetCompose().

     Compose Message   Bring up another new composition window.
                       The corresponding action is

XFree86                   Version 4.5.0                        11

XMH(1)              UNIX Programmer's Manual               XMH(1)

                       XmhComposeMessage().

     Save Message      Save this composition in your drafts
                       folder.  Then you can safely close the
                       composition.  At some future date, you can
                       continue working on the composition by
                       opening the drafts folder, selecting the
                       message, and using the ``Use as Composi-
                       tion'' command. The corresponding action
                       is XmhSave().

     Insert            Insert a related message into the composi-
                       tion.  If the composition window was
                       created with a ``Reply'' command, the
                       related message is the message being
                       replied to, otherwise no related message
                       is defined and this button is insensitive.
                       The message may be filtered before being
                       inserted; see ReplyInsertFilter under
                       APPLICATION RESOURCES for more informa-
                       tion. The corresponding action is XmhIn-
                       sert().

ACCELERATORS

     Accelerators are shortcuts.  They allow you to invoke com-
     mands without using the menus, either from the keyboard or
     by using the pointer.

     xmh defines pointer accelerators for common actions: To
     select and view a message with a single click, use pointer
     button 2 on the message's entry in the table of contents.
     To select and open a folder or a sequence in a single
     action, make the folder or sequence selection with pointer
     button 2.

     To mark the highlighted messages, or current message if none
     have been highlighted, to be moved to a folder in a single
     action, use pointer button 3 to select the target folder and
     simultaneously mark the messages. Similarly, selecting a
     sequence with pointer button 3 will add the highlighted or
     current message(s) to that sequence. In both of these opera-
     tions, the selected folder or sequence and the viewed folder
     or sequence are not changed.

     xmh defines the following keyboard accelerators over the
     surface of the main window, except in the view area while
     editing a message:
          Meta-I         Incorporate New Mail
          Meta-C         Commit Changes
          Meta-R         Rescan Folder
          Meta-P         Pack Folder

XFree86                   Version 4.5.0                        12

XMH(1)              UNIX Programmer's Manual               XMH(1)

          Meta-S         Sort Folder

          Meta-space     View Next Message
          Meta-c         Mark Copy
          Meta-d         Mark Deleted
          Meta-f         Forward the selected or current message
          Meta-m         Mark Move
          Meta-n         View Next Message
          Meta-p         View Previous Message
          Meta-r         Reply to the selected or current message
          Meta-u         Unmark

          Ctrl-V         Scroll the table of contents forward
          Meta-V         Scroll the table of contents backward
          Ctrl-v         Scroll the view forward
          Meta-v         Scroll the view backward

TEXT EDITING COMMANDS

     All of the text editing commands are actually defined by the
     Text widget in the Athena Widget Set. The commands may be
     bound to different keys than the defaults described below
     through the X Toolkit Intrinsics key re-binding mechanisms.
     See the X Toolkit Intrinsics and the Athena Widget Set docu-
     mentation for more details.

     Whenever you are asked to enter any text, you will be using
     a standard text editing interface.  Various control and meta
     keystroke combinations are bound to a somewhat Emacs-like
     set of commands.  In addition, the pointer buttons may be
     used to select a portion of text or to move the insertion
     point in the text.  Pressing pointer button 1 causes the
     insertion point to move to the pointer.  Double-clicking
     button 1 selects a word, triple-clicking selects a line,
     quadruple-clicking selects a paragraph, and clicking rapidly
     five times selects everything.  Any selection may be
     extended in either direction by using pointer button 3.

     In the following, a line refers to one displayed row of
     characters in the window.  A paragraph refers to the text
     between carriage returns.  Text within a paragraph is broken
     into lines for display based on the current width of the
     window. When a message is sent, text is broken into lines
     based upon the values of the SendBreakWidth and SendWidth
     application-specific resources.

     The following keystroke combinations are defined:

     Ctrl-a    Beginning Of Line   Meta-b         Backward Word
     Ctrl-b    Backward Character  Meta-f         Forward Word
     Ctrl-d    Delete Next Character              Meta-iInsert File
     Ctrl-e    End Of Line         Meta-k         Kill To End Of Paragraph

XFree86                   Version 4.5.0                        13

XMH(1)              UNIX Programmer's Manual               XMH(1)

     Ctrl-f    Forward Character   Meta-q         Form Paragraph
     Ctrl-g    Multiply Reset      Meta-v         Previous Page
     Ctrl-h    Delete Previous Character          Meta-yInsert Current Selection
     Ctrl-j    Newline And Indent  Meta-z         Scroll One Line Down
     Ctrl-k    Kill To End Of Line Meta-d         Delete Next Word
     Ctrl-l    Redraw Display      Meta-D         Kill Word
     Ctrl-m    Newline             Meta-h         Delete Previous Word
     Ctrl-n    Next Line           Meta-H         Backward Kill Word
     Ctrl-o    Newline And Backup  Meta-<         Beginning Of File
     Ctrl-p    Previous Line       Meta->         End Of File
     Ctrl-r    Search/Replace Backward            Meta-]Forward Paragraph
     Ctrl-s    Search/Replace Forward             Meta-[Backward Paragraph
     Ctrl-t    Transpose Characters
     Ctrl-u    Multiply by 4       Meta-Delete    Delete Previous Word
     Ctrl-v    Next Page           Meta-Shift DeleteKill Previous Word
     Ctrl-w    Kill Selection      Meta-Backspace Delete Previous Word
     Ctrl-y    Unkill              Meta-Shift BackspaceKill Previous Word
     Ctrl-z    Scroll One Line Up

     In addition, the pointer may be used to copy and paste text:
          Button 1 Down  Start Selection
          Button 1 MotionAdjust Selection
          Button 1 Up    End Selection (copy)

          Button 2 Down  Insert Current Selection (paste)

          Button 3 Down  Extend Current Selection
          Button 3 MotionAdjust Selection
          Button 3 Up    End Selection (copy)

CONFIRMATION DIALOG BOXES

     Whenever you press a button that may cause you to lose some
     work or is otherwise dangerous, a popup dialog box will
     appear asking you to confirm the action.  This window will
     contain an ``Abort'' or ``No'' button and a ``Confirm'' or
     ``Yes'' button.  Pressing the ``No'' button cancels the
     operation, and pressing the ``Yes'' will proceed with the
     operation.

     When xmh is run under a Release 6 session manager it will
     prompt the user for confirmation during a checkpoint opera-
     tion.  The dialog box asks whether any current changes
     should be committed (saved) during the checkpoint.  Respond-
     ing ``Yes'' will have the same effect as pressing the ``Com-
     mit Changes'' or ``Save Message'' buttons in the respective
     folder and view windows.  Responding ``No'' will cause the
     checkpoint to continue successfully to completion without
     actually saving any pending changes.  If the session manager
     disallows user interaction during the checkpoint a ``Yes''
     response is assumed; i.e. all changes will be committed dur-
     ing the checkpoint.

XFree86                   Version 4.5.0                        14

XMH(1)              UNIX Programmer's Manual               XMH(1)

     Some dialog boxes contain messages from MH.  Occasionally
     when the message is more than one line long, not all of the
     text will be visible.  Clicking on the message field will
     cause the dialog box to resize so that you can read the
     entire message.

MESSAGE-SEQUENCES
     An MH message sequence is just a set of messages associated
     with some name. They are local to a particular folder; two
     different folders can have sequences with the same name.
     The sequence named ``all'' is predefined in every folder; it
     consists of the set of all messages in that folder.  As many
     as nine sequences may be defined for each folder, including
     the predefined ``all'' sequence.  (The sequence ``cur'' is
     also usually defined for every folder; it consists of only
     the current message.  xmh hides ``cur'' from the user,
     instead placing a ``+'' by the current message.  Also, xmh
     does not support MH's``unseen'' sequence, so that one is
     also hidden from the user.)

     The message sequences for a folder (including one for
     ``all'') are displayed in the ``Sequence'' menu, below the
     sequence commands. The table of contents (also known as the
     ``toc'') is at any one time displaying one message sequence.
     This is called the ``viewed sequence'', and its name will be
     displayed in the toc title bar after the folder name.  Also,
     at any time one of the sequences in the menu will have a
     check mark next to it.  This is called the ``selected
     sequence''. Note that the viewed sequence and the selected
     sequence are not necessarily the same.  (This all pretty
     much corresponds to the way folders work.)

     The Open Sequence, Add to Sequence, Remove from Sequence,
     and Delete Sequence commands are active only if the viewed
     folder contains message-sequences other than ``all''
     sequence.

     Note that none of the above actually affect whether a mes-
     sage is in the folder.  Remember that a sequence is a set of
     messages within the folder; the above operations just affect
     what messages are in that set.

     To create a new sequence, select the ``Pick'' menu entry.  A
     new window will appear, with lots of places to enter text.
     Basically, you can describe the sequence's initial set of
     messages based on characteristics of the message.  Thus, you
     can define a sequence to be all the messages that were from
     a particular person, or with a particular subject, and so
     on.  You can also connect things up with boolean operators,
     so you can select all things from ``weissman'' with a sub-
     ject containing ``xmh''.

XFree86                   Version 4.5.0                        15

XMH(1)              UNIX Programmer's Manual               XMH(1)

     The layout should be fairly obvious.  The simplest cases are
     the easiest: just point to the proper field and type.  If
     you enter in more than one field, it will only select mes-
     sages which match all non-empty fields.

     The more complicated cases arise when you want things that
     match one field or another one, but not necessarily both.
     That's what all the ``or'' buttons are for.  If you want all
     things with subjects that include ``xmh'' or ``xterm'', just
     press the ``or'' button next to the ``Subject:'' field.
     Another box will appear where you can enter another subject.

     If you want all things either from ``weissman'' or with sub-
     ject ``xmh'', but not necessarily both, select the ``-Or-''
     button.  This will essentially double the size of the form.
     You can then enter ``weissman'' in a from: box on the top
     half, and ``xmh'' in a subject: box on the lower part.

     If you select the ``Skip'' button, then only those messages
     that don't match the fields on that row are included.

     Finally, in the bottom part of the window will appear
     several more boxes. One is the name of the sequence you're
     defining.  (It defaults to the name of the selected sequence
     when ``Pick'' was pressed, or to ``temp'' if ``all'' was the
     selected sequence.)  Another box defines which sequence to
     look through for potential members of this sequence; it
     defaults to the viewed sequence when ``Pick'' was pressed.

     Two more boxes define a date range; only messages within
     that date range will be considered.  These dates must be
     entered in RFC 822-style format: each date is of the form
     ``dd mmm yy hh:mm:ss zzz'', where dd is a one or two digit
     day of the month, mmm is the three-letter abbreviation for a
     month, and yy is a year.  The remaining fields are optional:
     hh, mm, and ss specify a time of day, and zzz selects a time
     zone.  Note that if the time is left out, it defaults to
     midnight; thus if you select a range of ``7 nov 86'' - ``8
     nov 86'', you will only get messages from the 7th, as all
     messages on the 8th will have arrived after midnight.

     ``Date field'' specifies which field in the header to look
     at for this date range; it defaults to ``Date''.  If the
     sequence you're defining already exists, you can optionally
     merge the old set with the new; that's what the ``Yes'' and
     ``No'' buttons are all about. Finally, you can ``OK'' the
     whole thing, or ``Cancel'' it.

     In general, most people will rarely use these features.
     However, it's nice to occasionally use ``Pick'' to find some
     messages, look through them, and then hit ``Delete
     Sequence'' to put things back in their original state.

XFree86                   Version 4.5.0                        16

XMH(1)              UNIX Programmer's Manual               XMH(1)

WIDGET HIERARCHY

     In order to specify resources, it is useful to know the
     hierarchy of widgets which compose xmh.  In the notation
     below, indentation indicates hierarchical structure.  The
     widget class name is given first, followed by the widget
     instance name. The application class name is Xmh.

     The hierarchy of the main toc and view window is identical
     for additional toc and view windows, except that a TopLevel-
     Shell widget is inserted in the hierarchy between the appli-
     cation shell and the Paned widget.

     Xmh xmh
          Paned xmh
               SimpleMenu  folderMenu
                    SmeBSB  open
                    SmeBSB  openInNew
                    SmeBSB  create
                    SmeBSB  delete
                    SmeLine  line
                    SmeBSB  close
               SimpleMenu  tocMenu
                    SmeBSB  inc
                    SmeBSB  commit
                    SmeBSB  pack
                    SmeBSB  sort
                    SmeBSB  rescan
               SimpleMenu  messageMenu
                    SmeBSB  compose
                    SmeBSB  next
                    SmeBSB  prev
                    SmeBSB  delete
                    SmeBSB  move
                    SmeBSB  copy
                    SmeBSB  unmark
                    SmeBSB  viewNew
                    SmeBSB  reply
                    SmeBSB  forward
                    SmeBSB  useAsComp
                    SmeBSB  print
               SimpleMenu  sequenceMenu
                    SmeBSB  pick
                    SmeBSB  openSeq
                    SmeBSB  addToSeq
                    SmeBSB  removeFromSeq
                    SmeBSB  deleteSeq
                    SmeLine  line
                    SmeBSB  all
               SimpleMenu  viewMenu
                    SmeBSB  reply
                    SmeBSB  forward
                    SmeBSB  useAsComp

XFree86                   Version 4.5.0                        17

XMH(1)              UNIX Programmer's Manual               XMH(1)

                    SmeBSB  edit
                    SmeBSB  save
                    SmeBSB  print
               SimpleMenu  optionMenu
                    SmeBSB  reverse
               Viewport.Core  menuBox.clip
                    Box  menuBox
                         MenuButton  folderButton
                         MenuButton  tocButton
                         MenuButton  messageButton
                         MenuButton  sequenceButton
                         MenuButton  viewButton
                         MenuButton  optionButton
               Grip  grip
               Label folderTitlebar
               Grip  grip
               Viewport.Core  folders.clip
                    Box  folders
                         MenuButton  inbox
                         MenuButton  drafts
                              SimpleMenu  menu
                                   SmeBSB <folder_name>
                                        .
                                        .
                                        .

               Grip  grip
               Label  tocTitlebar
               Grip  grip
               Text toc
                    Scrollbar  vScrollbar
               Grip  grip
               Label  viewTitlebar
               Grip  grip
               Text  view
                    Scrollbar  vScrollbar
                    Scrollbar  hScrollbar

     The hierarchy of the Create Folder popup dialog box:

          TransientShell  prompt
               Dialog  dialog
                    Label  label
                    Text  value
                    Command  okay
                    Command  cancel

     The hierarchy of the Notice dialog box, which reports messages from MH:

          TransientShell  notice
               Dialog  dialog
                    Label  label

XFree86                   Version 4.5.0                        18

XMH(1)              UNIX Programmer's Manual               XMH(1)

                    Text  value
                    Command  confirm

     The hierarchy of the Confirmation dialog box:

          TransientShell  confirm
               Dialog  dialog
                    Label  label
                    Command  yes
                    Command  no

     The hierarchy of the dialog box which reports errors:

          TransientShell  error
               Dialog  dialog
                    Label  label
                    Command  OK

     The hierarchy of the composition window:

          TopLevelShell  xmh
               Paned  xmh
                    Label  composeTitlebar
                    Text  comp
                    Viewport.Core  compButtons.clip
                         Box  compButtons
                              Command  close
                              Command  send
                              Command  reset
                              Command  compose
                              Command  save
                              Command  insert

     The hierarchy of the view window:

          TopLevelShell  xmh
               Paned  xmh
                    Label  viewTitlebar
                    Text  view
                    Viewport.Core  viewButtons.clip
                         Box  viewButtons
                              Command  close
                              Command  reply
                              Command  forward
                              Command  useAsComp
                              Command  edit
                              Command  save
                              Command  print
                              Command  delete

     The hierarchy of the pick window:
     (Unnamed widgets have no name.)

XFree86                   Version 4.5.0                        19

XMH(1)              UNIX Programmer's Manual               XMH(1)

          TopLevelShell  xmh
               Paned  xmh
                    Label  pickTitlebar
                    Viewport.Core  pick.clip
                         Form  form
                              Form  groupform
     The first 6 rows of the pick window have identical structure:
                                   Form  rowform
                                        Toggle
                                        Toggle
                                        Label
                                        Text
                                        Command

                                   Form  rowform
                                        Toggle
                                        Toggle
                                        Text
                                        Text
                                        Command
                                   Form  rowform
                                        Command
                    Viewport.core  pick.clip
                         Form  form
                              From  groupform
                                   Form  rowform
                                        Label
                                        Text
                                        Label
                                        Text
                                   Form  rowform
                                        Label
                                        Text
                                        Label
                                        Text
                                        Label
                                        Text
                                   Form  rowform
                                        Label
                                        Toggle
                                        Toggle
                                   Form  rowform
                                        Command
                                        Command

APPLICATION-SPECIFIC RESOURCES
     The application class name is Xmh. Application-specific
     resources are listed below by name. Application-specific
     resource class names always begin with an upper case charac-
     ter, but unless noted, are otherwise identical to the
     instance names given below.

XFree86                   Version 4.5.0                        20

XMH(1)              UNIX Programmer's Manual               XMH(1)

     Any of these options may also be specified on the command
     line by using the X Toolkit Intrinsics resource specifica-
     tion mechanism. Thus, to run xmh showing all message
     headers,
     % xmh -xrm '*HideBoringHeaders:off'

     If TocGeometry, ViewGeometry, CompGeometry, or PickGeometry
     are not specified, then the value of Geometry is used
     instead.  If the resulting height is not specified (e.g.,
     "", "=500", "+0-0"), then the default height of windows is
     calculated from fonts and line counts. If the width is not
     specified (e.g., "", "=x300", "-0+0"), then half of the
     display width is used.  If unspecified, the height of a pick
     window defaults to half the height of the display.

     The following resources are defined:

     banner  A short string that is the default label of the
             folder, Table of Contents, and view.  The default
             shows the program name, vendor, and release.

     blockEventsOnBusy
             Whether to disallow user input and show a busy cur-
             sor while xmh is busy processing a command.  If
             false, the user can `mouse ahead' and type ahead; if
             true, user input is discarded when processing
             lengthy mh commands.  The default is true.

     busyCursor
             The name of the symbol used to represent the posi-
             tion of the pointer, displayed if blockEventsOnBusy
             is true, when xmh is processing a time-consuming
             command. The default is "watch".

     busyPointerColor
             The foreground color of the busy cursor.  Default is
             XtDefaultForeground.

     checkFrequency
             How often to check for new mail, make checkpoints,
             and rescan the Table of Contents, in minutes.  If
             checkNewMail is true, xmh checks to see if you have
             new mail each interval.  If makeCheckpoints is true,
             checkpoints are made every fifth interval.  Also
             every fifth interval, the Table of Contents is
             checked for inconsistencies with the filesystem, and
             rescanned if out of date.  To prevent all of these
             checks from occurring, set CheckFrequency to 0.  The
             default is 1. This resource is retained for backward
             compatibility with user resource files; see also
             checkpointInterval, mailInterval, and rescanInter-
             val.

XFree86                   Version 4.5.0                        21

XMH(1)              UNIX Programmer's Manual               XMH(1)

     checkNewMail
             If true, xmh will check at regular intervals to see
             if new mail has arrived for any of the top level
             folders and any opened subfolders. A visual indica-
             tion will be given if new mail is waiting to be
             incorporated into a top level folder. Default is
             true. The interval can be adjusted with mailInter-
             val.

     checkpointInterval (class Interval)
             Specifies in minutes how often to make checkpoints
             of volatile state, if makeCheckpoints is true. The
             default is 5 times the value of checkFrequency.

     checkpointNameFormat
             Specifies how checkpointed files are to be named.
             The value of this resource will be used to compose a
             file name by inserting the message number as a
             string in place of the required single occurrence of
             `%d'.  If the value of the resource is the empty
             string, or if no `%d' occurs in the string, or if
             "%d" is the value of the resource, the default will
             be used instead.  The default is "%d.CKP".  Check-
             pointing is done in the folder of origin unless an
             absolute pathname is given.  xmh does not assist the
             user in recovering checkpoints, nor does it provide
             for removal of the checkpoint files.

     commandButtonCount
             The number of command buttons to create in a button
             box in between the toc and the view areas of the
             main window.  xmh will create these buttons with the
             names button1, button2 and so on, in a box with the
             name commandBox.   The default is 0. xmh users can
             specify labels and actions for the buttons in a
             private resource file; see the section ACTIONS AND
             INTERFACE CUSTOMIZATION.

     compGeometry
             Initial geometry for windows containing composi-
             tions.

     cursor  The name of the symbol used to represent the
             pointer.  Default is ``left_ptr''.

     debug   Whether or not to print information to stderr as xmh
             runs. Default is false.

     draftsFolder
             The folder used for message drafts.  Default is
             ``drafts''.

XFree86                   Version 4.5.0                        22

XMH(1)              UNIX Programmer's Manual               XMH(1)

     geometry
             Default geometry to use.  Default is none.

     hideBoringHeaders
             If ``on'', then xmh will attempt to skip uninterest-
             ing header lines within messages by scrolling them
             off the top of the view. Default is ``on''.

     initialFolder
             Which folder to display on startup.  May also be set
             with the command-line option -initial.  Default is
             ``inbox''.

     initialIncFile
             The absolute path name of your incoming mail drop
             file. In some installations, for example those using
             the Post Office Protocol, no file is appropriate. In
             this case, initialIncFile should not be specified,
             or may be specified as the empty string, and inc
             will be invoked without a -file argument. By
             default, this resource has no value. This resource
             is ignored if xmh finds an .xmhcheck file; see the
             section on multiple mail drops.

     mailInterval (class Interval)
             Specifies the interval in minutes at which the mail
             should be checked, if mailWaitingFlag or check-
             NewMail is true. The default is the value of check-
             Frequency.

     mailPath
             The full path prefix for locating your mail folders.
             May also be set with the command line option, -path.
             The default is the Path component in the MH profile,
             or ``$HOME/Mail'' if none.

     mailWaitingFlag
             If true, xmh will attempt to set an indication in
             its icon when new mail is waiting to be retrieved.
             If mailWaitingFlag is true, then checkNewMail is
             assumed to be true as well.  The -flag command line
             option is a quick way to turn on this resource.

     makeCheckpoints
             If true, xmh will attempt to save checkpoints of
             volatile edits. The default is false.  The frequency
             of checkpointing is controlled by the resource
             checkpointInterval.  For the location of checkpoint-
             ing, see checkpointNameFormat.

     mhPath  What directory in which to find the MH commands.  If
             a command isn't found in the user's path, then the

XFree86                   Version 4.5.0                        23

XMH(1)              UNIX Programmer's Manual               XMH(1)

             path specified here is used. Default is
             ``/usr/local/mh6''.

     newMailBitmap (class NewMailBitmap)
             The bitmap to show in the folder button when a
             folder has new mail. The default is ``black6''.

     newMailIconBitmap (class NewMailBitmap)
             The bitmap suggested to the window manager for the
             icon when any folder has new mail.  The default is
             ``flagup''.

     noMailBitmap (class NoMailBitmap)
             The bitmap to show in the folder button when a
             folder has no new mail. The default is ``box6''.

     noMailIconBitmap (class NoMailBitmap)
             The bitmap suggested to the window manager for the
             icon when no folders have new mail.  The default is
             ``flagdown''.

     pickGeometry
             Initial geometry for pick windows.

     pointerColor
             The foreground color of the pointer.  Default is
             XtDefaultForeground.

     prefixWmAndIconName
             Whether to prefix the window and icon name with
             "xmh: ".  Default is true.

     printCommand
             An sh command to execute to print a message.  Note
             that stdout and stderr must be specifically
             redirected.  If a message or range of messages is
             selected for printing, the full file paths of each
             message file are appended to the specified print
             command.  The default is ``enscript >/dev/null
             2>/dev/null''.

     replyInsertFilter
             An sh command to be executed when the Insert button
             is activated in a composition window.  The full path
             and filename of the source message is appended to
             the command before being passed to sh(1). The
             default filter is cat; i.e. it inserts the entire
             message into the composition.  Interesting filters
             are: sed 's/^/> /' or awk -e '{print "    " $0}' or
             <mh directory>/lib/mhl -form mhl.body.

XFree86                   Version 4.5.0                        24

XMH(1)              UNIX Programmer's Manual               XMH(1)

     rescanInterval (class Interval)
             How often to check the Table of Contents of
             currently viewed folders and of folders with mes-
             sages currently being viewed, and to update the
             Table of Contents if xmh sees inconsistencies with
             the filesystem in these folders. The default is 5
             times the value of checkFrequency.

     reverseReadOrder
             When true, the next message will be the message
             prior to the current message in the table of con-
             tents, and the previous message will be the message
             after the current message in the table of contents.
             The default is false.

     sendBreakWidth
             When a message is sent from xmh, lines longer than
             this value will be split into multiple lines, each
             of which is no longer than SendWidth. This value may
             be overridden for a single message by inserting an
             additional line in the message header of the form
             SendBreakWidth: value.  This line will be removed
             from the header before the message is sent. The
             default is 2000 (to allow for sending mail contain-
             ing source patches).

     sendWidth
             When a message is sent from xmh, lines longer than
             SendBreakWidth characters will be split into multi-
             ple lines, each of which is no longer than this
             value. This value may be overridden for a single
             message by inserting an additional line in the mes-
             sage header of the form SendWidth: value.  This line
             will be removed from the header before the message
             is sent. The default is 72.

     showOnInc
             Whether to automatically show the current message
             after incorporating new mail.  Default is true.

     skipCopied
             Whether to skip over messages marked for copying
             when using ``View Next Message'' and ``View Previous
             Message''.  Default is true.

     skipDeleted
             Whether to skip over messages marked for deletion
             when using ``View Next Message'' and ``View Previous
             Message''.  Default is true.

     skipMoved
             Whether to skip over messages marked for moving to

XFree86                   Version 4.5.0                        25

XMH(1)              UNIX Programmer's Manual               XMH(1)

             other folders when using ``View Next Message'' and
             ``View Previous Message''.  Default is true.

     stickyMenu
             If true, when popup command menus are used, the most
             recently selected entry will be under the cursor
             when the menu pops up.  Default is false. See the
             file clients/xmh/Xmh.sample for an example of how to
             specify resources for popup command menus.

     tempDir Directory for xmh to store temporary files.  For
             privacy, a user might want to change this to a
             private directory.  Default is ``/tmp''.

     tocGeometry
             Initial geometry for main xmh toc and view windows.

     tocPercentage
             The percentage of the main window that is used to
             display the Table of Contents.  Default is 33.

     tocWidth
             How many characters to generate for each message in
             a folder's table of contents.  Default is 100.  Use
             less if the geometry of the main xmh window results
             in the listing being clipped at the right hand boun-
             dary, or if you plan to use mhl a lot, because it
             will be faster, and the extra characters may not be
             useful.

     viewGeometry
             Initial geometry for windows showing a view of a
             message.

MULTIPLE MAIL DROPS

     Users may need to incorporate mail from multiple spool files
     or mail drops. If incoming mail is forwarded to the MH slo-
     cal program, it can be sorted as specified by the user into
     multiple incoming mail drops. Refer to the MH man page for
     slocal to learn how to specify forwarding and the automatic
     sorting of incoming mail in a .maildelivery file.

     To inform xmh about the various mail drops, create a file in
     your home directory called .xmhcheck.  In this file, a map-
     ping between existing folder names and mail drops is created
     by giving a folder name followed by the absolute pathname of
     the mail drop site, with some white space separating them,
     one mapping per line.  xmh will read this file whether or
     not resources are set for notification of new mail arrival,
     and will allow incorporation of new mail into any folder
     with a mail drop. xmh will invoke inc with the -file

XFree86                   Version 4.5.0                        26

XMH(1)              UNIX Programmer's Manual               XMH(1)

     argument, and if xmh has been requested to check for new
     mail, it will check directly, instead of using msgchk.

     An example of .xmhcheck file format, for the folders
     ``inbox'' and ``xpert'':
     inbox     /usr/spool/mail/converse
     xpert     /users/converse/maildrops/xpert

ACTIONS AND INTERFACE CUSTOMIZATION

     Because xmh provides action procedures which correspond to
     command functionality and installs accelerators, users can
     customize accelerators and new button functionality in a
     private resource file. For examples of specifying customized
     resources, see the file mit/clients/xmh/Xmh.sample.  To
     understand the syntax, see the Appendix of the X Toolkit
     Intrinsics specification on Translation Table Syntax, and
     any general explanation of using and specifying X resources.
     Unpredictable results can occur if actions are bound to
     events or widgets for which they were not designed.

     Here's an example of how to bind actions to your own xmh
     buttons, and how to redefine the default accelerators so
     that the Meta key is not required, in case you don't have
     access to the sample file mentioned above.

     ! To create buttons in the middle of the main window and give them semantics:

     Xmh*CommandButtonCount:       5

     Xmh*commandBox.button1.label: Inc
     Xmh*commandBox.button1.translations: #override\
          <Btn1Down>,<Btn1Up>: XmhIncorporateNewMail() unset()

     Xmh*commandBox.button2.label: Compose
     Xmh*commandBox.button2.translations: #override\
          <Btn1Down>,<Btn1Up>: XmhComposeMessage() unset()

     Xmh*commandBox.button3.label: Next
     Xmh*commandBox.button3.translations: #override\
          <Btn1Down>,<Btn1Up>: XmhViewNextMessage() unset()

     Xmh*commandBox.button4.label: Delete
     Xmh*commandBox.button4.translations: #override\
          <Btn1Down>,<Btn1Up>: XmhMarkDelete() unset()

     Xmh*commandBox.button5.label: Commit
     Xmh*commandBox.button5.translations: #override\
          <Btn1Down>,<Btn1Up>: XmhCommitChanges() unset()

     ! To redefine the accelerator bindings to exclude modifier keys,
     ! and add your own keyboard accelerator for Compose Message:

XFree86                   Version 4.5.0                        27

XMH(1)              UNIX Programmer's Manual               XMH(1)

     Xmh*tocMenu.accelerators: #override\n\
          !:<Key>I: XmhIncorporateNewMail()\n\
          !:<Key>C:      XmhCommitChanges()\n\
          !:<Key>R: XmhForceRescan()\n\
          !:<Key>P: XmhPackFolder()\n\
          !:<Key>S: XmhSortFolder()\n
     Xmh*messageMenu.accelerators: #override\n\
          !:<Key>E: XmhComposeMessage()\n\
          !<Key>space:    XmhViewNextMessage()\n\
          !:<Key>c: XmhMarkCopy()\n\
          !:<Key>d: XmhMarkDelete()\n\
          !:<Key>f: XmhForward()\n\
          !:<Key>m: XmhMarkMove()\n\
          !:<Key>n: XmhViewNextMessage()\n\
          !:<Key>p: XmhViewPreviousMessage()\n\
          !:<Key>r: XmhReply()\n\
          !:<Key>u: XmhUnmark()\n

     xmh provides action procedures which correspond to entries
     in the command menus; these are given in the sections
     describing menu commands, not here. In addition to the
     actions corresponding to commands in the menus, these action
     routines are defined:

     XmhPushFolder([foldername, ...])
               This action pushes each of its argument(s) onto a
               stack of foldernames. If no arguments are given,
               the selected folder is pushed onto the stack.

     XmhPopFolder()
               This action pops one foldername from the stack and
               sets the selected folder.

     XmhPopupFolderMenu()
               This action should always be taken when the user
               selects a folder button. A folder button
               represents a folder and zero or more subfolders.
               The menu of subfolders is built upon the first
               reference, by this routine.  If there are no sub-
               folders, this routine will mark the folder as hav-
               ing no subfolders, and no menu will be built.  In
               that case the menu button emulates a toggle but-
               ton.  When subfolders exist, the menu will popup,
               using the menu button action PopupMenu().

     XmhSetCurrentFolder()
               This action allows menu buttons to emulate toggle
               buttons in the function of selecting a folder.
               This action is for menu button widgets only, and
               sets the selected folder.

     XmhLeaveFolderButton()

XFree86                   Version 4.5.0                        28

XMH(1)              UNIX Programmer's Manual               XMH(1)

               This action ensures that the menu button behaves
               properly when the user moves the pointer out of
               the menu button window.

     XmhPushSequence([sequencename, ...])
               This action pushes each of its arguments onto the
               stack of sequence names. If no arguments are
               given, the selected sequence is pushed onto the
               stack.

     XmhPopSequence()
               This action pops one sequence name from the stack
               of sequence names, which then becomes the selected
               sequence.

     XmhPromptOkayAction()
               This action is equivalent to pressing the okay
               button in the Create Folder popup.

     XmhReloadSeqLists()
               This action rescans the contents of the public MH
               sequences for the currently opened folder and
               updates the sequence menu if necessary.

     XmhShellCommand( parameter [, parameter])
               At least one parameter must be specified.  The
               parameters will be concatenated with a space char-
               acter separator, into a single string, and the
               list of selected messages, or if no messages are
               selected, the current message, will be appended to
               the string of parameters.  The string will be exe-
               cuted as a shell command.  The messages are always
               given as absolute pathnames. It is an error to
               cause this action to execute when there are no
               selected messages and no current message.

     XmhCheckForNewMail()
               This action will check all mail drops known to
               xmh.  If no mail drops have been specified by the
               user either through the .xmhcheck file or by the
               initialIncFile resource, the MH command msgchk is
               used to check for new mail, otherwise, xmh checks
               directly.

     XmhWMProtocols([wm_delete_window] [wm_save_yourself])
               This action is responsible for participation in
               window manager communication protocols.  It
               responds to delete window and save yourself mes-
               sages. The user can cause xmh to respond to one or
               both of these protocols, exactly as if the window
               manager had made the request, by invoking the
               action with the appropriate parameters.  The

XFree86                   Version 4.5.0                        29

XMH(1)              UNIX Programmer's Manual               XMH(1)

               action is insensitive to the case of the string
               parameters.  If the event received is a ClientMes-
               sage event and parameters are present, at least
               one of the parameters must correspond to the pro-
               tocol requested by the event for the request to be
               honored by xmh.

CUSTOMIZATION USING MH

     The initial text displayed in a composition window is gen-
     erated by executing the corresponding MH command; i.e. comp,
     repl, or forw, and therefore message components may be cus-
     tomized as specified for those commands.  comp is executed
     only once per invocation of xmh and the message template is
     re-used for every successive new composition.

     xmh uses MH commands, including inc, msgchk, comp, send,
     repl, forw, refile, rmm, pick, pack, sort, and scan. Some
     flags for these commands can be specified in the MH profile;
     xmh may override them.  The application resource debug can
     be set to true to see how xmh uses MH commands.

ENVIRONMENT

     HOME - users's home directory
     MH - to get the location of the MH profile file

FILES

     ~/.mh_profile - MH profile, used if the MH environment vari-
     able is not set
     ~/Mail - directory of folders, used if the MH profile cannot
     be found
     ~/.xmhcheck - optional, for multiple mail drops in coopera-
     tion with slocal.
     /usr/local/mh6 - MH commands, as a last resort, see mhPath.
     ~/Mail/<folder>/.xmhcache - scan output in each folder
     ~/Mail/<folder>/.mh_sequences - sequence definitions, in
     each folder
     /tmp - temporary files, see tempDir.

SEE ALSO

     X(7), xrdb(1), X Toolkit Intrinsics, Athena Widget Set,
     mh(1), enscript(1)
     At least one book has been published about MH and xmh.

BUGS

     - When the user closes a window, all windows which are tran-
     sient for that window should also be closed by xmh.
     - When XmhUseAsComposition and XmhViewUseAsComposition
     operate on messages in the DraftsFolder, xmh disallows edit-
     ing of the composition if the same message is also being
     viewed in another window.

XFree86                   Version 4.5.0                        30

XMH(1)              UNIX Programmer's Manual               XMH(1)

     - Occasionally after committing changes, the table of con-
     tents will appear to be completely blank when there are
     actually messages present. When this happens, refreshing the
     display, or typing Control-L in the table of contents, will
     often cause the correct listing to appear. If this doesn't
     work, force a rescan of the folder.
     - Should recognize and use the ``unseen'' message-sequence.
     - Should determine by itself if the user hasn't used MH
     before, and offer to create the .mh_profile, instead of
     hanging on inc.
     - A few commands are missing (rename folder, resend mes-
     sage).
     - WM_DELETE_WINDOW protocol doesn't work right when request-
     ing deletion of the first toc and view, while trying to keep
     other xmh windows around.
     - Doesn't support annotations when replying to messages.
     - Doesn't allow folders to be shared without write permis-
     sion.
     - Doesn't recognize private sequences.
     - MH will report that the .mh_sequences file is poorly for-
     matted if any sequence definition in a particular folder
     contains more than BUFSIZ characters.  xmh tries to capture
     these messages and display them when they occur, but it can-
     not correct the problem.
     - Should save a temporary checkpoint file rather than
     requiring changes to be committed in the non-shutdown case.

AUTHOR

     Terry Weissman, formerly of Digital Western Research Labora-
     tory
     Donna Converse, MIT X Consortium

XFree86                   Version 4.5.0                        31

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.