1
.\" $XConsortium: xmh.man /main/39 1996/12/09 17:10:05 kaleb $
2
.\" Copyright (c) 1989, 1991, 1994 X Consortium
3
.\" Copyright 1988, 1989, Digital Equipment Corporation.
5
.\" Permission is hereby granted, free of charge, to any person obtaining
6
.\" a copy of this software and associated documentation files (the
7
.\" "Software"), to deal in the Software without restriction, including
8
.\" without limitation the rights to use, copy, modify, merge, publish,
9
.\" distribute, sublicense, and/or sell copies of the Software, and to
10
.\" permit persons to whom the Software is furnished to do so, subject to
11
.\" the following conditions:
13
.\" The above copyright notice and this permission notice shall be included
14
.\" in all copies or substantial portions of the Software.
16
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
.\" OTHER DEALINGS IN THE SOFTWARE.
24
.\" Except as contained in this notice, the name of the X Consortium shall
25
.\" not be used in advertising or otherwise to promote the sale, use or
26
.\" other dealings in this Software without prior written authorization
27
.\" from the X Consortium.
29
.\" $XFree86: xc/programs/xmh/xmh.man,v 1.3 2001/01/27 18:21:19 dawes Exp $
31
.TH XMH 1 __xorgversion__
33
xmh \- send and read mail with an X interface to MH
36
[\-path \fImailpath\fR] [\-initial \fIfoldername\fR] [\-flag] [\-\fItoolkitoption\fR ...]
40
program provides a graphical user interface to the \fIMH\fR Message
41
Handling System. To actually do things with your mail, it makes calls to the
42
\fIMH\fR package. Electronic mail messages may be composed, sent,
43
received, replied to, forwarded, sorted, and stored in folders. \fIxmh\fR
44
provides extensive mechanism for customization of the user interface.
46
This document introduces many aspects of the Athena Widget Set.
50
.B \-path \fIdirectory\fP
51
This option specifies an alternate collection of mail folders in which to
52
process mail. The directory is specified as an absolute pathname.
53
The default mail path is the value of the Path component in the \fIMH\fP
54
profile, which is determined by the \fBMH\fP environment variable and
55
defaults to $HOME/.mh_profile. $HOME/Mail will be used as the path if
56
the \fIMH\fP Path is not given in the profile.
58
.B \-initial \fIfolder\fP
59
This option specifies an alternate folder which may receive new mail and is
60
initially opened by \fIxmh\fR.
61
The default initial folder is ``inbox''.
64
This option will cause \fIxmh\fR to change the appearance of appropriate
65
folder buttons and to request the window manager to change the appearance
66
of the \fIxmh\fP icon when new mail has arrived. By default,
67
\fIxmh\fP will change the appearance of the ``inbox'' folder button when
68
new mail is waiting. The application-specific resource \fBcheckNewMail\fP
69
can be used to turn off this notification, and the \fB\-flag\fP option will
72
These three options have corresponding application-specific resources,
73
\fBMailPath\fR, \fBInitialFolder\fR, and \fBMailWaitingFlag\fR, which
74
can be specified in a resource file.
76
The standard toolkit command line options are given in \fIX(__miscmansuffix__)\fP.
80
\fIxmh\fR requires that the user is already set up
81
to use \fIMH\fR, version 6. To do so, see if there is a file
82
called .mh_profile in your home directory. If it exists, check to see if it
83
contains a line that starts with ``Current-Folder''. If it does,
84
you've been using version 4 or earlier of \fIMH\fR; to convert to version
85
6, you must remove that line. (Failure to do so causes spurious output to
86
stderr, which can hang \fIxmh\fR depending on your setup.)
88
If you do not already have a .mh_profile, you can create one (and
89
everything else you need) by typing ``inc'' to the shell. You should
90
do this before using \fIxmh\fR to incorporate new mail.
92
For more information, refer to the \fImh(1)\fP documentation.
94
Much of the user interface of \fIxmh\fP is configured in the \fIXmh\fP
95
application class defaults file; if this file was not installed properly
96
a warning message will appear when \fIxmh\fP is used. \fIxmh\fP is
97
backwards compatible with the R4 application class defaults file.
99
The default value of the SendBreakWidth resource has changed since R4.
101
.SH BASIC SCREEN LAYOUT
102
\fIxmh\fR starts out with a single window, divided into four major areas:
106
Six buttons with pull-down command menus.
110
A collection of buttons, one for each top level folder.
111
New users of \fIMH\fP will have two folders, ``drafts'' and ``inbox''.
115
A listing, or Table of Contents, of the messages in the open folder.
116
Initially, this will show the messages in ``inbox''.
120
A view of one of your messages. Initially this is blank.
122
.SH XMH AND THE ATHENA WIDGET SET
123
\fIxmh\fR uses the X Toolkit Intrinsics and the Athena Widget Set.
124
Many of the features described below (scrollbars, buttonboxes, etc.) are
125
actually part of the Athena Widget Set, and are described here only for
126
completeness. For more information, see the Athena Widget Set documentation.
129
Some parts of the main window will have a vertical area on the left containing
130
a grey bar. This area is a \fIscrollbar\fR. They are used whenever the
131
data in a window takes up more space than can be displayed.
132
The grey bar indicates what portion of your data is visible. Thus, if the
133
entire length of the area is grey, then you are looking at all your data.
134
If only the first half is grey, then you are looking at the top half of
136
The message viewing area will have a horizontal scrollbar if the text
137
of the message is wider than the viewing area.
139
You can use the pointer in the scrollbar to change what part of the data is
140
visible. If you click with pointer button 2, the top of the grey
141
area will move to where the pointer is, and the corresponding
142
portion of data will be displayed. If you hold down pointer button 2,
143
you can drag around the grey area. This makes it easy to get to the top
144
of the data: just press with button 2, drag off the top of the
145
scrollbar, and release.
147
If you click with button 1, then the data to the right of the
148
pointer will scroll to the top of the window. If you click with pointer
149
button 3, then the data at the top of the window will scroll down to where
152
.SS BUTTONBOXES, BUTTONS, AND MENUS
153
Any area containing many words or short phrases, each enclosed in a
154
rectangular or rounded boundary, is called a \fIbuttonbox\fR.
155
Each rectangle or rounded area is actually a button that you
156
can press by moving the pointer onto it and pressing pointer button 1.
157
If a given buttonbox has more buttons in it than can fit, it will
158
be displayed with a scrollbar, so you can always scroll to the button you
161
Some buttons have pull-down menus.
162
Pressing the pointer button while the pointer is over one of these
163
buttons will pull down a menu. Continuing to hold the button down while
165
pointer over the menu, called dragging the pointer, will highlight each
167
on the menu as the pointer passes over it. To select an item in the menu,
168
release the pointer button while the item is highlighted.
170
.SS ADJUSTING THE RELATIVE SIZES OF AREAS
171
If you're not satisfied with the sizes of the various areas of the main window,
172
they can easily be changed. Near the right edge of the border between
173
each region is a black box, called a \fIgrip\fR. Simply point to that
174
grip with the pointer, press a pointer button, drag up or down, and
175
release. Exactly what happens depends on which pointer button you press.
177
If you drag with the pointer button 2, then only that border will move. This
178
mode is simplest to understand, but is the least useful.
180
If you drag with pointer button 1, then you are adjusting the size of
181
the window above. \fIxmh\fR will attempt to compensate by adjusting some
184
If you drag with pointer button 3, then you are adjusting the size
185
of the window below. \fIxmh\fR will attempt to compensate by adjusting
186
some window above it.
188
All windows have a minimum and maximum size; you will never be allowed to
189
move a border past the point where it would make a window have an invalid
192
.SH PROCESSING YOUR MAIL
193
This section will define the concepts of the selected folder, current folder,
194
selected message(s), current message, selected sequence, and current
195
sequence. Each \fIxmh\fR command is introduced.
197
For use in customization,
198
action procedures corresponding to each command are given; these action
199
procedures can be used to customize the user interface, particularly the
200
keyboard accelerators and the functionality of the buttons in the optional
201
button box created by the application resource \fBCommandButtonCount\fR.
203
.SS FOLDERS AND SEQUENCES
204
A folder contains a collection of mail messages, or is empty. \fIxmh\fP
205
supports folders with one level of subfolders.
207
The selected folder is whichever foldername appears in the bar above the
208
folder buttons. Note that this is not necessarily the same folder that is
209
currently being viewed.
210
To change the selected folder, just press on the desired folder button
211
with pointer button 1;
212
if that folder has subfolders, select a folder from the pull-down menu.
214
The Table of Contents, or toc, lists the messages in the viewed folder.
215
The title bar above the Table of Contents displays the name of the
218
The toc title bar also displays the name of the viewed sequence of messages
219
within the viewed folder.
220
Every folder has an implicit ``all'' sequence, which contains all the messages
221
in the folder, and initially the toc title bar will show ``inbox:all''.
224
The \fIFolder\fR command menu contains commands of a global nature:
228
Display the data in the selected folder. Thus, the selected folder also
229
becomes the viewed folder.
230
The action procedure corresponding
231
to this command is \fBXmhOpenFolder(\fR[\fIfoldername\fR]\fB)\fR.
232
It takes an optional argument as the name of a folder to select and open; if no
233
folder is specified, the selected folder is opened. It may be specified
234
as part of an event translation from a folder menu button or from a
235
folder menu, or as a binding of a keyboard accelerator to any widget other
236
than the folder menu buttons or the folder menus.
238
.B Open Folder in New Window
239
Displays the selected folder in an additional main window.
240
Note, however, that you cannot reliably display the same folder in more
241
than one window at a time, although \fIxmh\fR will not prevent you from trying.
242
The corresponding action is \fBXmhOpenFolderInNewWindow()\fR.
246
You will be prompted for a name for the new folder;
247
to enter the name, move the pointer to the blank box provided and type.
248
Subfolders are created by specifying the parent folder, a slash, and the
249
subfolder name. For example,
250
to create a folder named ``xmh'' which is a subfolder of an existing folder
251
named ``clients'', type ``clients/xmh''.
252
Click on the Okay button when finished, or just type Return;
253
click on Cancel to cancel this operation.
254
The action corresponding to Create Folder is \fBXmhCreateFolder()\fR.
258
Destroy the selected folder. You will be asked to confirm this action (see
259
CONFIRMATION WINDOWS). Destroying a folder will also destroy any subfolders
260
of that folder. The corresponding action is \fBXmhDeleteFolder()\fP.
264
Exits \fIxmh\fR, after first confirming that you won't lose any changes;
265
or, if selected from any additional \fIxmh\fP window, simply closes that
266
window. The corresponding action is \fBXmhClose()\fP.
268
.SS HIGHLIGHTED MESSAGES, SELECTED MESSAGES
269
.SS AND THE CURRENT MESSAGE
270
It is possible to highlight a set of adjacent messages in the area of the
272
To highlight a message, click on it with pointer button 1.
273
To highlight a range of messages, click on the first one with
274
pointer button 1 and on the last one with pointer button 3; or
275
press pointer button 1, drag, and release.
276
To extend a range of selected messages, use pointer button 3.
277
To highlight all messages in the table of contents,
278
click rapidly three times with pointer button 1.
279
To cancel any selection in the table of contents, click rapidly twice.
281
The selected messages are the same as the highlighted messages, if any. If no
282
messages are highlighted, then the selected messages are considered the same
283
as the current message.
285
The current message is indicated by a `+' next to the message number. It
286
usually corresponds to the message currently being viewed. Upon opening
287
a new folder, for example, the current message will be different from the
289
When a message is viewed, the title bar above the view will identify the message.
291
.SS TABLE OF CONTENTS COMMANDS
292
The \fITable of Contents\fP command menu
293
contains commands which operate on the open, or viewed, folder.
296
.B Incorporate New Mail
297
Add any new mail received to viewed folder, and set the current
298
message to be the first new message. This command is selectable in the menu
299
and will execute only if the viewed folder is allowed to receive new mail.
300
By default, only ``inbox'' is allowed to incorporate new mail.
301
The corresponding action is \fBXmhIncorporateNewMail()\fP.
304
Execute all deletions, moves, and copies that have been marked in this
305
folder. The corresponding action is \fBXmhCommitChanges()\fP.
308
Renumber the messages in this folder so they start with 1 and increment by
309
1. The corresponding action is \fBXmhPackFolder()\fP.
312
Sort the messages in this folder in chronological order. (As a side
313
effect, this may also pack the folder.) The corresponding action is
314
\fBXmhSortFolder()\fP.
317
Rebuild the list of messages. This can be used whenever you suspect
319
idea of what messages you have is wrong. (In particular, this is necessary
320
if you change things using straight \fIMH\fR commands without using
321
\fIxmh\fR.) The corresponding action is \fBXmhForceRescan()\fP.
324
The \fIMessage\fR command menu contains commands which operate on the selected
325
message(s), or if there are no selected messages, the current message.
329
Composes a new message. A new window will be brought up for composition;
330
a description of it is given in the COMPOSITION WINDOWS section below.
331
This command does not affect the current message.
332
The corresponding action is \fBXmhComposeMessage()\fP.
336
View the first selected message. If no messages are highlighted, view the
337
current message. If current message is already being viewed, view the
338
first unmarked message after the current message.
339
The corresponding action is \fBXmhViewNextMessage()\fP.
343
View the last selected message. If no messages are highlighted, view the
344
current message. If current message is already being viewed, view the
345
first unmarked message before the current message.
346
The corresponding action is \fBXmhViewPrevious()\fP.
350
Mark the selected messages for deletion. If no messages are highlighted,
351
mark the current message for deletion and automatically display the
352
next unmarked message.
353
The corresponding action is \fBXmhMarkDelete()\fP.
357
Mark the selected messages to be moved into the currently selected folder.
358
(If the selected folder is the same as the viewed folder,
359
this command will just beep.) If no messages are highlighted,
360
mark the current message to be moved and display the next unmarked message.
361
The corresponding action is \fBXmhMarkMove()\fP.
365
Mark the selected messages to be copied into the selected folder. (If the
366
selected folder is the same as the viewed folder, this command will just
367
beep.) If no messages are highlighted, mark the current message to be
368
copied. Note that messages are actually linked, not copied; editing
369
a message copied by \fIxmh\fP will affect all copies of the message.
370
The corresponding action is \fBXmhMarkCopy()\fP.
374
Remove any of the above three marks from the selected messages, or the
375
current message, if none are highlighted.
376
The corresponding action is \fBXmhUnmark()\fP.
380
Create a new window containing only a view of the first selected message,
381
or the current message, if none are highlighted.
382
The corresponding action is \fBXmhViewInNewWindow()\fP.
386
Create a composition window in reply to the first selected message, or the
387
current message, if none are highlighted.
388
The corresponding action is \fBXmhReply()\fP.
392
Create a composition window whose body is initialized to contain an
394
of the selected messages, or the current message if none are highlighted.
395
The corresponding action is \fBXmhForward()\fP.
398
.B Use as Composition
399
Create a composition window whose body is initialized to be the contents
400
of the first selected message, or the current message if none are selected.
401
Any changes you make in the composition will be saved in a new
402
message in the ``drafts'' folder, and will not change the original message.
403
However, there is an exception to this rule.
404
If the message to be used as composition was selected from the ``drafts''
405
folder, (see BUGS), the changes will be reflected in the original message
406
(see COMPOSITION WINDOWS). The action procedure corresponding to this
407
command is \fBXmhUseAsComposition()\fR.
411
Print the selected messages, or the current message if none are selected.
412
\fIxmh\fR normally prints by invoking
413
the \fIenscript\fR(1) command, but this can be customized with the \fIxmh\fP
414
application-specific resource \fBPrintCommand\fR.
415
The corresponding action is \fBXmhPrint()\fR.
417
.SS SEQUENCE COMMANDS
418
The \fISequence\fR command menu contains commands pertaining to
419
message sequences (See MESSAGE-SEQUENCES),
420
and a list of the message-sequences defined for the currently viewed folder.
421
The selected message-sequence is indicated by a check mark in its entry
422
in the margin of the menu. To change the selected message-sequence,
423
select a new message-sequence from the sequence menu.
427
Define a new message-sequence.
428
The corresponding action is \fBXmhPickMessages()\fP.
430
The following menu entries will be sensitive only if the current folder
431
has any message-sequences other than the ``all'' message-sequence.
434
Change the viewed sequence to be the same as the selected sequence.
435
The corresponding action is \fBXmhOpenSequence()\fP.
439
Add the selected messages to the selected sequence.
440
The corresponding action is \fBXmhAddToSequence()\fP.
443
.B Remove from Sequence
444
Remove the selected messages from the selected sequence.
445
The corresponding action is \fBXmhRemoveFromSequence()\fP.
449
Remove the selected sequence entirely. The messages themselves are
450
not affected; they simply are no longer grouped together to define a
451
message-sequence. The corresponding action is \fBXmhDeleteSequence()\fP.
454
Commands in the \fIView\fP menu and in the buttonboxes of view windows
455
(which result from the \fIMessage\fP menu command \fBView In New\fP)
456
correspond in functionality to commands of the same
457
name in the \fIMessage\fP menu, but they operate on the viewed message
458
rather than the selected messages or current message.
462
When the viewed message is in a separate view window, this command will
463
close the view, after confirming the status of any unsaved edits.
464
The corresponding action procedure is \fBXmhCloseView()\fR.
467
Create a composition window in reply to the viewed message.
468
The related action procedure is \fBXmhViewReply()\fR.
471
Create a composition window whose body is initialized contain an
473
the viewed message. The corresponding action is \fBXmhViewForward()\fR.
475
.B Use As Composition
476
Create a composition window whose body is initialized to be the contents of
477
the viewed message. Any changes made in the composition window will be
478
saved in a new message in the ``drafts'' folder, and will not change the
479
original message. An exception: if the viewed message was selected from
480
the ``drafts'' folder, (see BUGS) the original message is edited.
482
procedure corresponding to this command is \fBXmhViewUseAsComposition()\fR.
485
This command enables the direct editing of the viewed message.
486
The action procedure is \fBXmhEditView()\fR.
489
This command is insensitive until the message has been edited; when
490
activated, edits will be saved to the original message in the view.
491
The corresponding action is \fBXmhSaveView()\fR.
494
Print the viewed message. \fIxmh\fR prints by invoking
495
the \fIenscript\fR(1) command, but this can be customized with the
496
application-specific resource \fBPrintCommand\fR.
497
The corresponding action procedure is \fBXmhPrintView()\fR.
500
Marks the viewed message for deletion.
501
The corresponding action procedure is \fBXmhViewMarkDelete()\fR.
504
The \fIOptions\fR menu contains one entry.
508
When selected, a check mark appears in the margin of this menu entry.
509
Read in Reverse will switch the meaning of the next and previous
510
messages, and will increment to the current message marker
511
in the opposite direction. This is useful
512
if you want to read your messages in the order of most recent first.
513
The option acts as a toggle; select it from the menu a second time to
514
undo the effect. The check mark appears when the option is selected.
516
.SH COMPOSITION WINDOWS
517
Composition windows are created by selecting \fBCompose Message\fP
518
from the \fIMessage\fP command menu, or by selecting
519
\fBReply\fP or \fBForward\fP or \fBUse as Composition\fP from the
520
\fIMessage\fP or \fIView\fP command menu.
521
These are used to compose mail messages.
522
Aside from the normal text editing functions, there are six command
523
buttons associated with composition windows:
526
Close this composition window. If changes have been made since the
527
most recent Save or Send, you will be asked to confirm losing them.
528
The corresponding action is \fBXmhCloseView()\fP.
532
Send this composition. The corresponding action is \fBXmhSend()\fP.
536
Replace the current composition with an empty message. If changes have
537
been made since the most recent Send or Save, you will be
538
asked to confirm losing them.
539
The corresponding action is \fBXmhResetCompose()\fP.
543
Bring up another new composition window. The corresponding action
544
is \fBXmhComposeMessage()\fP.
548
Save this composition in your drafts folder. Then you can safely close the
549
composition. At some future date, you can continue working on the
550
composition by opening the drafts folder, selecting the message, and
551
using the ``Use as Composition'' command.
552
The corresponding action is \fBXmhSave()\fP.
556
Insert a related message into the composition. If the composition window
557
was created with a ``Reply'' command, the related message is the message
558
being replied to, otherwise no related message is defined and this button
559
is insensitive. The message may be filtered before being inserted;
560
see \fBReplyInsertFilter\fP under APPLICATION RESOURCES for more information.
561
The corresponding action is \fBXmhInsert()\fP.
564
Accelerators are shortcuts. They allow you to invoke commands
565
without using the menus, either from the keyboard or by using the pointer.
567
\fIxmh\fP defines pointer accelerators for common actions:
568
To select and view a message with a single click, use pointer button
569
2 on the message's entry in the table of contents. To select and open
570
a folder or a sequence in a single action, make the folder or sequence
571
selection with pointer button 2.
573
To mark the highlighted messages,
574
or current message if none have been highlighted,
575
to be moved to a folder in a single action, use pointer button 3 to select
576
the target folder and simultaneously mark the messages.
577
Similarly, selecting a sequence with pointer button 3 will add
578
the highlighted or current message(s) to that sequence.
579
In both of these operations, the selected folder or sequence
580
and the viewed folder or sequence are not changed.
582
\fIxmh\fP defines the following keyboard accelerators over the surface of
583
the main window, except in the view area while editing a message:
585
Meta-I Incorporate New Mail
586
Meta-C Commit Changes
591
Meta-space View Next Message
594
Meta-f Forward the selected or current message
596
Meta-n View Next Message
597
Meta-p View Previous Message
598
Meta-r Reply to the selected or current message
601
Ctrl-V Scroll the table of contents forward
602
Meta-V Scroll the table of contents backward
603
Ctrl-v Scroll the view forward
604
Meta-v Scroll the view backward
607
.SH TEXT EDITING COMMANDS
608
All of the text editing commands are actually defined by the Text widget
609
in the Athena Widget Set.
610
The commands may be bound to different keys than the defaults
611
described below through the X Toolkit Intrinsics key re-binding mechanisms.
612
See the X Toolkit Intrinsics and the Athena Widget Set documentation for
615
Whenever you are asked to enter any text, you will be using a standard
616
text editing interface. Various control and meta keystroke combinations
617
are bound to a somewhat Emacs-like set of commands. In addition, the
618
pointer buttons may be used to select a portion of text or to move the
619
insertion point in the text. Pressing pointer button 1 causes the
620
insertion point to move to the pointer. Double-clicking
621
button 1 selects a word, triple-clicking selects a line, quadruple-clicking
622
selects a paragraph, and clicking rapidly five times selects
623
everything. Any selection may be extended in
624
either direction by using pointer button 3.
626
In the following, a \fIline\fR refers to one displayed row of characters
627
in the window. A \fIparagraph\fR refers to the text between carriage
628
returns. Text within a paragraph is broken into lines for display based on the
629
current width of the window.
630
When a message is sent, text is broken into lines based upon the values
631
of the \fBSendBreakWidth\fP and \fBSendWidth\fP application-specific
634
The following keystroke combinations are defined:
638
Ctrl-a Beginning Of Line Meta-b Backward Word
639
Ctrl-b Backward Character Meta-f Forward Word
640
Ctrl-d Delete Next Character Meta-i Insert File
641
Ctrl-e End Of Line Meta-k Kill To End Of Paragraph
642
Ctrl-f Forward Character Meta-q Form Paragraph
643
Ctrl-g Multiply Reset Meta-v Previous Page
644
Ctrl-h Delete Previous Character Meta-y Insert Current Selection
645
Ctrl-j Newline And Indent Meta-z Scroll One Line Down
646
Ctrl-k Kill To End Of Line Meta-d Delete Next Word
647
Ctrl-l Redraw Display Meta-D Kill Word
648
Ctrl-m Newline Meta-h Delete Previous Word
649
Ctrl-n Next Line Meta-H Backward Kill Word
650
Ctrl-o Newline And Backup Meta-< Beginning Of File
651
Ctrl-p Previous Line Meta-> End Of File
652
Ctrl-r Search/Replace Backward Meta-] Forward Paragraph
653
Ctrl-s Search/Replace Forward Meta-[ Backward Paragraph
654
Ctrl-t Transpose Characters
655
Ctrl-u Multiply by 4 Meta-Delete Delete Previous Word
656
Ctrl-v Next Page Meta-Shift Delete Kill Previous Word
657
Ctrl-w Kill Selection Meta-Backspace Delete Previous Word
658
Ctrl-y Unkill Meta-Shift Backspace Kill Previous Word
659
Ctrl-z Scroll One Line Up
661
In addition, the pointer may be used to copy and paste text:
663
Button 1 Down Start Selection
664
Button 1 Motion Adjust Selection
665
Button 1 Up End Selection (copy)
667
Button 2 Down Insert Current Selection (paste)
669
Button 3 Down Extend Current Selection
670
Button 3 Motion Adjust Selection
671
Button 3 Up End Selection (copy)
674
.SH CONFIRMATION DIALOG BOXES
675
Whenever you press a button that may cause you to lose some work or is
676
otherwise dangerous, a popup dialog box will appear asking you to confirm the
677
action. This window will contain an ``Abort'' or ``No'' button and a
678
``Confirm'' or ``Yes''
679
button. Pressing the ``No'' button cancels the operation, and pressing
680
the ``Yes'' will proceed with the operation.
682
When \fIxmh\fR is run under a Release 6 session manager it will prompt
683
the user for confirmation during a checkpoint operation. The dialog
684
box asks whether any current changes should be committed (saved)
685
during the checkpoint. Responding ``Yes'' will have the same effect
686
as pressing the ``Commit Changes'' or ``Save Message'' buttons in the
687
respective folder and view windows. Responding ``No'' will cause the
688
checkpoint to continue successfully to completion without actually
689
saving any pending changes. If the session manager disallows user
690
interaction during the checkpoint a ``Yes'' response is assumed; i.e.
691
all changes will be committed during the checkpoint.
693
Some dialog boxes contain messages from \fIMH\fR. Occasionally when the
694
message is more than one line long,
695
not all of the text will be visible. Clicking on the message field will
696
cause the dialog box to resize so that you can read the entire message.
698
.SH MESSAGE-SEQUENCES
699
An \fIMH\fP message sequence is just a set of messages associated with some name.
700
They are local to a particular folder; two different folders can have
701
sequences with the same name. The sequence named ``all'' is predefined in
702
every folder; it consists of the set of all messages in that folder. As
703
many as nine sequences may be defined for each folder, including
704
the predefined ``all'' sequence. (The
705
sequence ``cur'' is also usually defined for every folder; it consists of
706
only the current message. \fIxmh\fR hides ``cur'' from the user, instead
707
placing a ``+'' by the current message. Also, \fIxmh\fR does not support
708
\fIMH\fP's``unseen'' sequence, so that one is also hidden from the user.)
710
The message sequences for a folder (including one for ``all'') are
711
displayed in the ``Sequence'' menu, below the sequence commands.
712
The table of contents (also known as the ``toc'') is at any one time
713
displaying one message sequence. This is called the ``viewed sequence'',
714
and its name will be displayed in the toc title bar after the
715
folder name. Also, at any time one of the sequences in the menu will
716
have a check mark next to it. This is called the ``selected sequence''.
717
Note that the viewed sequence and the selected sequence are not necessarily
718
the same. (This all pretty much corresponds to the way folders work.)
720
The \fBOpen Sequence\fR, \fBAdd to Sequence\fR, \fBRemove from Sequence\fR,
721
and \fBDelete Sequence\fR commands are active only if the viewed folder
722
contains message-sequences other than ``all'' sequence.
724
Note that none of the above actually affect whether a message is in the
725
folder. Remember that a sequence is a set of messages within the folder;
726
the above operations just affect what messages are in that set.
728
To create a new sequence, select the ``Pick'' menu entry. A new window will
729
appear, with lots of places to enter text. Basically, you can describe the
730
sequence's initial set of messages based on characteristics of the
731
message. Thus, you can define a sequence to be all the messages that were
732
from a particular person, or with a particular subject, and so on. You
733
can also connect things up with boolean operators, so you can select all
734
things from ``weissman'' with a subject containing ``xmh''.
736
The layout should be fairly obvious. The simplest cases are the
737
easiest: just point to the proper field and type. If you enter in more
738
than one field, it will only select messages which match all non-empty
741
The more complicated cases arise when you want things that match one field
742
or another one, but not necessarily both. That's what all the ``or''
743
buttons are for. If you want all things with subjects that include ``xmh'' or
744
``xterm'', just press the ``or'' button next to the ``Subject:'' field.
745
Another box will appear where you can enter another subject.
747
If you want all things either from ``weissman'' or with subject ``xmh'', but
748
not necessarily both, select the ``\-Or\-'' button. This will essentially
749
double the size of the form. You can then enter ``weissman'' in a from: box
750
on the top half, and ``xmh'' in a subject: box on the lower part.
752
If you select the ``Skip'' button, then only those messages that
753
\fIdon't\fR match the fields on that row are included.
755
Finally, in the bottom part of the window will appear several more boxes.
756
One is the name of the sequence you're defining. (It defaults to the name
757
of the selected sequence when ``Pick'' was pressed, or to ``temp'' if
758
``all'' was the selected sequence.) Another box defines which sequence to
759
look through for potential members of this sequence; it defaults to the
760
viewed sequence when ``Pick'' was pressed.
762
Two more boxes define a date range; only messages within that date range
763
will be considered. These dates must be entered in RFC 822-style format: each
764
date is of the form ``dd mmm yy hh:mm:ss zzz'', where dd is a one or two
765
digit day of the month, mmm is the three-letter abbreviation for a month,
766
and yy is a year. The remaining fields are optional: hh, mm, and ss
767
specify a time of day, and zzz selects a time zone. Note that if the time
768
is left out, it defaults to midnight; thus if you select a range of ``7
769
nov 86'' \- ``8 nov 86'', you will only get messages from the 7th, as all
770
messages on the 8th will have arrived after midnight.
772
``Date field'' specifies which field in the header to look at for
773
this date range; it defaults to ``Date''. If the sequence
774
you're defining already exists, you can optionally merge the old set with
775
the new; that's what the ``Yes'' and ``No'' buttons are all about.
776
Finally, you can ``OK'' the whole thing, or ``Cancel'' it.
778
In general, most people will rarely use these features. However, it's
779
nice to occasionally use ``Pick'' to find some messages, look through
780
them, and then hit ``Delete Sequence'' to put things back in their original
784
In order to specify resources, it is useful to know the hierarchy of
785
widgets which compose \fIxmh\fR. In the notation below, indentation
786
indicates hierarchical structure. The widget class name is given first,
787
followed by the widget instance name.
788
The application class name is Xmh.
790
The hierarchy of the main toc and view window is identical for additional
791
toc and view windows, except that a TopLevelShell widget is inserted
792
in the hierarchy between the application shell and the Paned widget.
795
.ta .5i 1.0i 1.5i 2.0i 2.5i 3.0i 3.5i 4.0i 4.5i 5.0i 5.5i 6.0i 6.5i 7.0i
798
SimpleMenu folderMenu
811
SimpleMenu messageMenu
824
SimpleMenu sequenceMenu
839
SimpleMenu optionMenu
841
Viewport.Core menuBox.clip
843
MenuButton folderButton
845
MenuButton messageButton
846
MenuButton sequenceButton
847
MenuButton viewButton
848
MenuButton optionButton
852
Viewport.Core folders.clip
874
\fIThe hierarchy of the Create Folder popup dialog box:\fR
876
TransientShell prompt
883
\fIThe hierarchy of the Notice dialog box, which reports messages from MH:\fR
885
TransientShell notice
891
\fIThe hierarchy of the Confirmation dialog box:\fR
893
TransientShell confirm
899
\fIThe hierarchy of the dialog box which reports errors:\fR
906
\fIThe hierarchy of the composition window:\fR
910
Label composeTitlebar
912
Viewport.Core compButtons.clip
921
\fIThe hierarchy of the view window:\fR
927
Viewport.Core viewButtons.clip
938
\fIThe hierarchy of the pick window:\fR
939
\fI(Unnamed widgets have no name.)\fR
944
Viewport.Core pick.clip
947
\fIThe first 6 rows of the pick window have identical structure:\fR
963
Viewport.core pick.clip
987
.SH APPLICATION-SPECIFIC RESOURCES
989
The application class name is \fBXmh\fP.
990
Application-specific resources are listed below by name.
991
Application-specific resource class names always begin with an upper case
992
character, but unless noted, are otherwise identical to the instance names
995
Any of these options may also be specified on the command line by
996
using the X Toolkit Intrinsics resource specification mechanism.
997
Thus, to run \fIxmh\fR showing all message headers,
999
% xmh \-xrm '*HideBoringHeaders:off'
1001
If \fBTocGeometry\fR, \fBViewGeometry\fR, \fBCompGeometry\fR, or
1002
\fBPickGeometry\fR are not
1003
specified, then the value of \fBGeometry\fR is used instead. If the resulting
1004
height is not specified (e.g., "", "=500", "+0-0"), then the default
1005
height of windows is calculated from fonts and line counts. If
1006
the width is not specified (e.g., "", "=x300", "-0+0"), then half of the
1007
display width is used. If unspecified, the height of a pick window
1008
defaults to half the height of the display.
1010
The following resources are defined:
1013
A short string that is the default label of the folder, Table of Contents,
1014
and view. The default shows the program name, vendor, and release.
1017
.B blockEventsOnBusy
1018
Whether to disallow user input and show a busy cursor while \fIxmh\fP is
1019
busy processing a command. If false, the user can `mouse ahead' and
1020
type ahead; if true, user input is discarded when processing lengthy
1021
\fImh\fP commands. The default is true.
1025
The name of the symbol used to represent the position of the pointer,
1026
displayed if \fBblockEventsOnBusy\fR is true, when \fIxmh\fR is
1027
processing a time-consuming command.
1028
The default is "watch".
1032
The foreground color of the busy cursor. Default is XtDefaultForeground.
1036
How often to check for new mail, make checkpoints, and rescan the Table
1037
of Contents, in minutes. If \fBcheckNewMail\fR is true, \fIxmh\fR checks
1038
to see if you have new mail each interval. If \fBmakeCheckpoints\fR is
1039
true, checkpoints are made every fifth interval. Also every fifth
1040
interval, the Table of Contents is checked for inconsistencies with the
1041
file system, and rescanned if out of date. To prevent all of these checks
1042
from occurring, set \fBCheckFrequency\fR to 0. The default is 1.
1043
This resource is retained for backward compatibility with user resource
1044
files; see also \fBcheckpointInterval\fP, \fBmailInterval\fP,
1045
and \fBrescanInterval\fP.
1049
If true, \fIxmh\fP will check at regular intervals to see if new mail
1050
has arrived for any of the top level folders and any opened subfolders.
1051
A visual indication will be given if new mail is waiting to be incorporated
1052
into a top level folder.
1054
The interval can be adjusted with \fBmailInterval\fR.
1057
.B "checkpointInterval \fP(class \fBInterval\fP)"
1058
Specifies in minutes how often to make checkpoints of volatile state,
1059
if \fBmakeCheckpoints\fP is true.
1060
The default is 5 times the value of \fBcheckFrequency\fP.
1063
.B checkpointNameFormat
1064
Specifies how checkpointed files are to be named. The value of this
1065
resource will be used to compose a file name by inserting the message
1066
number as a string in place of the required single occurance of `%d'. If
1067
the value of the resource is the empty string, or if no `%d' occurs in
1068
the string, or if "%d" is the value of the resource, the default will be
1069
used instead. The default is "%d.CKP". Checkpointing is done in the
1070
folder of origin unless an absolute pathname is given. \fIxmh\fP does
1071
not assist the user in recovering checkpoints, nor does it provide for
1072
removal of the checkpoint files.
1075
.B commandButtonCount
1076
The number of command buttons to create in a button box in between the toc
1077
and the view areas of the main window. \fIxmh\fP will create these buttons
1078
with the names \fIbutton1, button2\fP and so on, in a box with the name
1079
\fIcommandBox\fR. The default is 0.
1080
\fIxmh\fP users can specify labels and actions for the buttons in a private
1081
resource file; see the section ACTIONS AND INTERFACE CUSTOMIZATION.
1085
Initial geometry for windows containing compositions.
1089
The name of the symbol used to represent the pointer. Default is ``left_ptr''.
1093
Whether or not to print information to stderr as \fIxmh\fP runs.
1098
The folder used for message drafts. Default is ``drafts''.
1102
Default geometry to use. Default is none.
1105
.B hideBoringHeaders
1106
If ``on'', then \fIxmh\fR will attempt to skip uninteresting header lines
1107
within messages by scrolling them off the top of the view.
1112
Which folder to display on startup. May also be set with the command-line
1113
option \fB\-initial\fR. Default is ``inbox''.
1117
The absolute path name of your incoming mail drop file.
1118
In some installations, for example those using the Post Office Protocol,
1119
no file is appropriate.
1120
In this case, \fBinitialIncFile\fR should not be specified,
1121
or may be specified as the empty string,
1122
and \fIinc\fR will be invoked without a \-file argument.
1123
By default, this resource has no value.
1124
This resource is ignored if \fIxmh\fP finds an \fI.xmhcheck\fP file; see
1125
the section on multiple mail drops.
1128
.B "mailInterval (\fPclass\fB Interval)"
1129
Specifies the interval in minutes at which the mail should be checked, if
1130
\fBmailWaitingFlag\fP or \fBcheckNewMail\fP is true.
1131
The default is the value of \fBcheckFrequency\fR.
1135
The full path prefix for locating your mail folders. May also be set
1136
with the command line option, \fB\-path\fR. The default is the
1137
Path component in the \fIMH\fP profile, or ``$HOME/Mail'' if none.
1141
If true, \fIxmh\fP will attempt to set an indication in its icon when
1142
new mail is waiting to be retrieved. If \fBmailWaitingFlag\fP is true, then
1143
\fBcheckNewMail\fP is assumed to be true as well. The \fB\-flag\fP command
1144
line option is a quick way to turn on this resource.
1148
If true, \fIxmh\fP will attempt to save checkpoints of volatile edits.
1149
The default is false. The frequency of checkpointing is controlled by the
1150
resource \fBcheckpointInterval\fR. For the location of checkpointing, see
1151
\fBcheckpointNameFormat\fP.
1155
What directory in which to find the \fIMH\fR commands. If a command isn't
1156
found in the user's path, then the path specified here is used.
1157
Default is ``/usr/local/mh6''.
1160
.B "newMailBitmap \fP(class \fBNewMailBitmap\fP)"
1161
The bitmap to show in the folder button when a folder has new mail.
1162
The default is ``black6''.
1165
.B "newMailIconBitmap \fP(class \fBNewMailBitmap\fP)"
1166
The bitmap suggested to the window manager for the icon when any folder
1167
has new mail. The default is ``flagup''.
1170
.B "noMailBitmap (\fPclass\fB NoMailBitmap)"
1171
The bitmap to show in the folder button when a folder has no new mail.
1172
The default is ``box6''.
1175
.B "noMailIconBitmap (\fPclass\fB NoMailBitmap)"
1176
The bitmap suggested to the window manager for the icon when no folders
1177
have new mail. The default is ``flagdown''.
1181
Initial geometry for pick windows.
1185
The foreground color of the pointer. Default is XtDefaultForeground.
1188
.B prefixWmAndIconName
1189
Whether to prefix the window and icon name with "xmh: ". Default is true.
1193
An \fIsh\fP command to execute to print a message. Note that stdout and
1194
stderr must be specifically redirected. If a message or range of messages is
1195
selected for printing, the full file paths of each message file are
1196
appended to the specified print command. The default is ``enscript >/dev/null
1200
.B replyInsertFilter
1201
An \fIsh\fP command to be executed when the \fIInsert\fP button is activated
1202
in a composition window. The full path and filename of the source
1203
message is appended to the command before being passed to \fIsh\fP(1).
1204
The default filter is \fIcat\fP; i.e. it inserts the entire message
1205
into the composition. Interesting filters are:
1206
\fIsed 's/^/> /'\fP or
1207
\fIawk -e '{print " " $0}'\fP or
1208
\fI<mh directory>/lib/mhl \-form mhl.body\fP.
1211
.B "rescanInterval \fP(class \fBInterval\fP)"
1212
How often to check the Table of Contents of currently viewed folders
1213
and of folders with messages currently being viewed, and to update the Table
1214
of Contents if \fIxmh\fP sees inconsistencies with the file system in these
1216
The default is 5 times the value of \fBcheckFrequency\fP.
1220
When true, the next message will be the message prior to the current message
1221
in the table of contents, and the previous message will be the message
1222
after the current message in the table of contents. The default is false.
1226
When a message is sent from \fIxmh\fP, lines longer than this value will be
1227
split into multiple lines, each of which is no longer than \fBSendWidth\fP.
1228
This value may be overridden for a single message by inserting an additional
1229
line in the message header of the form \fISendBreakWidth: value\fP. This
1230
line will be removed from the header before the message is sent.
1231
The default is 2000 (to allow for sending mail containing source patches).
1235
When a message is sent from \fIxmh\fP, lines longer than \fBSendBreakWidth\fP
1236
characters will be split into multiple lines, each of which is no longer than
1238
This value may be overridden for a single message by inserting an additional
1239
line in the message header of the form \fISendWidth: value\fP. This
1240
line will be removed from the header before the message is sent.
1245
Whether to automatically show the current message after incorporating new
1246
mail. Default is true.
1250
Whether to skip over messages marked for copying when using ``View Next
1251
Message'' and ``View Previous Message''. Default is true.
1255
Whether to skip over messages marked for deletion when using ``View Next
1256
Message'' and ``View Previous Message''. Default is true.
1260
Whether to skip over messages marked for moving to other folders when
1261
using ``View Next Message'' and ``View Previous Message''. Default is true.
1265
If true, when popup command menus are used, the most recently selected
1266
entry will be under the cursor when the menu pops up. Default is false.
1267
See the file \fIclients/xmh/Xmh.sample\fR for an example of how to
1268
specify resources for popup command menus.
1272
Directory for \fIxmh\fR to store temporary files. For privacy, a user
1273
might want to change this to a private directory. Default is ``/tmp''.
1277
Initial geometry for main \fIxmh\fR toc and view windows.
1281
The percentage of the main window that is used to display the Table of
1282
Contents. Default is 33.
1286
How many characters to generate for each message in a folder's table of
1287
contents. Default is 100. Use less if the geometry of the main \fIxmh\fP
1288
window results in the listing being clipped at the right hand boundary, or
1289
if you plan to use \fImhl\fR a lot,
1290
because it will be faster, and the extra characters may not be useful.
1294
Initial geometry for windows showing a view of a message.
1296
.SH MULTIPLE MAIL DROPS
1298
Users may need to incorporate mail from multiple spool files or mail drops.
1299
If incoming mail is forwarded to the \fIMH slocal\fP program, it can
1300
be sorted as specified by the user into multiple incoming mail drops.
1301
Refer to the \fIMH\fP man page for \fIslocal\fP to learn how to specify
1302
fowarding and the automatic sorting of incoming mail in a \fI.maildelivery\fP
1305
To inform \fIxmh\fP about the various mail drops, create a file in your
1306
home directory called \fI.xmhcheck\fP. In this file, a mapping between
1307
existing folder names and mail drops is created by giving a folder name
1308
followed by the absolute pathname of the mail drop site, with some white
1309
space separating them, one mapping per line. \fIxmh\fP will read this file
1310
whether or not resources are set for notification of new mail arrival, and
1311
will allow incorporation of new mail into any folder with a mail drop.
1312
\fIxmh\fP will invoke \fIinc\fP with the \fI\-file\fP argument,
1313
and if \fIxmh\fP has been requested to check for new mail,
1314
it will check directly, instead of using \fImsgchk\fP.
1316
An example of \fI.xmhcheck\fP file format, for the folders ``inbox'' and
1319
inbox /usr/spool/mail/converse
1320
xpert /users/converse/maildrops/xpert
1323
.SH ACTIONS AND INTERFACE CUSTOMIZATION
1325
Because \fIxmh\fR provides action procedures which correspond to command
1326
functionality and installs accelerators, users can customize accelerators
1327
and new button functionality in a private resource file.
1328
For examples of specifying customized resources, see the file
1329
\fImit/clients/xmh/Xmh.sample\fR. To understand the syntax, see the
1330
Appendix of the \fIX Toolkit Intrinsics\fP specification
1331
on \fITranslation Table Syntax\fP, and any general explanation of
1332
using and specifying \fIX\fP resources.
1333
Unpredictable results can occur if
1334
actions are bound to events or widgets for which they were not designed.
1336
Here's an example of how to bind actions to your own \fIxmh\fP buttons,
1337
and how to redefine the default accelerators so that the Meta key is
1338
not required, in case you don't have access to the sample file mentioned
1342
! To create buttons in the middle of the main window and give them semantics:
1344
Xmh*CommandButtonCount: 5
1346
Xmh*commandBox.button1.label: Inc
1347
Xmh*commandBox.button1.translations: #override\\
1348
<Btn1Down>,<Btn1Up>: XmhIncorporateNewMail() unset()
1350
Xmh*commandBox.button2.label: Compose
1351
Xmh*commandBox.button2.translations: #override\\
1352
<Btn1Down>,<Btn1Up>: XmhComposeMessage() unset()
1354
Xmh*commandBox.button3.label: Next
1355
Xmh*commandBox.button3.translations: #override\\
1356
<Btn1Down>,<Btn1Up>: XmhViewNextMessage() unset()
1358
Xmh*commandBox.button4.label: Delete
1359
Xmh*commandBox.button4.translations: #override\\
1360
<Btn1Down>,<Btn1Up>: XmhMarkDelete() unset()
1362
Xmh*commandBox.button5.label: Commit
1363
Xmh*commandBox.button5.translations: #override\\
1364
<Btn1Down>,<Btn1Up>: XmhCommitChanges() unset()
1366
! To redefine the accelerator bindings to exclude modifier keys,
1367
! and add your own keyboard accelerator for Compose Message:
1369
Xmh*tocMenu.accelerators: #override\\n\\
1370
!:<Key>I: XmhIncorporateNewMail()\\n\\
1371
!:<Key>C: XmhCommitChanges()\\n\\
1372
!:<Key>R: XmhForceRescan()\\n\\
1373
!:<Key>P: XmhPackFolder()\\n\\
1374
!:<Key>S: XmhSortFolder()\\n
1375
Xmh*messageMenu.accelerators: #override\\n\\
1376
!:<Key>E: XmhComposeMessage()\\n\\
1377
!<Key>space: XmhViewNextMessage()\\n\\
1378
!:<Key>c: XmhMarkCopy()\\n\\
1379
!:<Key>d: XmhMarkDelete()\\n\\
1380
!:<Key>f: XmhForward()\\n\\
1381
!:<Key>m: XmhMarkMove()\\n\\
1382
!:<Key>n: XmhViewNextMessage()\\n\\
1383
!:<Key>p: XmhViewPreviousMessage()\\n\\
1384
!:<Key>r: XmhReply()\\n\\
1385
!:<Key>u: XmhUnmark()\\n
1388
\fIxmh\fR provides action procedures
1389
which correspond to entries in the command menus; these are given in the
1390
sections describing menu commmands, not here.
1391
In addition to the actions corresponding to commands in the menus,
1392
these action routines are defined:
1394
.B XmhPushFolder(\fR[\fIfoldername, ...\fR]\fB)\fR
1395
This action pushes each of its argument(s) onto a stack of foldernames.
1396
If no arguments are given, the selected folder is pushed onto the stack.
1399
This action pops one foldername from the stack and sets the selected folder.
1401
.B XmhPopupFolderMenu()
1402
This action should always be taken when the user selects a folder button.
1403
A folder button represents a folder and zero or more subfolders. The menu
1404
of subfolders is built upon the first reference, by this routine. If there
1405
are no subfolders, this routine will mark the folder as having no subfolders,
1406
and no menu will be built. In that case the menu button emulates a toggle
1407
button. When subfolders exist, the menu will popup, using the menu button
1410
.B XmhSetCurrentFolder()
1411
This action allows menu buttons to emulate toggle buttons in the function
1412
of selecting a folder. This action is for menu button widgets only,
1413
and sets the selected folder.
1415
.B XmhLeaveFolderButton()
1416
This action ensures that the menu button behaves properly when the user
1417
moves the pointer out of the menu button window.
1419
.B XmhPushSequence(\fR[\fIsequencename, ...\fR]\fB)\fR
1420
This action pushes each of its arguments onto the stack of sequence names.
1421
If no arguments are given, the selected sequence is pushed onto the stack.
1424
This action pops one sequence name from the stack of sequence names,
1425
which then becomes the selected sequence.
1427
.B XmhPromptOkayAction()
1428
This action is equivalent to pressing the okay button in the Create Folder popup.
1430
.B XmhReloadSeqLists()
1431
This action rescans the contents of the public \fIMH\fP sequences for the
1432
currently opened folder and updates the sequence menu if necessary.
1434
.B XmhShellCommand(\fI parameter \fR[\fI, parameter\fR]\fB)\fR
1435
At least one parameter must be specified. The parameters will be concatenated
1436
with a space character separator, into a single string, and the list of
1437
selected messsages, or if no messages are selected, the current message,
1438
will be appended to the string of parameters. The string will be executed
1439
as a shell command. The messages are always given as absolute pathnames.
1440
It is an error to cause this action to execute when there are no selected
1441
messages and no current message.
1443
.B XmhCheckForNewMail()
1444
This action will check all mail drops known to xmh. If no mail drops have
1445
been specified by the user either through the \fI.xmhcheck\fR file or by
1446
the \fBinitialIncFile\fP resource, the \fIMH\fP command \fImsgchk\fP is
1447
used to check for new mail, otherwise, \fIxmh\fP checks directly.
1449
.B XmhWMProtocols(\fP[\fBwm_delete_window\fP] [\fBwm_save_yourself\fP])
1450
This action is responsible for participation in window manager communication
1451
protocols. It responds to delete window and save yourself messages.
1452
The user can cause \fIxmh\fP to respond to one or both of these protocols,
1453
exactly as if the window manager had made the request, by invoking the
1454
action with the appropriate parameters. The action is insensitive to the
1455
case of the string parameters. If the event received is a ClientMessage
1456
event and parameters are present, at least one of the parameters must
1457
correspond to the protocol requested by the event for the request to be
1458
honored by \fIxmh\fP.
1460
.SH CUSTOMIZATION USING \fIMH\fR
1461
The initial text displayed in a composition window is generated by
1462
executing the corresponding \fIMH\fP command; i.e. \fIcomp\fP, \fIrepl\fP,
1463
or \fIforw\fP, and therefore message components may be customized as
1464
specified for those commands. \fIcomp\fP is executed only once per
1465
invocation of \fIxmh\fP and the message template is re-used for every
1466
successive new composition.
1468
\fIxmh\fP uses \fIMH\fP commands, including \fIinc\fP, \fImsgchk\fP,
1469
\fIcomp\fP, \fIsend\fP, \fIrepl\fP, \fIforw\fP,
1470
\fIrefile\fP, \fIrmm\fP, \fIpick\fP, \fIpack\fP, \fIsort\fP, and \fIscan\fP.
1471
Some flags for these commands can be specified
1472
in the \fIMH\fP profile; \fIxmh\fP may override them. The application
1473
resource \fBdebug\fP can be set to true to see how \fIxmh\fP
1474
uses \fIMH\fP commands.
1478
HOME - users's home directory
1480
MH - to get the location of the \fIMH\fP profile file
1482
~/.mh_profile - \fIMH\fR profile, used if the MH environment variable is not set
1484
~/Mail - directory of folders, used if the \fIMH\fR profile cannot be found
1486
~/.xmhcheck - optional, for multiple mail drops in cooperation with \fIslocal\fP.
1488
/usr/local/mh6 - \fIMH\fR commands, as a last resort, see \fBmhPath\fP.
1490
~/Mail/<folder>/.xmhcache - \fIscan\fP output in each folder
1492
~/Mail/<folder>/.mh_sequences - sequence definitions, in each folder
1494
/tmp - temporary files, see \fBtempDir\fP.
1496
X(__miscmansuffix__), xrdb(1), X Toolkit Intrinsics, Athena Widget Set, mh(1), enscript(1)
1498
At least one book has been published about \fIMH\fP and \fIxmh\fP.
1500
- When the user closes a window, all windows which are transient for that
1501
window should also be closed by \fIxmh\fP.
1503
- When \fBXmhUseAsComposition\fP and \fBXmhViewUseAsComposition\fP operate
1504
on messages in the \fBDraftsFolder\fP, \fIxmh\fP disallows editing of the
1505
composition if the same message is also being viewed in another window.
1507
- Occasionally after committing changes, the table of contents will appear
1508
to be completely blank when there are actually messages present.
1509
When this happens, refreshing the display, or typing Control-L in the
1510
table of contents, will often cause the correct listing to appear.
1511
If this doesn't work, force a rescan of the folder.
1513
- Should recognize and use the ``unseen'' message-sequence.
1515
- Should determine by itself if the user hasn't used \fIMH\fR before, and
1516
offer to create the .mh_profile, instead of hanging on inc.
1518
- A few commands are missing (rename folder, resend message).
1520
- WM_DELETE_WINDOW protocol doesn't work right when requesting deletion
1521
of the first toc and view, while trying to keep other \fIxmh\fP windows around.
1523
- Doesn't support annotations when replying to messages.
1525
- Doesn't allow folders to be shared without write permission.
1527
- Doesn't recognize private sequences.
1529
- \fIMH\fP will report that the \fI.mh_sequences\fP file is poorly formatted
1530
if any sequence definition in a particular folder contains more
1531
than \fIBUFSIZ\fP characters. \fIxmh\fP tries to capture these messages
1532
and display them when they occur, but it cannot correct the problem.
1534
- Should save a temporary checkpoint file rather than requiring changes
1535
to be committed in the non-shutdown case.
1537
Terry Weissman, formerly of Digital Western Research Laboratory
1539
Donna Converse, MIT X Consortium