Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
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 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 directory 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	appro-
	       priate  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 applica-
	       tion-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).

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	direc-
       tory.   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  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 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, buttonboxes, etc.) are	 actu-
       ally  part  of  the  Athena Widget Set, and are described here only for
       completeness.  For more information, see	the Athena Widget Set documen-
       tation.

   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	 when-
       ever  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 por-
       tion 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.  Con-
       tinuing 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 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 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  compensate  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  compensate  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 message,  selected	sequence,  and
       current sequence.  Each xmh command is introduced.

       For  use	in customization, action procedures corresponding to each com-
       mand are	given; these action procedures can be used  to	customize  the
       user  interface,	 particularly  the keyboard accelerators and the func-
       tionality 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 sup-
       ports 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 necessarily 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 mes-
       sages  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 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 bind-
	       ing 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 pre-
	       vent 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	 exam-
	       ple,  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	corre-
	       sponding	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 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 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 messages, if any.
       If  no messages are highlighted,	then the selected messages are consid-
       ered the	same as	the current message.

       The current message is indicated	by a `+' next to the  message  number.
       It  usually  corresponds	 to  the message currently being viewed.  Upon
       opening a new folder, for example, the current message will be  differ-
       ent  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 XmhCommitChanges().

       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 chronological
			 order.	 (As a side effect, this  may  also  pack  the
			 folder.)    The   corresponding  action  is  XmhSort-
			 Folder().

       Rescan Folder	 Rebuild the list of messages.	This can be used when-
			 ever 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 XmhForceRes-
			 can().

   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  COMPOSITION WINDOWS section below.  This command
			 does not affect the current message.  The correspond-
			 ing action is XmhComposeMessage().

       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 message after	the current message.  The cor-
			 responding action is XmhViewNextMessage().

       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 message before  the  current	message.   The
			 corresponding action is XmhViewPrevious().

       Delete		 Mark  the selected messages for deletion.  If no mes-
			 sages are highlighted,	mark the current  message  for
			 deletion  and automatically display the next unmarked
			 message.    The   corresponding   action   is	  Xmh-
			 MarkDelete().

       Move		 Mark  the selected messages to	be moved into the cur-
			 rently	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 cur-
			 rent  message	to  be	moved  and  display  the  next
			 unmarked message.  The	corresponding action  is  Xmh-
			 MarkMove().

       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 mes-
			 sage  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	corre-
			 sponding action is XmhMarkCopy().

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

       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 mes-
			 sages,	or the	current	 message  if  none  are	 high-
			 lighted.  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.  However,	 there	is  an
			 exception to this rule.  If the message 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	 procedure  corresponding  to  this command is
			 XmhUseAsComposition().

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

   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  corresponding  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	XmhRemoveFrom-
			 Sequence().

       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 func-
       tionality 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  XmhViewRe-
			 ply().

       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  message  has
			 been  edited;	when activated,	edits will be saved to
			 the original message 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  application-specific resource PrintCommand.  The
			 corresponding action procedure	is XmhPrintView().

       Delete		 Marks the viewed message for  deletion.   The	corre-
			 sponding 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 Message  from  the
       Message command menu, or	by selecting Reply or Forward or Use as	Compo-
       sition from the Message or View command menu.  These are	used  to  com-
       pose  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	 corresponding
			 action	is XmhCloseView().

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

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

       Compose Message	 Bring up another new composition window.  The	corre-
			 sponding action is 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 Composition'' command.  The	corre-
			 sponding action is XmhSave().

       Insert		 Insert	a related message into	the  composition.   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  information.
			 The corresponding action is XmhInsert().

ACCELERATORS
       Accelerators  are shortcuts.  They allow	you to invoke commands 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  mes-
       sages.	Similarly, selecting a sequence	with pointer button 3 will add
       the highlighted or current message(s) to	that  sequence.	  In  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 wid-
       get 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  combina-
       tions 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	every-
       thing.	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
       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  con-
       firm  the action.  This window will contain an ``Abort''	or ``No'' but-
       ton 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 operation.	The dialog box
       asks whether any	current	changes	should be committed (saved) during the
       checkpoint.   Responding	 ``Yes'' will have the same effect as pressing
       the ``Commit 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 during	the checkpoint.

       Some dialog boxes contain messages from MH.  Occasionally when the mes-
       sage 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  pre-
       defined 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 dis-
       played in the ``Sequence'' menu,	below the sequence commands.  The  ta-
       ble of contents (also known as the ``toc'') is at any one time display-
       ing 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  mes-
       sage-sequences other than ``all'' sequence.

       Note that none of the above actually affect whether a message 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  characteris-
       tics  of	 the  message.	 Thus, you can define a	sequence to be all the
       messages	that were from a particular person, or with a particular  sub-
       ject,  and  so  on.  You	can also connect things	up with	boolean	opera-
       tors, so	you can	select all things from	``weissman''  with  a  subject
       containing ``xmh''.

       The  layout should be fairly obvious.  The simplest cases are the easi-
       est: 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
       ``Subject:'' 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 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	abbre-
       viation	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.

WIDGET HIERARCHY
       In  order  to  specify resources, it is useful to know the hierarchy of
       widgets which compose xmh.  In the notation  below,  indentation	 indi-
       cates  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 addi-
       tional 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
		      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 <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
		      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.)

	    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	character, 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 specification	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  result-
       ing  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  position  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 XtDefault-
	       Foreground.

       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 file system, 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  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	mailInterval.

       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".	Checkpointing 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 compositions.

       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	 uninteresting	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  checkNewMail	is  true.  The
	       default is the value of checkFrequency.

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

       pointerColor
	       The foreground color of the pointer.  Default is	XtDefaultFore-
	       ground.

       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  com-
	       mand.  The default is ``enscript	>/dev/null 2>/dev/null''.

       replyInsertFilter
	       An  sh  command	to be executed when the	Insert button is acti-
	       vated 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	direc-
	       tory_/lib/mhl -form mhl.body.

       rescanInterval (class Interval)
	       How  often  to  check the Table of Contents of currently	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 contents, and the previous mes-
	       sage 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 mes-
	       sage  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 containing source	patches).

       sendWidth
	       When a message is sent from xmh,	lines longer  than  SendBreak-
	       Width  characters  will	be  split into multiple	lines, each of
	       which is	no longer than this value.  This value may be overrid-
	       den 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	incor-
	       porating	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 other fold-
	       ers when	using ``View Next Message'' and	``View	Previous  Mes-
	       sage''.	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 boundary,	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	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 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 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
       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 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 accelera-
       tors 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 wid-
       gets 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:

       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 com-
       mand 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  subfold-
		 ers,  this routine will mark the folder as having no subfold-
		 ers, 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 toggle 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 win-
		 dow.

       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 character 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 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 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 com-
		 mand 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 man-
		 ager communication protocols.	It responds to	delete	window
		 and  save  yourself  messages.	  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 generated by exe-
       cuting the corresponding	MH command; i.e.  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 profile; xmh	may override them.  The	appli-
       cation resource debug can be set	to true	to see how xmh	uses  MH  com-
       mands.

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 cannot be found
       ~/.xmhcheck - optional, for multiple mail  drops	 in  cooperation  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	transient  for
       that window should also be closed by xmh.
       -  When XmhUseAsComposition and XmhViewUseAsComposition operate on mes-
       sages 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 contents 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 message).
       - WM_DELETE_WINDOW protocol doesn't work	right when requesting 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 permission.
       - 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 Laboratory
       Donna Converse, MIT X Consortium

XFree86				 Version 4.7.0				XMH(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | INSTALLATION | BASIC SCREEN LAYOUT | XMH AND THE ATHENA WIDGET SET | PROCESSING YOUR MAIL | OPTIONS | COMPOSITION WINDOWS | ACCELERATORS | TEXT EDITING COMMANDS | CONFIRMATION DIALOG BOXES | MESSAGE-SEQUENCES | WIDGET HIERARCHY | APPLICATION-SPECIFIC RESOURCES | MULTIPLE MAIL DROPS | ACTIONS AND INTERFACE CUSTOMIZATION | ENVIRONMENT | FILES | SEE ALSO | BUGS | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=xmh&sektion=1&manpath=XFree86+4.7.0>

home | help