Use the Bind dialog to set additional keystroke bindings for various editing functions. For cursor keys, you first need to figure out what their X Keysyms are. I use the "xev" program for this. Assuming the keysyms are Up, Down, Left, and Right, then you'd add <Key-Up>; to the up1line function, etc. The Bind dialog lets you have multiple sequences for a function - just space separate them. You may have to drag the entry widget with the middle mouse button to make room to add stuff to the end.
There are many Compose key sequences that are defined to let you do this. Your X environment may also specially map some keys. For a list of the Compose key sequences, select the Compose Key menu entry under Bindings. Press the Compose key and then the two characters in the left list in order to get the special character on the right hand side. You can redefine what the Compose key is mapped to in the Simple Edit Bindings... dialog.
The most likely cause is that the TK send facility does not work for you because of Xauthority issues. See FAQ 4a & 4b. If you cannot get send working, you have two options. First, disable the background process so that all periodic activity is done in the front-end. Do this via the preferences entry for Background Processing.
Another cause that might disable inc completely is lack of the MAILDROP environment variable. This should be set to the name of the spool file that contains incoming mail (unless you are using POP). The latest Exmh will warn you about this and try to choose a default value, but to be safe you should set this up properly.
echo 'send exmh {Exmh_Status "Hello, world!"}; exit' | wish
In addition, if there are any hosts explicitly lists, you must explicitly remove them:
xhost -localhost
There is a Background Processing preferences setting to clear out your xhost list automatically. You need to restart exmh for this setting to take effect.
if [ ! \( -d $HOME -a -w $HOME \) ]; then echo "Warning: Can't write X authority file" 1>&2 ; auth_args="" else authfname=$HOME/.xnews.`uname -n`$DISPLAY ${OPENWINHOME}/lib/mkcookie $authfname -auth magic-cookie auth_args="-auth $authfname" fi ; ${OPENWINHOME}/bin/xnews $auth_args $server_args $xnews_config_args ;;
There is a more lengthy example given in the misc/Xauthority file that comes with the exmh distribution.
http://ce-toolkit.crd.ge.com/tkxauth/
for how to set up xauth on your server. When you log into work, just set up a local script that does:
xauth nlist $DISPLAY | rsh host.at.work.com xauth nmerge -
to resynchronize the session key.
You can set up rsh to work correctly. In your .rhosts at work, put a line like:
host.at.home.net homeuser
and change the command above to read:
xauth nlist $DISPLAY | rsh host.at.work.com -l workuser xauth nmerge -I have had mismatched accounts on lots of hosts, and nary a problem keeping the session keys in sync.
A better answer, however, is to use ssh (the secure shell) instead of rsh. Ssh is a drop-in replacement for rsh but with security features including encryption and authentication. It also tunnels X traffic through the encrypted link and automatically sets your DISPLAY variable on the remote side.
There are pointers to these packages in the software page.
xbmsize48 | xbm2ikon | compfaceIf you put an X-Face header in your replcomps file (see 15) then you need to double any % and \ in the X-Face string. For example,
abc%def\efgneeds to be written as
abc%%def\\xyzin the X-Face header of your replcomps files.
uncompface | ikon2xbm(You might need absolute pathnames if these programs are not otherwise on your PATH). uncompface comes with the faces package. ikon2xbm comes with exmh as misc/ikon2xbm.c Just compile it with
cc -o ikon2xbm ikon2xbm.cNote, this is slower than I'd like, plus the results are not saved anywhere. The intended use of the X-Face header was that the mail agent would update the facesaver database in the background using it.
There are two different approaches that may be used to read news with exmh. The older technique requires that the news hiearchy be available locally or via NFS. Here's the writeup on that:
To get started, just make a symbolic link from your ~/Mail directory into the news spool file system. This requires access (e.g., NFS) to the news spool file system, of course. You can do it for a single newsgroup, i.e. clari.feature.dilbert. My symlink looks like:Mail/dilbert -> /net/news/news-1/news/spool/clari/feature/dilbertOr, you can link into the interior of the news hierarchy. You might run into a problem from the MH folders command that limits it to about 300 folders. Change the NFOLDERS constant in MH src/h/mh.h from 300 to 30,000 and you shouldn't have any more trouble ;-)
The other technique requires that news be available via an NNTP server. This technique will presort articles into your folders and is described elsewhere in the documentation.
*activeBackground: #efefef *activeForeground: black *selector: black *background: #dfdfdf *foreground: black *selectBackground: #bfdfff *Scale.activeForeground: #efefef *Scale.sliderForeground: #dfdfdf *Scrollbar.foreground: #dfdfdf *Scrollbar.activeForeground: #efefef *Button.disabledForeground: #7f7f7f *Checkbutton.disabledForeground: #7f7f7f *Radiobutton.disabledForeground: #7f7f7f *Menu.disabledForeground: #7f7f7f
/bin/ps $pidWhile on SysV-style systems you need the -p flag
/bin/ps -p $pid
53 5 * * * find /home/cwg/Mail -name ',*' -exec rm {} \;
rmmproc: /bin/rmThis causes the MH rmm command to invoke /bin/rm to nuke the message
*Mops.ubuttonlist: myrepl *Mops.myrepl.text: Repl *Mops.myrepl.command: Msg_Reply {any valid repl arguments here}See the MH man page on repl for more details. Common flags include
-cc me -nocc me -cc all -nocc all -filter form
---------cut here for sample components file----------- To: Subject: Fcc: outbox Cc: X-Face: "HxE|?EnC9fVMV8f70H83&{fgLE.|FZ^$>@Q(yb#N,Eh~N]e&]=>r5~UnRml1:4EglY{9B+ :'wJq$@c_C!l8@<$t,{YUr4K,QJGHSvS~U]H`<+L*x?eGzSk>XH\W:AK\j?@?c1o<k;j'Ei/UL)!*0 ILwSR)J\bc)gjz!rrGQ2#i*f:M:ydhK}jp4dWQW?;0{,#iWrCV$4~%e/3)$1/D Brent Welch Xerox-PARC ------------end sample components file----------------- ---------cut here for replcomps - compare X-Face-Header differences------ %(lit)%(formataddr %<{reply-to}%|%<{from}%|%{sender}%>%>)\ %<(nonnull)%(void(width))%(putaddr To: )\n%>\ %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ %<(nonnull)%(void(width))%(putaddr cc: )\n%>\ %<{subject}Subject: Re: %{subject}\n%>\ %<{date}In-reply-to: %<(mbox{from})%(mbox{from})%|%(friendly{from})%>\ 's message of \ %<(nodate{date})%{date}%|%(tws{date})%>.%<{message-id} %{message-id}%>\n%>\ X-Face: "HxE|?EnC9fVMV8f70H83&{fgLE.|FZ^$>@Q(yb#N,Eh~N]e&]=>r5~UnRml1:4EglY{9B+ :'wJq$@c_C!l8@<$t,{YUr4K,QJGHSvS~U]H`<+L*x?eGzSk>XH\\W:AK\\j?@?c1o<k;j'Ei/UL)!*0 ILwSR)J\\bc)gjz!rrGQ2#i*f:M:ydhK}jp4dWQW?;0{,#iWrCV$4~%%e/3)$1/D Fcc: outbox\n --------------end sample replcomps file---------------- --------cut here for sample reply filter--------------- from:nocomponent,formatfield=\ ">>>%(friendly{text}) said:" body:component="> ",offset=1,overflowoffset=4 : :--------------------------------- : Brent Welch Xerox PARC ----------end of sample reply filter------------------- ----------cut here for sample forwcomps file----------- To: Cc: Subject: Fcc: outbox ----------end of forwcomps file------------------------ ----------cut here for sample forward filter----------- width=80,overflowtext=,overflowoffset=10 leftadjust,compress,compwidth=9 Date:formatfield="%<(nodate{text})%{text}%|%(tws{text})%>" From: To: cc: Subject: : body:nocomponent,overflowoffset=0,noleftadjust,nocompress ----------end of sample forward filter-----------------
Use the Fcc: header, which puts a copy of your out-going mail into a folder. You can get this to appear in your messages in two ways.
<Ethan Miller says:> I use the mp package to print mail (and other files as well). Mailp (one of the commands in mp) prints mail nicely. My print command is:
mailp -landscape -twosided -bsdprinter $file<Anne Possoz adds:> But without metamail piped to mp, in certain circumstances like mail coming from MacIntosh (is0-8859, quote-printable) the accents do not come right. That is why we use:
metamail $file | mp -l | lpYou can get mp at ftp.x.org in contrib/utilities.
This is a feature of the scan and inc MH programs. They take a macro file that describes how to generate this display. The default is buried in your MH lib directory as scan.form, or scan.default
Here is what I have for the default:
%; NOTE: This file is supplied for reference only; it shows the
default
%; format string (for non-UK sites) which was compiled into "scan".
%; See the source file "h/scansbr.h" for details.
%4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\
%02(mon{date})/%02(mday{date})%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%>
\ %{subject}%<{body}<<%{body}>>%>
Copy this into ~/Mail/scan.form Add
scan: -form scan.form inc: -form scan.formto your .mh_profile
NOTE: Exmh depends on the output of the scan form to have the message number come first, followed by a character that can be either a space or a plus '+' to mark the current message So - leave this magic at the front (you can change the 4 as noted below)
%4(msg)%<(cur)+%| %>
Now edit the form as described below.
Remove the trailing "%<{body}<<%{body}>>%>" from the scan.form
Change the leading "%4(msg)" to "%5(msg)" (or %6 to allow > 99999
MH provides an annotation facility that will cause new message headers to be added to a message when you reply to or forward the message. In addition, the default scan.form adds a dash (-) to the scan listing for annotated messages so you can see their status in the folder table of contents.
To get annotations you must add to your .mh_profile.
repl: -annotateIf you have other profile options for repl, just add -annotate. Note: it won't work to abbreviate it as -anno.
Did you know you can colorize rfc822 headers in the message display by setting *m_tagnames and related X resources? This feature has been around for some time, but seems to be little-known. Here's what I have in my ~/.exmh/exmh-defaults-color file.
*m_tagnames: hidden subject from x-filters-matched content-type
x-mailer replied replied-to
m_tagnames lists headers that have display resources associated with them. There are two special ones, "hidden" applies to the headers that are scrolled off the top of the display. "general" applies to the ones that are visible by default. The rest are just literal names of headers.
The display resources are anything that is valid for the Tk text widget tag facility. The most useful ones are font and foreground, but you can check out the Tk text widget man page for all the possibilities. Here is what I use:
*m_hidden: -font 6x10
*m_subject: -foreground blue
*m_x-filters-matched: -foreground "medium sea green"
*m_content-type: -foreground "medium sea green"
*m_x-mailer: -foreground "medium sea green"
*m_from: -foreground blue
*m_replied: -foreground "violet red"
Create a file called .signature in your home directory. Then when you hit the Sign button, sedit will add the contents of that file to the end of your message. To create multiple signatures, just create multiple files with .signature as a prefix (for example, .signature and .signature.rant). Then the Sign button becomes a Sign... menu.
If you have Auto-sign enabled in the Simple Editor Preferences section, your signature will be added to the message when you hit Send rather than when you hit the Sign button. In this case, the "(intelligent)" option on the Sign... menu causes messages being sent solely within the local domain to be signed using a different file from those being sent outside of it; the Intelligent Signatures Preferences section allows you to specify which files to use.
Another trick is to create an executable program that outputs your signature text. If you call this program .signature.something, sedit will append the output of the program to the end of your message when you choose that signature file. Three arguments will be passed to this program (in this order): the command used to create that message (i.e. one of [comp, repl, forw, dist, unknown]), the name of the current folder when composition was started, and the filename of the draft message. You can then use these arguments in your program to decide what signature text to output: for example, you might look inside the draft message to find out who it is being sent to, or what its subject line says.
First get tkstep up and running. tkstep may be found at one of these locations:
Second, in the exmh installer, specify wishstep instead of wish.
Third, go into Preferences>Windows & Scrolling and move the Vertical Scrollbar from the right side to the left side.