|
|
1.1 ! root 1: .TH XMH 1 ! 2: .SH NAME ! 3: \fIxmh\fR \- X window interface to the mh Mail Handler ! 4: .SH DESCRIPTION ! 5: \fIXmh\fR is a program that provides a window-oriented front end to the mh ! 6: Mail Handler. It is designed to take advantage of a large graphical ! 7: display and mouse; it will not function on an ordinary terminal at all. ! 8: ! 9: \fIXmh\fR consists of user-interface code only. To actually do things ! 10: with your mail, it makes calls to the \fImh\fR package. ! 11: ! 12: Please don't be misled by the size of this document. \fIXmh\fR really is ! 13: easy to use! ! 14: ! 15: .SH INSTALLATION ! 16: The current version of \fIxmh\fR requires that the user is already set up ! 17: to use \fImh\fR, version 6. To do so, see if there is a file ! 18: called .mh_profile in your home directory. If you do, check to see if it ! 19: contains a line that starts with ``Current-Folder''. If it does, then ! 20: you've been using version 4 or earlier of \fImh\fR; to convert to version ! 21: 6, you must remove that line. (Failure to do so causes spurious output to ! 22: stderr, which can hang \fIxmh\fR depending on your setup.) ! 23: ! 24: If you do not already have a .mh_profile, you can create one (and ! 25: everything else you need) by typing ``inc'' to the shell. ! 26: ! 27: For more information, refer to the \fImh\fR documentation. ! 28: ! 29: .SH RUNNING XMH ! 30: Run \fIxmh\fR as you would any other X application (e.g., xterm). It will ! 31: accept a command-line display (of the form ``displayname:displaynumber''); ! 32: the default display is specified in the environment variable DISPLAY. ! 33: ! 34: The rest of this document will probably be rather hard to follow without ! 35: actually running \fIxmh\fR and seeing the things being described. ! 36: ! 37: .SH BASIC SCREEN LAYOUT ! 38: \fIXmh\fR starts out with a single screen. There will be 6 or 7 areas on the screen: ! 39: ! 40: .TP 4 ! 41: .B \- ! 42: A list of your folders. (New users of mh will see only ``inbox'' here.) ! 43: .PP ! 44: .TP 4 ! 45: .B \- ! 46: A list of the global and folder-oriented commands. ! 47: .PP ! 48: .TP 4 ! 49: .B \- ! 50: A list of the messages in one of your folders (initially, this will show the ! 51: messages in ``inbox''). ! 52: .PP ! 53: .TP 4 ! 54: .B \- ! 55: A list of the message-oriented commands. ! 56: .PP ! 57: .TP 4 ! 58: .B \- ! 59: A view of one of your messages. (Initially this is blank.) ! 60: .PP ! 61: .TP 4 ! 62: .B \- ! 63: A list of commands for the message being viewed. ! 64: .PP ! 65: And, there will possibly be: ! 66: .TP 4 ! 67: .B \- ! 68: A list of message-sequences defined for this folder. This appears just ! 69: below the list of messages in this folder. (Message-sequences are ! 70: discussed below; if you don't know what they are, then you won't have any.) ! 71: ! 72: .SH XMH AND THE TOOLKIT ! 73: \fIXmh\fR uses a preliminary version of the X Toolkit. Many of the ! 74: features described below (scrollbars, buttonboxes, etc.) are actually part ! 75: of the Toolkit, and are described here only for completeness. For more ! 76: information, see the Toolkit documentation. ! 77: ! 78: .SH SCROLLBARS ! 79: Some parts of the screen will have a vertical area on the left containing ! 80: a grey bar. This area is a \fIscrollbar\fR. They are used whenever the ! 81: data in a window takes up more space than can be displayed. ! 82: The grey bar indicates what portion of your data is visible. Thus, if the ! 83: entire length of the area is grey, then you are looking at all your data. ! 84: If only the first half is grey, then you are looking at the top half of ! 85: your data. ! 86: ! 87: You can use the mouse in the scrollbar to change what part of the data is ! 88: visible. If you click with the middle button, then the top of the grey ! 89: area will move to where the mouse pointer is, and the corresponding ! 90: portion of data will be displayed. If you hold down the middle button, ! 91: you can drag around the grey area. This makes it easy to get to the top ! 92: of the data: just press with the middle, drag off the top of the ! 93: scrollbar, and release. ! 94: ! 95: If you click with the left button, then the data to the right of the mouse ! 96: pointer will scroll to the top of the window. If you click with the right ! 97: button, then the data at the top of the window will scroll down to where ! 98: the mouse pointer is. ! 99: ! 100: .SH BUTTONBOXES ! 101: Any area consisting of many words or short phrases, each enclosed in a ! 102: box, is called a \fIbuttonbox\fR. Each box is actually a button that you ! 103: can press by moving the mouse pointer onto it and pressing any mouse ! 104: button. If a given buttonbox has more buttons in it than can fit, it will ! 105: be displayed with a scrollbar, so you can always scroll to the button you ! 106: want. ! 107: ! 108: .SH ADJUSTING THE RELATIVE SIZES OF AREAS ON THE SCREEN ! 109: If you're not satisfied with the size of the various areas on the screen, ! 110: they can easily be changed. Near the right edge of the border between ! 111: each region is a black box, called a \fIknob\fR. Simply point to that ! 112: knob with the mouse pointer, press a mouse button, drag up or down, and ! 113: release. Exactly what happens depends on which mouse button you press. ! 114: ! 115: If you drag with the middle button, then only that border will move. This ! 116: mode is simplest to understand, but is probably the least useful. ! 117: ! 118: If you drag with the left mouse button, then you are adjusting the size of ! 119: the window above. \fIXmh\fR will attempt to compensate by adjusting some ! 120: window below it, but it will not change the size of buttonboxes below it. ! 121: ! 122: If you drag with the right mouse button, then you are adjusting the size ! 123: of the window below. \fIXmh\fR will attempt to compensate by adjusting ! 124: some window above it, but it will not change the size of buttonboxes above ! 125: it. ! 126: ! 127: All windows have a mininum and maximum size; you will never be allowed to ! 128: move a border past the point where it would make a window have an invalid ! 129: size. ! 130: ! 131: .SH SELECTED FOLDER ! 132: The selected folder is whichever foldername is hilighted in the top ! 133: buttonbox. Note that this is not necessarily the same folder that is ! 134: being viewed. To change the selected folder, just press on the desired ! 135: folder button. ! 136: ! 137: .SH GENERAL COMMANDS AND FOLDER COMMANDS ! 138: The second buttonbox contains commands of a global nature: ! 139: ! 140: .TP 8 ! 141: .B Quit XMH ! 142: Exits \fIxmh\fR, after first checking that you won't lose any changes. ! 143: .PP ! 144: .TP 8 ! 145: .B Compose Message ! 146: Composes a new message. A new window will be brought up; for a ! 147: description of it, see COMPOSITION WINDOWS, below. ! 148: .PP ! 149: .TP 8 ! 150: .B Open Folder ! 151: Display the data in the selected folder. Thus, the selected folder also ! 152: becomes the viewed folder. ! 153: .PP ! 154: .TP 8 ! 155: .B Open Folder in New Window ! 156: Creates a new screen, and displays the selected folder in that screen. ! 157: Note, however, that you may not display the same folder in more than one ! 158: screen at a time. ! 159: .PP ! 160: .TP 8 ! 161: .B Create Folder ! 162: Create a new folder. You will be prompted for a name for the new folder; ! 163: to enter the name, point the mouse at the blank box provided and type. ! 164: Hit the Confirm button when finished, or hit Abort to cancel this ! 165: operation. ! 166: .PP ! 167: .TP 8 ! 168: .B Delete Folder ! 169: Destroy the selected folder. You will be asked to confirm this action (see ! 170: CONFIRMATION WINDOWS). ! 171: ! 172: .SH HIGHLIGHTED MESSAGES, SELECTED MESSAGES ! 173: .SH AND THE CURRENT MESSAGE ! 174: It is possible to highlight a set of messages in the list of messages for the ! 175: viewed folder. To highlight a message, just click on it with the left mouse ! 176: button. To highlight a range of messages, click on the first one with the ! 177: left mouse button and on the last one with the right mouse button. ! 178: ! 179: The selected messages are the same as the highlighted messages, if any. If no ! 180: messages are highlighted, then the selected messages are considered the same ! 181: as the current message. ! 182: ! 183: The current message is indicated by a '+' next to the message number. It ! 184: usually corresponds to the message currently being viewed. ! 185: ! 186: .SH MESSAGE COMMANDS ! 187: The third buttonbox (fourth if you have message-sequences displayed) ! 188: contains commands to deal with messages: ! 189: ! 190: .TP 8 ! 191: .B Incorporate New Mail ! 192: Add any new mail received to your inbox folder, and set the current ! 193: message to be the first new message. (This button appears only if ! 194: ``inbox'' is the folder being viewed.) ! 195: .PP ! 196: .TP 8 ! 197: .B View Next Message ! 198: View the first selected message. If no messages are highlighted, view the ! 199: current message. If current message is already being viewed, view the ! 200: first unmarked message after the current message. ! 201: .PP ! 202: .TP 8 ! 203: .B View Previous Message ! 204: View the last selected message. If no messages are highlighted, view the ! 205: current message. If current message is already being viewed, view the ! 206: first unmarked message before the current message. ! 207: .PP ! 208: .TP 8 ! 209: .B Mark Deleted ! 210: Mark the selected messages for deletion. If no messages are highlighted, then ! 211: this will automatically display the next unmarked message. ! 212: .PP ! 213: .TP 8 ! 214: .B Mark Move ! 215: Mark the selected messages to be moved into the current folder. (If the ! 216: current folder is the same as the viewed folder, this command will just ! 217: beep.) If no messages are highlighted, then ! 218: this will automatically display the next unmarked message. ! 219: .PP ! 220: .TP 8 ! 221: .B Mark Copy ! 222: Mark the selected messages to be copied into the current folder. (If the ! 223: current folder is the same as the viewed folder, this command will just ! 224: beep.) ! 225: .PP ! 226: .TP 8 ! 227: .B Unmark ! 228: Remove any of the above three marks from the selected messages. ! 229: .PP ! 230: .TP 8 ! 231: .B View in New Window ! 232: Create a new window containing only a view of the first selected message. ! 233: .PP ! 234: .TP 8 ! 235: .B Reply ! 236: Create a composition window in reply to the first selected message. ! 237: .PP ! 238: .TP 8 ! 239: .B Forward ! 240: Create a composition window whose body is initialized to be the contents ! 241: of the selected messages. ! 242: .PP ! 243: .TP 8 ! 244: .B Use as Composition ! 245: Create a composition window whose body is initialized to be this message. ! 246: Note that any changes you make in the composition will also be saved in ! 247: this message. This function is meant to be used with the ``drafts'' folder ! 248: (see COMPOSITION WINDOWS). ! 249: .PP ! 250: .TP 8 ! 251: .B Commit Changes ! 252: Execute any deletions, moves, and copies that have been marked in this ! 253: folder. ! 254: .PP ! 255: .TP 8 ! 256: .B Print ! 257: Print the selected messages. \fIXmh\fR prints by by invoking ! 258: the \fIenscript\fR(1) command. ! 259: .PP ! 260: .TP 8 ! 261: .B Pack folder ! 262: Renumber the messages in this folder so they start with 1 and increment by ! 263: 1. ! 264: .PP ! 265: .TP 8 ! 266: .B Sort folder ! 267: Sort the messages in this folder in chronological order. As a side ! 268: effect, this also packs the folder. ! 269: .PP ! 270: .TP 8 ! 271: .B Force Rescan ! 272: Rebuild the list of messages. This can be used whenever you suspect \fIxmh\fR's ! 273: idea of what messages you have is wrong. (In particular, this is useful ! 274: if you ever change things using straight mh commands without using \fIxmh\fR.) ! 275: .PP ! 276: .TP 8 ! 277: .B Pick Messages ! 278: Define a new message-sequence. (See MESSAGE-SEQUENCES.) ! 279: .PP ! 280: The following buttons will appear but will be sensitive only if ! 281: the current folder has any message-sequences defined (See MESSAGE-SEQUENCES). ! 282: .TP 8 ! 283: .B Open Sequence ! 284: Change the viewed sequence to be the same as the selected sequence. ! 285: .PP ! 286: .TP 8 ! 287: .B Add to Sequence ! 288: Add the selected messages to the selected sequence. ! 289: .PP ! 290: .TP 8 ! 291: .B Remove from Sequence ! 292: Remove the selected messages from the selected sequence. ! 293: .PP ! 294: .TP 8 ! 295: .B Delete Sequence ! 296: Remove the selected sequence entirely. Note the messages themselves are ! 297: not effected; they simply are no longer grouped together as a message-sequence. ! 298: ! 299: .SH VIEW WINDOWS ! 300: The commands in these windows are the same as the message commands by the ! 301: same name, except instead of affecting the selected messages, they affect ! 302: the viewed message. In addition there is the ``Edit View'' button, which ! 303: allows you to edit the message being viewed. While editing, the ``Edit ! 304: View'' button will change to a ``Save View'' button, which should be ! 305: pressed to save your edits. ! 306: ! 307: .SH COMPOSITION WINDOWS ! 308: Aside from the normal text editing functions, there are three command ! 309: buttons associated with composition windows: ! 310: .TP 8 ! 311: .B Abort Comp ! 312: Abort this composition window. If changes have been made, you will be ! 313: asked to confirm losing them. ! 314: .PP ! 315: .TP 8 ! 316: .B Send ! 317: Send this composition. If any errors appear in the message header, you ! 318: will receive a mail message containing this composition and a description ! 319: of the error. ! 320: .PP ! 321: .TP 8 ! 322: .B Save ! 323: Save this composition in your drafts folder. (If you do not have a folder ! 324: named ``drafts'', one will be created.) Then you can safely close the ! 325: composition. At some future date, you can continue working on the ! 326: composition by opening your drafts folder, selecting the message, and ! 327: using the ``Use as Composition'' command. ! 328: ! 329: .SH TEXT EDITING COMMANDS ! 330: Whenever you are asked to enter any text, you will be using a standard ! 331: text editing interface. Various control and meta keystroke combinations ! 332: are bound to a somewhat Emacs-like set of commands. In addition, the ! 333: mouse buttons may be used to select a portion of text or to move the ! 334: insertion point in the text. Pressing the left mouse button causes the ! 335: insertion point to move to the mouse pointer. Double-clicking the left ! 336: button selects a word, triple-clicking selects a paragraph, and ! 337: quadruple-clicking selects everything. Any selection may be extended in ! 338: either direction by using the right mouse button. ! 339: ! 340: In the following, a \fIline\fR refers to one displayed row of characters ! 341: in the window. A \fIparagraph\fR refers to the text between carriage ! 342: returns. Text within a paragraph is broken into lines based on the ! 343: current width of the window. ! 344: ! 345: The following keystroke combinations are defined: ! 346: .TP 8 ! 347: .B Control-A ! 348: Move to the beginning of the current line. ! 349: .PP ! 350: .TP 8 ! 351: .B Control-B, Control-H, Backspace ! 352: Move backward one character. ! 353: .PP ! 354: .TP 8 ! 355: .B Control-D ! 356: Delete the next character. ! 357: .PP ! 358: .TP 8 ! 359: .B Control-E ! 360: Move to the end of the current line. ! 361: .PP ! 362: .TP 8 ! 363: .B Control-F ! 364: Move forward one character. ! 365: .PP ! 366: .TP 8 ! 367: .B Control-J, LineFeed ! 368: Create a new paragraph with the same indentation as the previous one. ! 369: .PP ! 370: .TP 8 ! 371: .B Control-K ! 372: Kill the rest of this line. ! 373: .PP ! 374: .TP 8 ! 375: .B Control-L ! 376: Repaint this window. ! 377: .PP ! 378: .TP 8 ! 379: .B Control-M, Return ! 380: New paragraph. ! 381: .PP ! 382: .TP 8 ! 383: .B Control-N ! 384: Move down to the next line. ! 385: .PP ! 386: .TP 8 ! 387: .B Control-O ! 388: Break this paragraph into two. ! 389: .PP ! 390: .TP 8 ! 391: .B Control-P ! 392: Move up to the previous line. ! 393: .PP ! 394: .TP 8 ! 395: .B Control-V ! 396: Move down to the next screenfull of text. ! 397: .PP ! 398: .TP 8 ! 399: .B Control-W ! 400: Kill the selected text. ! 401: .PP ! 402: .TP 8 ! 403: .B Control-Y ! 404: Insert the last killed text. ! 405: .PP ! 406: .TP 8 ! 407: .B Control-Z ! 408: Scroll the text one line up. ! 409: .PP ! 410: .TP 8 ! 411: .B Meta-< ! 412: Move to the beginning of the document. ! 413: .PP ! 414: .TP 8 ! 415: .B Meta-> ! 416: Move to the end of the document. ! 417: .PP ! 418: .TP 8 ! 419: .B Meta-[ ! 420: Move backward one paragraph. ! 421: .PP ! 422: .TP 8 ! 423: .B Meta-] ! 424: Move forward one paragraph. ! 425: .PP ! 426: .TP 8 ! 427: .B Meta-B ! 428: Move backward one word. ! 429: .PP ! 430: .TP 8 ! 431: .B Meta-D ! 432: Kill the next word. ! 433: .PP ! 434: .TP 8 ! 435: .B Meta-F ! 436: Move forward one word. ! 437: .PP ! 438: .TP 8 ! 439: .B Meta-H, Meta-Delete ! 440: Kill the previous word. ! 441: .PP ! 442: .TP 8 ! 443: .B Meta-I ! 444: Insert a file. If any text is selected, use the selected text as the ! 445: filename. Otherwise, a box will appear in which you can type the desired ! 446: filename. ! 447: .PP ! 448: .TP 8 ! 449: .B Meta-V ! 450: Move up to the previous screenfull of text. ! 451: .PP ! 452: .TP 8 ! 453: .B Meta-Y ! 454: Stuff the last selected text here. Note that this can be text selected in ! 455: some other text subwindow. Also, if you select some text in an xterm ! 456: window, it may be inserted in an \fIxmh\fR window with this command. ! 457: .PP ! 458: .TP 8 ! 459: .B Meta-Z ! 460: Scroll the text one line down. ! 461: .PP ! 462: .TP 8 ! 463: .B Delete ! 464: Delete the previous character. ! 465: .PP ! 466: For more information, see CUSTOMIZING TEXT EDITING. ! 467: ! 468: .SH CONFIRMATION WINDOWS ! 469: Whenever you press a button that may cause you to lose some work or is ! 470: otherwise dangerous, a window will appear asking you to confirm the ! 471: action. This window will contain an ``Abort'' button and a ``Confirm'' ! 472: button. Pressing the ``Abort'' button cancels the operation, and pressing ! 473: the ``Confirm'' will proceed with the operation. (A very handy shortcut ! 474: exists: if you press the offending button again, it will be interpreted as ! 475: a ``Confirm''. If you press any other command button, it will be ! 476: interpreted as an ``Abort''.) ! 477: ! 478: .SH MESSAGE-SEQUENCES ! 479: A mh message sequence is just a set of messages associated with some name. ! 480: They are local to a particular folder; two different folders can have ! 481: sequences with the same name. In all folders, the sequence ``all'' is ! 482: predefined; it consists of the set of all messages in that folder. (The ! 483: sequence ``cur'' is also usually defined for every folder; it consists of ! 484: only the current message. \fIXmh\fR hides ``cur'' from the user, instead ! 485: placing a ``+'' by the current message. Also, \fIxmh\fR does not support ! 486: the ``unseen'' sequence, so that one is also hidden from the user.) ! 487: ! 488: The message sequences for a folder are displayed as ! 489: buttons containing the names of the sequences (including ! 490: one for ``all''). The table of contents (aka ``toc'') is at any one time ! 491: displaying one message sequence. This is called the ``viewed sequence''; if ! 492: it's not ``all'', its name will be displayed in the title bar just after the ! 493: folder name. Also, at any time one of the sequence buttons will be ! 494: highlighted. This is called the ``selected sequence''. Note that the viewed ! 495: sequence and the selected sequence are not necessarily the same. (This all ! 496: pretty much corresponds to the way the folder buttons work.) ! 497: ! 498: The \fBOpen Sequence\fR, \fBAdd to Sequence\fR, \fBRemove from Sequence\fR, ! 499: and \fBDelete Sequence\fR buttons are active only if the viewed folder ! 500: contains message-sequences. ! 501: .PP ! 502: Note that none of the above actually effect whether a message is in the ! 503: folder. Remember that a sequence is a set of messages within the folder; ! 504: the above operations just affect what messages are in that set. ! 505: ! 506: To create a new sequence, press the ``Pick'' button. A new window will ! 507: appear, with lots of places to enter text. Basically, you can describe the ! 508: sequence's initial set of messages based on characteristics of the ! 509: message. Thus, you can define a sequence to be all the messages that were ! 510: from a particular person, or with a particular subject, and so on. You ! 511: can also connect things up with boolean operators, so you can select all ! 512: things from ``weissman'' with the subject ``xmh''. ! 513: ! 514: Hopefully, the layout is fairly obvious. The simplest cases are the ! 515: easiest: just point to the proper field and type. If you enter in more ! 516: than one field, it will only select messages which match all non-empty ! 517: fields. ! 518: ! 519: The more complicated cases arise when you want things that match one field ! 520: or another one, but not necessarily both. That's what all the ``or'' ! 521: buttons are for. If you want all things with the subject ``xmh'' or ! 522: ``xterm'', just press the ``or'' button next to the ``Subject:'' field. ! 523: Another box will appear where you can enter another subject. ! 524: ! 525: If you want all things either from ``weissman'' or with subject ``xmh'', but ! 526: not necessarily both, select the ``-Or-'' button. This will essentially ! 527: double the size of the form. You can then enter ``weissman'' in a from: box ! 528: on the top half, and ``xmh'' in a subject: box on the lower part. ! 529: ! 530: If you ever select the ``Skip'' button, then only those messages that ! 531: \fIdon't\fR match the fields on that row are included. ! 532: ! 533: Finally, in the bottom part of the window will appear several more boxes. ! 534: One is the name of the sequence you're defining. (It defaults to the name ! 535: of the selected sequence when ``Pick'' was pressed, or to ``temp'' if ! 536: ``all'' was the selected sequence.) Another box defines which sequence to ! 537: look through for potential members of this sequence; it defaults to the ! 538: viewed sequence when ``Pick'' was pressed. ! 539: ! 540: Two more boxes define a date range; only messages within that date range ! 541: will be considered. These dates must be entered in 822-style format: each ! 542: date is of the form ``dd mmm yy hh:mm:ss zzz'', where dd is a one or two ! 543: digit day of the month, mmm is the three-letter abbreviation for a month, ! 544: and yy is a year. The remaining fields are optional: hh, mm, and ss ! 545: specify a time of day, and zzz selects a time zone. Note that if the time ! 546: is left out, it defaults to midnight; thus if you select a range of ``7 ! 547: nov 86'' - ``8 nov 86'', you will only get messages from the 7th, as all ! 548: messages on the 8th will have arrived after midnight. ! 549: ! 550: ``Date field'' specifies which date field in the header to look at for ! 551: this date range; it probably won't be useful to anyone. If the sequence ! 552: you're defining already exists, you can optionally merge the old set with ! 553: the new; that's what the ``Yes'' and ``No'' buttons are all about. ! 554: Finally, you can ``OK'' the whole thing, or ``Cancel'' it. ! 555: ! 556: In general, most people will rarely use these features. However, it's ! 557: nice to occasionally use ``Pick'' to find some messages, look through ! 558: them, and then hit ``Delete Sequence'' to put things back in their original ! 559: state. ! 560: ! 561: .SH CUSTOMIZING XMH ! 562: As with all standard X applications, \fIxmh\fR may be customized through entries ! 563: in your .Xdefaults file. The following .Xdefaults entries are defined: ! 564: .TP 8 ! 565: .B BackGround ! 566: Background color. Currently, this will effect only buttons. (Default is ! 567: white.) ! 568: .PP ! 569: .TP 8 ! 570: .B ButtonFont ! 571: What font to use for button names. (Default is ``timrom10''.) ! 572: .PP ! 573: .TP 8 ! 574: .B CompButtonLines ! 575: How many rows of buttons to display under a composition. (Default is 1.) ! 576: .PP ! 577: .TP 8 ! 578: .B CompFont ! 579: What font to use when composing a message. (Default is ``6x13''.) ! 580: .PP ! 581: .TP 8 ! 582: .B CompGeometry ! 583: Initial geometry for windows containing compositions. ! 584: .PP ! 585: .TP 8 ! 586: .B CompLines ! 587: How many lines of a composition to display. (Default is 20.) ! 588: .PP ! 589: .TP 8 ! 590: .B ConfirmFont ! 591: What font to use for confirmation windows. (Default is ``timrom10b''.) ! 592: .PP ! 593: .TP 8 ! 594: .B FolderButtonLines ! 595: How many rows of folder command buttons to display. (Default is 1.) ! 596: .PP ! 597: .TP 8 ! 598: .B FolderLines ! 599: How many rows of foldername buttons to display. (Default is 1.) ! 600: .PP ! 601: .TP 8 ! 602: .B ForeGround ! 603: Foreground color. Currently, this will effect only title bars and ! 604: buttons. (Default is black.) ! 605: .PP ! 606: .TP 8 ! 607: .B Geometry ! 608: Default geometry to use. (Default is none.) ! 609: .PP ! 610: .TP 8 ! 611: .B HideBoringHeaders ! 612: If ``on'', then \fIxmh\fR will attempt to skip uninteresting header lines ! 613: within messages by scrolling them off. (Default is ``on''.) ! 614: .PP ! 615: .TP 8 ! 616: .B InitialFolder ! 617: Which folder to display on startup. (Default is ``inbox''.) ! 618: .PP ! 619: .TP 8 ! 620: .B InitialIncFile ! 621: The file name of your incoming mail drop. \fIxmh\fR tries to construct ! 622: a filename for the ``inc -file'' command, but in some installations ! 623: (e.g. those using the Post Office Protocol) no file is appropriate. ! 624: In this case, \fBInitialIncFile\fR should be specified as the empty string. ! 625: .PP ! 626: .TP 8 ! 627: .B LabelFont ! 628: What font to use for the title bars. (Default is ``timrom10i''.) ! 629: .PP ! 630: .TP 8 ! 631: .B MhPath ! 632: What directory in which to find the mh commands. If a command isn't found ! 633: here, then the directories in the user's path are searched. (Default is ! 634: ``/usr/local/mh6''.) ! 635: .TP 8 ! 636: .B PickGeometry ! 637: Initial geometry for pick windows. ! 638: .PP ! 639: .TP 8 ! 640: .B PickEntryFont ! 641: What font to use for user text fields in pick windows. (Default is ! 642: ``timrom10''.) ! 643: .PP ! 644: .TP 8 ! 645: .B PickTextFont ! 646: What font to use for static text fields in pick windows. (Default is ! 647: ``timrom10''.) ! 648: .PP ! 649: .TP 8 ! 650: .B PrintCommand ! 651: What sh command to execute to print a message. Note that stdout and stderr ! 652: must be specifically redirected! (Default is ``enscript >/dev/null ! 653: 2>/dev/null''). ! 654: .PP ! 655: .TP 8 ! 656: .B TempDir ! 657: Directory for \fIxmh\fR to store temporary directories. For protection, a user ! 658: might want to change this to a private directory. (Default is ``/tmp''.) ! 659: .PP ! 660: .TP 8 ! 661: .B TerseButtonNames ! 662: If ``on'', then command buttons will be displayed with much shorter names. ! 663: It is highly recommended to use this after gaining familiarity with ! 664: \fIxmh\fR. (Default is ``off''.) ! 665: .PP ! 666: .TP 8 ! 667: .B TocButtonLines ! 668: How many rows of message command buttons to display. (Default is 1.) ! 669: .PP ! 670: .TP 8 ! 671: .B TocFont ! 672: What font to use for a folder's table of contents. (Default is ``6x13''.) ! 673: .PP ! 674: .TP 8 ! 675: .B TocGeometry ! 676: Initial geometry for master \fIxmh\fR windows. ! 677: .PP ! 678: .TP 8 ! 679: .B TocLines ! 680: How messages to display in a folder's table of contents. (Default is 10.) ! 681: .PP ! 682: .TP 8 ! 683: .B TocWidth ! 684: How many characters to generate for each message in a folder's table of ! 685: contents. (Default is 300. Use 80 if you plan to use \fImhe\fR a lot.) ! 686: .PP ! 687: .TP 8 ! 688: .B ViewButtonLines ! 689: How many rows of buttons to display under a view of a message. (Default ! 690: is 1.) ! 691: .PP ! 692: .TP 8 ! 693: .B ViewFont ! 694: What font to use for a view of a message. (Default is ``6x13''.) ! 695: .PP ! 696: .TP 8 ! 697: .B ViewGeometry ! 698: Initial geometry for windows showing only a view of a message. ! 699: .PP ! 700: .TP 8 ! 701: .B ViewLines ! 702: How many lines of a message to display. (Default is 20.) ! 703: .PP ! 704: If TocGeometry, ViewGeometry, CompGeometry, or PickGeometry are not ! 705: specified, then the value of Geometry is used instead. If the resulting ! 706: height is not specified (e.g., "", "=500", "+0-0"), then the default ! 707: height is calculated from the fonts and line counts specified above. If ! 708: the width is not specified (e.g., "", "=x300", "-0+0), then half of the ! 709: display width is used. If unspecified, the height of a pick window ! 710: defaults to half the height of the display. ! 711: ! 712: Any of these options may also be specified on the command line by including a ! 713: word that contains the name of the .Xdefault option, an ``='', and the ! 714: desired value. Thus, to run \fIxmh\fR with terse button names, ! 715: ! 716: % xmh tersebuttonnames=on ! 717: ! 718: .SH CUSTOMIZING TEXT EDITING ! 719: The binding of keys are described in a file called ``.Tkeys''. \fIXmh\fR first ! 720: looks for a .Tkeys file in the user's root directory. If not found there, ! 721: it will use the global one stored in /usr/athena/lib/.Tkeys. ! 722: ! 723: Each line of .Tkeys contains a description of a key, a colon, and then the ! 724: function the key may perform. In more detail, the line consists of: ! 725: ! 726: Any set of ``m'', ``s'', ``l'', ``c'', ``~m'', ``~s'', ``~l'', ``~c''. ! 727: This describes the shift keys (meta, shift, lock, control) that need to be ! 728: used for this key. The tilde means ``no''. If a shift key is not ! 729: mentioned, then it will work for either position of that key. ! 730: Thus, ``c~m'' means that the control key must be pressed, and the meta key must ! 731: not be pressed; the function will be performed regardless of the status of ! 732: the shift and lock keys. ! 733: ! 734: Next comes the description of the key itself. This can be either a single ! 735: character, or a three digit number indicating the keycode. To specify a ! 736: key not in the main alphanumeric pad, you must use a keycode. Note that ! 737: the single character will describe an unshifted key, even if a shift key ! 738: is usually used to type this key. Thus, there is no difference between ! 739: using ``+'' and ``='' here, since they are both on the same key. Note ! 740: that ``\\'' escapes a character here in the usual manner. ! 741: ! 742: This is followed by a ``:'', and any amount of whitespace. Then comes a ! 743: list of functions for that key. Each function is either a character in ! 744: single quotes, a string in double quotes, or an unquoted string. Anything ! 745: in quotes means insert the specified string into the file. An unquoted ! 746: string names a text subwindow function to be performed when this key is ! 747: pressed. ! 748: ! 749: Hopefully, an example will make this clearer: ! 750: ! 751: cq: "abcdef" stuff 'q' ! 752: ! 753: When control-q is entered, the string "abcdef" will be inserted into the ! 754: text, the current selection will then be stuffed, and then the character 'q' ! 755: will be inserted. ! 756: ! 757: The legal functions are: ! 758: .TP 8 ! 759: .B backward-character ! 760: Move backward one character. ! 761: .PP ! 762: .TP 8 ! 763: .B backward-paragraph ! 764: Move backward one paragraph. ! 765: .PP ! 766: .TP 8 ! 767: .B backward-word ! 768: Move backward one word. ! 769: .PP ! 770: .TP 8 ! 771: .B beginning-of-file ! 772: Move to the beginning of the text. ! 773: .PP ! 774: .TP 8 ! 775: .B beginning-of-line ! 776: Move to the beginning of the current line. ! 777: .PP ! 778: .TP 8 ! 779: .B delete-next-character ! 780: Delete the character after the insertion point. ! 781: .PP ! 782: .TP 8 ! 783: .B delete-next-word ! 784: Delete the word after the insertion point. ! 785: .PP ! 786: .TP 8 ! 787: .B delete-previous-character ! 788: Delete the character before the insertion point. ! 789: .PP ! 790: .TP 8 ! 791: .B delete-previous-word ! 792: Delete the word before the insertion point. ! 793: .PP ! 794: .TP 8 ! 795: .B delete-selection ! 796: Delete the selection. ! 797: .PP ! 798: .TP 8 ! 799: .B end-of-file ! 800: Move to the end of the text. ! 801: .PP ! 802: .TP 8 ! 803: .B end-of-line ! 804: Move to the end of the current line. ! 805: .PP ! 806: .TP 8 ! 807: .B forward-character ! 808: Move forward one character. ! 809: .PP ! 810: .TP 8 ! 811: .B forward-paragraph ! 812: Move forward one paragraph. ! 813: .PP ! 814: .TP 8 ! 815: .B forward-word ! 816: Move forward one word. ! 817: .PP ! 818: .TP 8 ! 819: .B insert-file ! 820: Insert a file into the text. ! 821: .PP ! 822: .TP 8 ! 823: .B kill-previous-word ! 824: Kill the word before the insertion point. ! 825: .PP ! 826: .TP 8 ! 827: .B kill-selection ! 828: Kill the selection. ! 829: .PP ! 830: .TP 8 ! 831: .B kill-to-end-of-line ! 832: Kill from the insertion point to the end of the line. ! 833: .PP ! 834: .TP 8 ! 835: .B kill-to-end-of-paragraph ! 836: Kill from the insertion point to the end of the paragraph. ! 837: .PP ! 838: .TP 8 ! 839: .B kill-word ! 840: Kill the word after the insertion point. ! 841: .PP ! 842: .TP 8 ! 843: .B newline-and-backup ! 844: Create a new paragraph, leaving the insertion point on the previous one. ! 845: .PP ! 846: .TP 8 ! 847: .B newline-and-indent ! 848: Create a new paragraph with the same indentation as the current one. ! 849: .PP ! 850: .TP 8 ! 851: .B newline ! 852: Create a new paragraph. ! 853: .PP ! 854: .TP 8 ! 855: .B next-line ! 856: Move down one line. ! 857: .PP ! 858: .TP 8 ! 859: .B next-page ! 860: Move to the next screenfull of text. ! 861: .PP ! 862: .TP 8 ! 863: .B previous-line ! 864: Move up one line. ! 865: .PP ! 866: .TP 8 ! 867: .B previous-page ! 868: Move to the previous screenfull of text. ! 869: .PP ! 870: .TP 8 ! 871: .B redraw-display ! 872: Repaint the window. ! 873: .PP ! 874: .TP 8 ! 875: .B scroll-one-line-down ! 876: Scroll the text down one line. ! 877: .PP ! 878: .TP 8 ! 879: .B scroll-one-line-up ! 880: Scroll the text up one line. ! 881: .PP ! 882: .TP 8 ! 883: .B select-all ! 884: Select all the text. ! 885: .PP ! 886: .TP 8 ! 887: .B select-word ! 888: Select the word the insertion point is in. ! 889: .PP ! 890: .TP 8 ! 891: .B stuff ! 892: Insert the text that was last selected in any window. ! 893: .PP ! 894: .TP 8 ! 895: .B unkill ! 896: Insert the text that was last killed. (Note there is no way to get back ! 897: text that was deleted.) ! 898: ! 899: .SH FILES ! 900: ~/Mail ! 901: ! 902: ~/.mh_profile ! 903: ! 904: ~/.Tkeys ! 905: ! 906: /usr/athena/lib/.Tkeys ! 907: ! 908: .SH SEE ALSO ! 909: mh (1) - the mh Mail Handler ! 910: ! 911: .SH AUTHOR ! 912: Terry Weissman ([email protected]) ! 913: ! 914: .SH BUGS ! 915: Command-line syntax is silly. ! 916: ! 917: Printing support is minimal. ! 918: ! 919: Keyboard shortcuts for commands would be nice. ! 920: ! 921: Should handle the ``unseen'' message-sequence. ! 922: ! 923: Should determine by itself if the user hasn't used \fImh\fR before, and ! 924: offer to set things up for him or her. ! 925: ! 926: Will bomb if the file /usr/athena/lib/.Tkeys doesn't exist. ! 927: ! 928: There need to be a lot more text functions. In particular, searching ! 929: would be very nice. ! 930: ! 931: Still a few commands missing (rename folder, remail message). ! 932: ! 933: The user should probably be able to customize the buttonboxes somewhat.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.