<HTML>
<HEAD>
<TITLE> xmh - send and read mail with an X interface to MH </TITLE>
</HEAD>
<BODY>
<PRE>



XMH(1)							   XMH(1)


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

SYNOPSIS
       xmh   [-path   mailpath]	  [-initial  foldername]  [-flag]
       [-toolkitoption ...]

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,
       forwarded, sorted, and stored in	 folders.   xmh	 provides
       extensive  mechanism  for customization of the user inter
       face.

       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  compo
	       nent 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  appear
	       ance  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 MailWait
       ingFlag, which can be specified in a resource file.

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





X Version 11		   Release 6.1				1





XMH(1)							   XMH(1)


INSTALLATION
       xmh  requires  that  the user is already set up to use MH,
       version 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 ear
       lier of MH; to convert 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  incor
       porate 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 applica
       tion 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  mes
	   sages 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,
       buttonboxes, etc.) are actually part of the Athena  Widget
       Set,  and  are  described here only for completeness.  For



X Version 11		   Release 6.1				2





XMH(1)							   XMH(1)


       more information, see the Athena Widget Set documentation.


   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
       button  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
       button while the pointer is over one of these buttons will
       pull  down  a  menu.   Continuing  to hold the button down
       while moving 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



X Version 11		   Release 6.1				3





XMH(1)							   XMH(1)


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

       If you drag with the pointer button 2, then only that bor
       der  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 CommandButtonCount.


   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 nec
       essarily 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



X Version 11		   Release 6.1				4





XMH(1)							   XMH(1)


       all the messages in the	folder,	 and  initially	 the  toc
       title bar will 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	 accelerator 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	 XmhOpen
	       FolderInNewWindow().

       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.
	       Subfolders 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  finished, or just type Return;
	       click on Cancel to  cancel  this	 operation.   The
	       action  corresponding  to Create Folder is XmhCre
	       ateFolder().


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






X Version 11		   Release 6.1				5





XMH(1)							   XMH(1)


       Close Window
	       Exits xmh, after first confirming that  you  won't
	       lose  any  changes; or, if selected from any addi
	       tional 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  mes
       sage,  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 button 1, drag, and release.   To	extend	a
       range  of  selected  messages,  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  cur
       rently being viewed.  Upon opening a new folder, for exam
       ple, 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  exe
			 cute	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 XmhIncorporateNewMail().

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




X Version 11		   Release 6.1				6





XMH(1)							   XMH(1)


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

       Sort Folder	 Sort  the  messages  in  this	folder in
			 chronological 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
       messages, the current message.


       Compose Message	 Composes  a  new  message.  A new window
			 will be brought up  for  composition;	a
			 description of it is given in the COMPO
			 SITION WINDOWS section below.	This com
			 mand  does  not  affect the current mes
			 sage.	The corresponding action is  Xmh
			 ComposeMessage().


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


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


       Delete		 Mark the selected messages for deletion.
			 If no messages are highlighted, mark the



X Version 11		   Release 6.1				7





XMH(1)							   XMH(1)


			 current  message  for deletion and auto
			 matically display the next unmarked mes
			 sage.	 The corresponding action is Xmh
			 MarkDelete().


       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 mes
			 sage.	The corresponding action is  Xmh
			 MarkCopy().


       Unmark		 Remove any of the above three marks from
			 the selected messages,	 or  the  current
			 message,  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  high
			 lighted.   The	 corresponding	action is
			 XmhViewInNewWindow().


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


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



X Version 11		   Release 6.1				8





XMH(1)							   XMH(1)


       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.	However, there is
			 an  exception to this rule.  If the mes
			 sage  to  be  used  as	 composition  was
			 selected  from	 the  ``drafts''  folder,
			 (see  BUGS),	the   changes	will   be
			 reflected  in	the original message (see
			 COMPOSITION WINDOWS).	The action proce
			 dure  corresponding  to  this command is
			 XmhUseAsComposition().


       Print		 Print the selected messages, or the cur
			 rent  message if none are selected.  xmh
			 normally   prints   by	  invoking    the
			 enscript(1)  command,	but  this  can be
			 customized  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 mes
       sage-sequence from the sequence menu.


       Pick Messages	 Define a new message-sequence.	 The cor
			 responding  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 cor
			 responding action is  XmhOpenSequence().


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




