The .elm/elmrc File
Elm, like lots of other software on the Unix TM system, has the ability to automatically read in a configuration
file at each invocation. The file must be called elmrc and reside in the .elm directory located in your home
directory. It can have any of the entries below, in any order. If you are missing any entries, or if you don't
have an .elm/elmrc file, the default values (listed below for each option) will be used. Note that those options
below designated with * can be altered using elm via the o)ptions screen. Also note that when you save a new
.elm/elmrc file via the `> ' command of the options screen, it will be (re)created including even those options
that have default values.
alternatives
This is a list of other machine/username combinations that you receive mail from (forwarded). This is used
when the group reply feature is invoked to ensure that you don't send yourself a copy of the outbound message.
(The default is a list of no alternatives.)
calendar*
This is used in conjunction with the `< ' scan message for calendar entries command, as the file to append any
found calendar entries to. (The default is calendar in your home directory.)
editor*
The editor to use when typing in new mail. If you select ``none'' or ``builtin'' you'll get a Berkeley Mail style
interface for all mail that doesn't already have text in the buffer (e.g. a reply, mail with a ``signature'', etc).
(The default is to use the value of $EDITOR in your current environment, and if not set, an editor selected by
the person who configured elm for your system.)
escape
The character used with the ``builtin'' editor (see above (editor)) to escape from text entry to input a command. When
a line begins with this character, the editor interprets it as a command rather than as text to add. (The default is
``~''.)
fullname*
This is the name the mailer will use in messages you send. It is highly recommended that you use your full
name and nothing strange or unusual, as that can appear extremely rude to people receiving your mail. (The default is to use the ``gcos'' field from the /etc/passwd file on systems that use this field to store full names, and
to use the contents of .fullname in your home directory on other systems.)
maildir*
This is your folder directory. When you specify a folder name beginning with the `=' metacharacter. Note
that `%' and `+' are synonymous with `=' throughout elm it stands for this directory name. That is, if you save
a message to folder =stuff the `=' will be expanded to the current value of maildir. (The default is the directory
Mail in your home directory.)
tmpdir*
Use this if you want to define your own directory for the temporary file Elm creates while running. This is only
necessary if using the system temporary directory could cause problems, such as when not all NFS clients mount
the common temporary directory, or when the temporary directory is prone to being cleared periodically. The
default entry of the system temporary directory is normally ok.
pager
This is the program to be used to display messages. You can specify ``builtin'' or the name of any standard
pager. If you use ``builtin+'', each screenfull of displayed message is ``paged'' from the top of your screen
with a title line, while ``builtin'' simply ``scrolls up'' subsequent screenfulls once it has ``paged'' the first
screenfull. (The default is to use the value of $PAGER in your current environment, and if not set, a pager
selected by the person who configured elm for your system, quite likely ``builtin+''.)
attribution
When you forward a message or reply to it, you can optionally attribute the quoted text to its original author.
Defining the attribution string here allows you to indicate the form that the attribution should take.
The sequence `%s' in the attribution will be replaced by the name of the original author. Examples are:
prefix
When you reply to a message or forward a message to another person, you can optionally include the original
message. Defining the prefix value here allows you to indicate what the prefix of each included line should be.
(The default is ``> '' and is standard in the Unix community.)
print*
This is the command used for printing messages. There are two possible formats for it, either a command that
can have a filename affixed to (as a suffix) before being executed, or a string that contains the meta-sequence
`%s' which will be replaced by the name of the file before being executed. Examples of each are:
print = print -formfeed
print = pr %s | lpr
(The default is set by the person who configured elm for your system.)
received mail
This is the folder to which incoming mail is saved after you've read it. When you answer no (`n') to the ``keep
unread messages in your incoming mailbox?'' prompt or yes (`y') to the ``store read messages in your
"received" folder?'', this is where the messages go. (The default is "=received", that is, a folder called received in
your maildir directory).
sentmail*
This is the folder to which a copy of outgoing mail is automatically saved. This will only be done if the copy
flag is turned on (see below). Also note that if the savename feature (see below) is enabled then this folder may
be ignored since the program may save to a folder that has the same name as the login of the person you're
sending to. Whether or not a copy is saved, and to what folder, can be changed just prior to sending a message.
(The default is "=sent", that is, a folder called sent in your maildir directory).
shell
This defines the shell to use when doing ``!'' escapes and such. (The default is to use the value of $SHELL in
your current environment, and if not set, a shell selected by the person who configured elm for your system.)
signature
This file, if defined, will be automatically appended to all outbound mail before the editor is invoked.
Furthermore, if you'd like a different ``.signature'' file for local mail and remote mail (remote being via other hosts),
you can alternatively define two variables, localsignature and remotesignature, to have the same functionality.
(The default is "localsignature" and "remotesignature" in your home directory.)
sortby*
You can have your folder sorted by any of the following ways:
- from
- This will sort according to whom each message is from.
- lines
- This will sort shortest to longest by message.
- mailbox
- This will leave the messages in the order found in the folder.
- received
- This will sort least recently received to most recently received.
- sent
- This will sort least recently sent to most recently sent.
- status
- This will sort by priority, action, new, tagged, then deleted.
- subject
- This will sort according to the subject of each message.
Each of these fields can also optionally be prepended with the sequence ``reverse-'' to reverse the order of the
sort. This doesn't imply anything about the order of the message in the folder itself and affects only their order
on the index screen. (The default is mailbox order.)
weedout
When specifying this option, you can list headers that you don't want to see when you are displaying a message.
This list can continue for as many lines as desired, as long as the continued lines all have leading indentation.
(The default is ``Received:'' and others.)
bounceback
This is a hop count threshold value and allows you to set up the mailer so that when you send mail more than n
machines away, it'll automatically include a ``Cc:'' to you through the remote machine. In practice this should
be very rarely used. (Note: this refuses to bounce mail off an Internet address. The default is to have it set to
zero, which disables the function)
timeout
On more advanced systems, it's nice to start up the mailer in a window and let it sit in background unless new
mail arrives (see wnewmail, not on-line, for another window based program) at which point it can be brought up to the
forefront of the system and read. In this case, it would be quite convenient to have the mailer internally resynchronize every so often. This option specifies the number of seconds that this occurs.
This is also useful for normal terminals, for example you can leave elm running at night (I usually do) and when
you come in in the morning it'll be all ready to read your mail!
(The default is a 300 second (5 minute) timeout period).
userlevel*
This is what the program uses to determine the relative level of sophistication of the user. The values are 0 for
a new user (the default), 1 for someone familiar with elm user, and 2 for experts. Some advanced features are
hidden from novice users, while experts get less verbose prompt messages.
alwaysdelete
When set, this changes the default answer of the prompt ``Delete messages?'' to the indicated value. The
default is to have the answer be No (i.e. alwaysdelete = OFF).
alwaysstore
This sets the default answer on the ``store read mail in "received" folder'' prompt to the value indicated. The
default is to have the default answer be No (i.e., alwaysstore = OFF).
alwayskeep
This sets the default answer on the ``keep unread mail in incoming mailbox'' However, if you answered No to
the ``store read mail in "received" folder'' it is presumed that you'd also want to keep your unread mail in the
incoming mailbox, too, and the value of alwayskeep is ignored. The default is to have the default answer be
Yes (i.e., alwayskeep = ON).
arrow*
Sometimes you are forced to use a slow, or ``dumb'' terminal. In this case, you can force the current message
pointer to be the ``-> '' sequence rather than the inverse bar. Note that this is overridden by the similar `-a'
command line option, see below (the default is OFF).
ask
This allows you to tell the elm system that you'd rather not be asked ``Delete Mail?'' and such each time you
quit, resynchronize a folder or change folders, and instead it should just use the values of ``alwaysdelete'',
``alwaysstore'', and ``awayskeep'' without prompting. Note that when you quit elm, if you use `Q' instead of `q',
you will never be questioned, regardless of how you have ask set. (The default is ON, i.e. to ask the questions).
askcc
If turned off, this will allow you to send mail without being presented the ``Copies to:'' prompt for each message. This still allows you to explicitly include addresses in the ``cc'' list via either ``~c'' in the builtin editor,
or via using the header editor. (The default is ON, i.e. to ask about copies.)
autocopy
If turned on, this will automatically copy the text of each message being replied to into the edit buffer.
Otherwise you will be prompted as to whether you want the message included in yours. (See the prefix option above.)
(The default is OFF.)
copy
This, in combination with the sentmail folder, will allow you to have silent copies of all outgoing mail made on
the outbound step. Whether a copy is saved and to which folder can be set prior to sending a message, see
below. (The default is OFF.)
forcename
This, in combination with the savename option, governs how a copy of an outgoing message will be saved.
(See savename below for details.) (The default is OFF.)
keep
The mail system has a habit of deleting folders when you've removed everything from them. With this option
turned on, it will instead preserve them as zero-byte files. This option does not apply to your incoming
mailbox. (The default is OFF.)
keypad
If on, this tells elm that you have an HP terminal and enables the < NEXT> , < PREV> ,
< HOME> and < SHIFT-HOME> keys. (The default is OFF.)
menu*
If turned off, this will inhibit the Menu display on all of the screen displays within the elm program. (Note that
this is overridden by the similar `-m' command line option, see below.) (The default is ON.)
names*
If turned off, the primary recipients' address is displayed on your screen with their full names when you send a
message. Otherwise, only the full names are given. (The default is ON.)
movepage
If this is enabled then commands that move through the folder by pages (the `+', `-', < right-arrow> , and < left-arrow> keys) will also move the current message pointer to the top of that page of messages. If this is turned
off then moving through the pages doesn't alter the current message pointer location. (The default is OFF.)
noheader
This boolean flag tells the mailer not to include the headers of messages when copying a message into a file
buffer for replying to or forwarding. (The default is ON.)
promptafter
If this flag is ON and you use an external pager, when the pager exits, you will be prompted for a command
rather than returned directly to the index screen. If the external pager you are using exits when it reaches end of
file (i.e. end of the message), you should have this flag ON, otherwise the last screen of the displayed message
will not be held but instead be immediately replaced by the index screen. If the external pager you are using
does not exit until you command it to exit, you have a choice. If you usually want to see the index screen
before issuing a command, having the flag OFF will cut down out the extra keystroke needed to return to the
index screen. If you usually don't need to see the index screen to before issuing the next command, having the
flag ON will allow you to proceed with your next command without having to wait for the redrawing of the index screen. (The default is ON.)
pointnew
If this is turned on, the mailer will be automatically pointing to the first new message in your folder when started, instead of at message #1. This will only be effective for the incoming mailbox since other folders are not
expected to have `new' mail. (The default is ON.)
resolve
This is a boolean flag that defines the behaviour of the program for such actions as deletion, saving a message
and so on. Specifically, with this option enabled, as soon as mail is `dealt with' the program moves you to the
next message in the folder, with deletion, undeletion, saving a message and forwarding a message all being
treated as dealing with email in this manner. (The default is ON.)
savename
One of the problems with electronic mail systems is that one tends to get very large, one-dimensional (flat) files
that contain lots of completely unrelated mail. If this option is turned on, elm will use a more intelligent
algorithm on incoming mail, when you save or copy it, the default mailbox to save to (changeable by pressing
anything other than < return> of course) is a folder that is the login name of the person who sent you the
message. Similarly, when sending mail out, instead of just blindly saving it to the sentmail folder, elm will save it
to a folder that is the login name of the person who is to receive the mail. When sending to a group, it's
saved to the first person in the list only.
If forcename is off (see above), the copy will be saved to that folder only if the folder already exists.
In practice, this means that important people that you communicate with (those that you tend to save mail from) have
folders that are actually a recorded log of the discussion in both directions and those others (random mailings)
are all stuffed in the sentmail folder for easy perusal and removal.
Otherwise, if you always want to save copies of outgoing messages in separate folders by recipient login name,
you'll want to set forcename to on. (The default for savename is ON.)
sigdashes
If on, this tells elm that you wish to follow the convention of prefixing your signature with newline dash dash
blank newline. This will be placed in your message before your signature file. If off, the signature file is
placed at the end of the message without any prefix.
softkeys
If on, this tells elm that you have an HP terminal with the HP 2622 function key protocol and that you'd like to
have them available while in the program. (The default is OFF.)
titles
This flag allows you to have the first line of a message titled with:
where all the information has been previously extracted from the message. This is especially useful if you weed
out all the headers of each message with a large `weedout' list... (The default is ON.)
warnings
The mailer likes to warn you when you send mail to a machine that cannot be directly accessed. In some
situations, however, the system is set up so that mail is automatically forwarded to another machine that might then
have better connections. Setting this flag to OFF will allow you to effectively shut off all the warning
messages. Use of this flag requires support of the uuname command on your system. Without this command, the
flag will be cleared to OFF automatically. (The default is ON.)
weed
This is a boolean flag that, in combination with the ``weedout'' list, allows you to custom define the set of
headers you would like to not have displayed while reading messages. (The default is ON.)
One more thing: the format for each of the lines is:
variable = value
and for boolean variables, value can be `ON' or `OFF' only.
For a better idea of how this all works, here's my .elm/elmrc file. While looking through it, notice that you can
have lots of comments and blank lines for readability and that you can also use `shell variables' and the `~'
metacharacter for your home directory, and they are expanded accordingly when read in by the mailer. (Note
that this was automatically saved by the elm program on the fly from the o)ptions screen)
#
# .elm/elmrc - options file for the ELM mail system
#
# Saved automatically by ELM 2.2 for Dave Taylor
#
# For yes/no settings with ?, ON means yes, OFF means no
# where to save calendar entries
calendar = ~/.Agenda
# what editor to use ("none" means simulate Berkeley Mail)
editor = none
# the character to use in the builtin editor for entering
# commands
escape = ~
# the full user name for outbound mail
fullname = Dave Taylor
# where to save received messages to, default file is
# "=received"
receivedmail = $HOME/Mail/received
# where to save my mail to, default directory is "Mail"
maildir = /users/taylor/Mail
# program to use for displaying messages ('builtin' is
# recommended)
pager = builtin
# prefix sequence for indenting included message text in
# outgoing messages...
prefix = >_
# how to print a message ('%s' is the filename)
print = lpr -Plw2 %s
# where to save copies of outgoing mail to, default file is
# "=sent"
sentmail = /users/taylor/Mail/mail.sent
# the shell to use for shell escapes
shell = /bin/csh
# local ".signature" file to append to appropriate messages...
localsignature = localsig
# remote ".signature" file to append to appropriate messages...
remotesignature = remotesig
# do we want dashes above signatures? (News 2.11 compatibility
# and convention)
sigdashes = ON
# how to sort folders, "Mailbox" by default
sortby = Reverse-Received
# should the default be to delete messages we've marked for
# deletion?
alwaysdelete = ON
# should the default be to store read messages to the "received"
# folder?
alwaysstore = ON
# should the default be to keep unread messages in the incoming
# mailbox?
alwayskeep = ON
# should we use the "->" rather than the inverse video bar?
arrow = OFF
# should the message disposition questions be displayed(ON) or
# auto-answered(OFF) with the default answers when we resync or
# change folders?
ask = ON
# would you like to be asked for Carbon-Copies information each
# msg?
askcc = ON
# automatically copy message being replied to into buffer?
autocopy = OFF
# threshold for bouncing copies of remote uucp messages...
# zero = disable function.
bounceback = 0
# save a copy of all outbound messages?
copy = ON
# do we want to be able to mail out AT&T Mail Forms?
forms = OFF
# should we keep folders from which all messages are deleted?
keepempty = OFF
# we're running on an HP terminal and want HOME, PREV, NEXT, etc...
keypad = OFF
# should we display the three-line 'mini' menu?
menu = ON
# when using the page commands (+ - ) change the
# current message pointer...?
movepage = ON
# just show the names when expanding aliases?
names = ON
# when messages are copied into the outbound buffer, don't include
# headers?
noheader = ON
# start up by pointing to the first new message received, if
# possible?
pointnew = ON
# prompt for a command after the external pager exits?
promptafter = ON
# emulate the mailx message increment mode (only increment after
# something has been 'done' to a message, either saved or deleted,
# as opposed to simply each time something is touched)?
resolve = ON
# save messages, incoming and outbound, by login name of
# sender/recipient?
savename = ON
# save outbound messages by login name of sender/recipient even
# if the associated folder doesn't already exist?
forcename = OFF
# are we running on an HP terminal and want HOME, PREV, NEXT,
# etc...? (this implies "keypad=ON" too)
softkeys = OFF
# set the main prompt timeout for resynching...
timeout = 60
# display message title when displaying pages of message?
titles = ON
# are we good at it? 0=beginner, 1=intermediate, 2+ = expert!
userlevel = 2
# tell us about addresses to machines we can't directly get to?
warnings = OFF
# enable the weedout list to be read?
weed = ON
# what headers I DON'T want to see, ever.
weedout = "Path:" "Via:" "Sent:" "Date" "Status:" "Original"
"Phase" "Subject:" "Fruit" "Sun" "Lat" "Buzzword" "Return"
"Posted" "Telephone" "Postal-Address" "Origin" "X-Sent-By-Nmail-V"
"Resent" "X-Location" "Source" "Mood" "Neuron" "Libido" "To:"
"X-Mailer:" "Full-Name:" "X-HPMAIL" "Cc:" "cc:" "Mmdf" "Network-"
"Really-" "Sender:" "Post" "Message-" "Relay-" "Article-" "Lines:"
"Approved:" "Xref:" "Organization:" "*end-of-user-headers*"
# alternative addresses that I could receive mail from (usually a
# forwarding mailbox) and don't want to have listed...
alternatives = hplabs!taylor hpldat!taylor taylor@hplabs
taylor%hpldat