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

FreeBSD Manual Pages

  
 
  

home | help
XMH(1)			    General Commands Manual			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, re-
       ceived, replied to, forwarded, sorted, and stored in folders.  xmh pro-
       vides 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 ab-
	       solute  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 ar-
	       rived.  By default, xmh will change the appearance of the ``in-
	       box'' folder button when	new mail is waiting.  The application-
	       specific	resource checkNewMail can be used to turn off this no-
	       tification, 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 ev-
       erything	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, re-
       lease 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 ap-
       plication 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 se-
       lected 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 or-
			 der.  (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 se-
       lected 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 un-
			 marked	message	after the current message.  The	corre-
			 sponding 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 un-
			 marked	message	before the current message.  The  cor-
			 responding 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 un-
			 marked	message.  The corresponding action is XmhMark-
			 Move().

       Copy as Link	 Mark  the selected messages to	be copied into the se-
			 lected	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 se-
			 lected	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 ac-
			 tion  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 custom-
			 ized  with  the  xmh  application-specific   resource
			 PrintCommand.	  The  corresponding  action  is  Xmh-
			 Print().

   SEQUENCE COMMANDS
       The Sequence command menu contains commands pertaining to  message  se-
       quences	(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 ac-
			 tion 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 se-
			 lected	 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  se-
			 quence.  The corresponding action is XmhRemoveFromSe-
			 quence().

       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  op-
	      tion  acts as a toggle; select it	from the menu a	second time to
	      undo the effect.	The check mark appears when the	option is  se-
	      lected.

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 ac-
			 tion 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  re-
			 cent  Send or Save, you will be asked to confirm los-
			 ing them.  The	corresponding action  is  XmhResetCom-
			 pose().

       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 se-
       quence 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 se-
       lects a word, triple-clicking selects a	line,  quadruple-clicking  se-
       lects  a	paragraph, and clicking	rapidly	five times selects everything.
       Any selection may be extended in	either direction by using pointer but-
       ton 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
       Ctrl-b		      Backward Character
       Ctrl-d		      Delete Next Character
       Ctrl-e		      End Of Line
       Ctrl-f		      Forward Character
       Ctrl-g		      Multiply Reset
       Ctrl-h		      Delete Previous Character
       Ctrl-j		      Newline And Indent
       Ctrl-k		      Kill To End Of Line
       Ctrl-l		      Redraw Display
       Ctrl-m		      Newline
       Ctrl-n		      Next Line
       Ctrl-o		      Newline And Backup
       Ctrl-p		      Previous Line
       Ctrl-r		      Search/Replace Backward

       Ctrl-s		      Search/Replace Forward
       Ctrl-t		      Transpose	Characters
       Ctrl-u		      Multiply by 4
       Ctrl-v		      Next Page
       Ctrl-w		      Kill Selection
       Ctrl-y		      Unkill
       Ctrl-z		      Scroll One Line Up
       Meta-b		      Backward Word
       Meta-f		      Forward Word
       Meta-i		      Insert File
       Meta-k		      Kill To End Of Paragraph
       Meta-q		      Form Paragraph
       Meta-v		      Previous Page
       Meta-y		      Insert Current Selection
       Meta-z		      Scroll One Line Down
       Meta-d		      Delete Next Word
       Meta-D		      Kill Word
       Meta-h		      Delete Previous Word
       Meta-H		      Backward Kill Word
       Meta-<		      Beginning	Of File
       Meta->		      End Of File
       Meta-]		      Forward Paragraph
       Meta-[		      Backward Paragraph
       Meta-Delete	      Delete Previous Word
       Meta-Shift Delete      Kill Previous Word
       Meta-Backspace	      Delete Previous Word
       Meta-Shift Backspace   Kill Previous Word

       In addition, the	pointer	may be used to copy and	paste text:

       Button 1	Down	 Start Selection
       Button 1	Motion	 Adjust	Selection
       Button 1	Up	 End Selection (copy)
       Button 2	Down	 Insert	Current	Selection (paste)
       Button 3	Down	 Extend	Current	Selection
       Button 3	Motion	 Adjust	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, in-
       cluding the predefined ``all'' sequence.	 (The sequence ``cur'' is also
       usually	defined	for every folder; it consists of only the current mes-
       sage.  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 de-
       scribe 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 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  in-
       clude  ``xmh''  or  ``xterm'', just press the ``or'' button next	to the
       ``Subject:'' field.  Another box	will appear where you  can  enter  an-
       other 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 op-
       tional: 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 af-
       ter 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  in-
       serted  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 de-
       fault 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  in-
	       terval.	 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 as-
	       sist 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 be-
	       tween 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 pri-
	       vate resource file; see the section ACTIONS AND INTERFACE  CUS-
	       TOMIZATION.

       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.  De-
	       fault 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  de-
	       fault 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  re-
	       source.

       makeCheckpoints
	       If  true,  xmh will attempt to save checkpoints of volatile ed-
	       its.  The default is false.  The	frequency of checkpointing  is
	       controlled  by  the resource checkpointInterval.	 For the loca-
	       tion 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: ".  De-
	       fault 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  de-
	       fault 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, be-
	       cause 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  ex-
       amples	 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.   Un-
       predictable results can occur if	actions	are bound to events or widgets
       for which they were not designed.

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

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

       Xmh*CommandButtonCount:	       5

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

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

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

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

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

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

       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 se-
		 quence	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 re-
		 spond 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 re-
		 quested 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),  en-
       script(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 ap-
       pear  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 of-
       fer 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

X Version 11			   xmh 1.0.3				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=FreeBSD+12.0-RELEASE+and+Ports>

home | help