X Version 11		   Release 6.1				9





XMH(1)							   XMH(1)


       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  corresponding action is
			 XmhDeleteSequence().


   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  cur
       rent message.


       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 correspond
			 ing 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 mes
			 sage.	An exception: if the viewed  mes
			 sage  was  selected  from the ``drafts''
			 folder, (see BUGS) the original  message
			 is  edited.  The action procedure corre
			 sponding to this command is  XmhViewUse
			 AsComposition().

       Edit Message	 This  command enables the direct editing
			 of  the  viewed  message.   The   action



X Version 11		   Release 6.1			       10





XMH(1)							   XMH(1)


			 procedure is XmhEditView().

       Save Message	 This  command	is  insensitive until the
			 message 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
			 invoking the  enscript(1)  command,  but
			 this can be customized with the applica
			 tion-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 meaning of the next and previous messages,  and
	      will increment 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  Mes
       sage  from the Message command menu, or by selecting Reply
       or Forward 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 losing them.  The correspond
			 ing action is XmhCloseView().


       Send		 Send  this composition.  The correspond
			 ing action is XmhSend().




X Version 11		   Release 6.1			       11





XMH(1)							   XMH(1)


       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	  XmhCom
			 poseMessage().


       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 Com
			 position''  command.	The corresponding
			 action is XmhSave().


       Insert		 Insert a related message into the compo
			 sition.   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 insensi
			 tive.	 The  message  may  be	 filtered
			 before	 being inserted; see ReplyInsert
			 Filter under APPLICATION  RESOURCES  for
			 more	information.   The  corresponding
			 action is XmhInsert().


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



X Version 11		   Release 6.1			       12





XMH(1)							   XMH(1)


       both  of these operations, 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
	    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 documentation 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 but
       tons  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.  Dou
       ble-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 bro
       ken  into  lines for display based on the current width of
       the window.  When a message is sent, text is  broken  into



X Version 11		   Release 6.1			       13





XMH(1)							   XMH(1)


       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
       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-&lt;	    Beginning Of File
       Ctrl-p	 Previous Line	     Meta-&gt;	    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 ``Con
       firm'' or ``Yes'' button.  Pressing the ``No'' button can
       cels  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 oper
       ation.  The dialog box asks whether  any	 current  changes
       should	be   committed	(saved)	 during	 the  checkpoint.
       Responding ``Yes'' will have the same effect  as	 pressing



X Version 11		   Release 6.1			       14





XMH(1)							   XMH(1)


       the  ``Commit Changes'' or ``Save Message'' buttons in the
       respective folder and  view  windows.   Responding  ``No''
       will cause the checkpoint to continue successfully to com
       pletion 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 during the checkpoint.

       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 associ
       ated 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 fold
       ers 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.



X Version 11		   Release 6.1			       15





XMH(1)							   XMH(1)


       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 subject containing ``xmh''.

       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
       messages 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 ``Sub
       ject:'' field.  Another box  will  appear  where	 you  can
       enter another subject.

       If  you	want  all things either from ``weissman'' or with
       subject ``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  mes
       sages  that  don't  match  the  fields  on  that	 row  are
       included.

       Finally, in the bottom part of the window will appear sev
       eral  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.



X Version 11		   Release 6.1			       16





XMH(1)							   XMH(1)


       ``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  option
       ally  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.


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
       TopLevelShell widget is inserted in the hierarchy  between
       the application 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



X Version 11		   Release 6.1			       17





XMH(1)							   XMH(1)


		      SmeBSB  pick
		      SmeBSB  openSeq
		      SmeBSB  addToSeq
		      SmeBSB  removeFromSeq
		      SmeBSB  deleteSeq
		      SmeLine  line
		      SmeBSB  all
		 SimpleMenu  viewMenu
		      SmeBSB  reply
		      SmeBSB  forward
		      SmeBSB  useAsComp
		      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 &lt;folder_name&gt;
					  .
					  .
					  .

		 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



X Version 11		   Release 6.1			       18





XMH(1)							   XMH(1)


		      Text  value
		      Command  okay
		      Command  cancel

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

	    TransientShell  notice
		 Dialog	 dialog
		      Label  label
		      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



X Version 11		   Release 6.1			       19





XMH(1)							   XMH(1)


				Command	 edit
				Command	 save
				Command	 print
				Command	 delete

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

	    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





X Version 11		   Release 6.1			       20





XMH(1)							   XMH(1)


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 char
       acter, but unless noted, are otherwise  identical  to  the
       instance names given below.

       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  PickGeome
       try  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
	       cursor 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  blockEventsOn
	       Busy  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



X Version 11		   Release 6.1			       21





XMH(1)							   XMH(1)


	       is  true,  checkpoints are made every fifth inter
	       val.  Also every fifth interval, the Table of Con
	       tents is checked for inconsistencies with the file
	       system, and rescanned if out of date.  To  prevent
	       all  of these checks from occurring, set CheckFre
	       quency to 0.  The default is 1.	This resource  is
	       retained	 for  backward	compatibility  with  user
	       resource files; see also checkpointInterval, mail
	       Interval, and rescanInterval.


       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
	       indication 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  mail
	       Interval.


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


       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 occurance
	       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".  Checkpointing is done in the folder  of
	       origin  unless an absolute pathname is given.  xmh
	       does not assist	the  user  in  recovering  check
	       points,	nor  does  it  provide for removal of the
	       checkpoint files.


       commandButtonCount
	       The number of command buttons to create in a  but
	       ton  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  sec
	       tion ACTIONS AND INTERFACE CUSTOMIZATION.




X Version 11		   Release 6.1			       22





XMH(1)							   XMH(1)


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


       geometry
	       Default geometry to use.	 Default is none.


       hideBoringHeaders
	       If  ``on'', then xmh will attempt to skip uninter
	       esting 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  appro
	       priate.	 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
	       checkNewMail is true.  The default is the value of
	       checkFrequency.






X Version 11		   Release 6.1			       23





XMH(1)							   XMH(1)


       mailPath
	       The  full path prefix for locating your mail fold
	       ers.  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  fre
	       quency  of  checkpointing  is  controlled  by  the
	       resource checkpointInterval.  For the location  of
	       checkpointing, 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  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.



X Version 11		   Release 6.1			       24





XMH(1)							   XMH(1)


       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  redi
	       rected.	 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 but
	       ton 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.   Inter
	       esting  filters	are:  sed  's/^/&gt;  /'  or  awk -e
	       '{print "     "	$0}'  or  &lt;mh  directory&gt;/lib/mhl
	       -form mhl.body.


       rescanInterval (class Interval)
	       How  often  to check the Table of Contents of cur
	       rently viewed folders and of folders with messages
	       currently being viewed, and to update the Table of
	       Contents if xmh sees inconsistencies with the file
	       system  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  mes
	       sage  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



X Version 11		   Release 6.1			       25





XMH(1)							   XMH(1)


	       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 containing source patches).


       sendWidth
	       When a message is sent from xmh, lines longer than
	       SendBreakWidth  characters will be split into mul
	       tiple 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
	       message 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 Previ
	       ous Message''.  Default is true.


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


       skipMoved
	       Whether to skip over messages marked for moving to
	       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''.




X Version 11		   Release 6.1			       26





XMH(1)							   XMH(1)


       tocGeometry
	       Initial	geometry  for  main xmh toc and view win
	       dows.


       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  boundary,	or  if you plan to use mhl a lot,
	       because it will be faster, and the  extra  charac
	       ters 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 slocal 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 fowarding  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
       mapping 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 sep
       arating	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 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






X Version 11		   Release 6.1			       27





XMH(1)							   XMH(1)


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 cus
       tomized	     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\
	    &lt;Btn1Down&gt;,&lt;Btn1Up&gt;: XmhIncorporateNewMail() unset()

       Xmh*commandBox.button2.label: Compose
       Xmh*commandBox.button2.translations: #override\
	    &lt;Btn1Down&gt;,&lt;Btn1Up&gt;: XmhComposeMessage() unset()

       Xmh*commandBox.button3.label: Next
       Xmh*commandBox.button3.translations: #override\
	    &lt;Btn1Down&gt;,&lt;Btn1Up&gt;: XmhViewNextMessage() unset()

       Xmh*commandBox.button4.label: Delete
       Xmh*commandBox.button4.translations: #override\
	    &lt;Btn1Down&gt;,&lt;Btn1Up&gt;: XmhMarkDelete() unset()

       Xmh*commandBox.button5.label: Commit
       Xmh*commandBox.button5.translations: #override\
	    &lt;Btn1Down&gt;,&lt;Btn1Up&gt;: XmhCommitChanges() unset()

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

       Xmh*tocMenu.accelerators: #override\n\
	    !:&lt;Key&gt;I: XmhIncorporateNewMail()\n\
	    !:&lt;Key&gt;C:	   XmhCommitChanges()\n\
	    !:&lt;Key&gt;R: XmhForceRescan()\n\
	    !:&lt;Key&gt;P: XmhPackFolder()\n\
	    !:&lt;Key&gt;S: XmhSortFolder()\n
       Xmh*messageMenu.accelerators: #override\n\
	    !:&lt;Key&gt;E: XmhComposeMessage()\n\
	    !&lt;Key&gt;space:    XmhViewNextMessage()\n\



X Version 11		   Release 6.1			       28





XMH(1)							   XMH(1)


	    !:&lt;Key&gt;c: XmhMarkCopy()\n\
	    !:&lt;Key&gt;d: XmhMarkDelete()\n\
	    !:&lt;Key&gt;f: XmhForward()\n\
	    !:&lt;Key&gt;m: XmhMarkMove()\n\
	    !:&lt;Key&gt;n: XmhViewNextMessage()\n\
	    !:&lt;Key&gt;p: XmhViewPreviousMessage()\n\
	    !:&lt;Key&gt;r: XmhReply()\n\
	    !:&lt;Key&gt;u: XmhUnmark()\n

       xmh provides action procedures which correspond to entries
       in the command menus; these  are	 given	in  the	 sections
       describing  menu	 commmands, 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 repre
		 sents a folder and zero or more subfolders.  The
		 menu of subfolders is built upon the first  ref
		 erence,  by  this routine.  If there are no sub
		 folders, this routine will mark  the  folder  as
		 having no subfolders, and no menu will be built.
		 In that case the menu button emulates	a  toggle
		 button.   When	 subfolders  exist, the menu will
		 popup, using the menu button action PopupMenu().

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

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




X Version 11		   Release 6.1			       29





XMH(1)							   XMH(1)


       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
		 character separator, into a single  string,  and
		 the  list  of	selected messsages, or if no mes
		 sages are selected, the current message, will be
		 appended  to  the  string  of	parameters.   The
		 string will be executed 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 cur
		 rent 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
		 action is insensitive to the case of the  string
		 parameters.	If   the   event  received  is	a
		 ClientMessage event and parameters are	 present,
		 at  least  one of the parameters must correspond
		 to the protocol 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.



X Version 11		   Release 6.1			       30





XMH(1)							   XMH(1)


       comp,  repl, or forw, and therefore message components may
       be customized 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 pro
       file; 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
       variable is not set
       ~/Mail - directory of folders, used if the MH profile can
       not be found
       ~/.xmhcheck - optional, for multiple mail drops in cooper
       ation with slocal.
       /usr/local/mh6  -  MH  commands,	 as  a	last  resort, see
       mhPath.
       ~/Mail/&lt;folder&gt;/.xmhcache - scan output in each folder
       ~/Mail/&lt;folder&gt;>/.mh_sequences - sequence	 definitions,  in
       each folder
       /tmp - temporary files, see tempDir.

SEE ALSO
       X(1),  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
       transient for that window should also be closed by xmh.
       -  When	XmhUseAsComposition  and  XmhViewUseAsComposition
       operate on messages in  the  DraftsFolder,  xmh	disallows
       editing	of  the	 composition  if the same message is also
       being viewed in another window.
       - 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



X Version 11		   Release 6.1			       31





XMH(1)							   XMH(1)


       message).
       -   WM_DELETE_WINDOW  protocol  doesn't	work  right  when
       requesting deletion of the first toc and view, while  try
       ing 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
       formatted  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 cannot 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 Labo
       ratory
       Donna Converse, MIT X Consortium




































X Version 11		   Release 6.1			       32


</PRE>
</BODY>
</HTML>
