Here are my viewer-hook and compose-hook procedures from my .tkmailrc. Find the matching procedures in your .tkmailrc and try putting in the things that interest you.
# PERSONAL HOOKS
# This procedure is called right after the viewer window is created
# Any command that references a widget on the viewer should go inside
# The argument 'mf' is the toplevel widget of the viewer. Browsing the
# mfv:new-viewer procedure in viewer.tcl will be necessary for discovering
# the widget structure of the viewer until a complete doc is written
proc mfv:viewer-hook { mft } {
global env mf mfp
#this SHOULD set the icon position
if {$mft == ".mf0"} { wm iconposition $mft 1000 830 }
# The following lines show how to add new buttons to the button bar
# button $mft.bb.arc -text "Archive" \
# -command "mfv:mesg-move $mft $mf(mail-directory)/received"
# pack after $mft.bb.incorp $mft.bb.arc {left expand fill}
# The following lines show how to bind keys in the main viewer
# bind $mft.mesg.txt "$mft.menu.mesg.m invoke 0"
# bind $mft.mesg.txt "$mft.menu.mesg.m invoke 1"
# The following lines show how to add extra menu items
# $mft.menu.edit.m add separator
# $mft.menu.edit.m add command -label {MetaMail . . .} \
# -command "mfv:xterm-command $mft metamail"
# the following menu pop's mail from a remote host to your
# local mailbox by prompting your for the remote passwd in an xterm.
$mft.menu.mail.m add command -label {POP mail from vaxsar} \
-command "mfv:xterm-command $mft {popclient -u etgold vaxsar}"
# this decodes mime messages into files
$mft.menu.edit.m add command -label {MIME decode} \
-command "mfv:pipe $mft tw $mft.mesg.txt 0 {munpack -qt %F} 0"
# this pgp decrypts the current message
$mft.menu.edit.m add command -label {PGP Decrypt . . .} \
-command "mfv:xterm-command $mft {pgp -m}"
# these decode base64
$mft.menu.edit.m add command -label {base64 decode xsel text}\
-command "mfv:pipe $mft xsel $mft.mesg.txt 0 {mmencode -u -p %F} 1"
$mft.menu.edit.m add command -label {base64 decode xsel to file}\
-command "mfv:pipe $mft xsel $mft.mesg.txt 0 {mmencode -u %F > tkmaildecode.out} 1"
# the following line make Replace the default instead
# of Discard for UNIX Pipes
# $mft.menu.edit.m entryconfigure {UNIX Pipe*} \
# -command "mfv:pipe $mft xsel $mft.mesg.txt 0 {} 1"
}
# This procedure is called by each compose window you create The
# arguement 'mfc' is the toplevel widget of the compose window.
# Browsing the mfv:copose procedure in compose.tk will be necessary
# for discovering the widget structure of the viewer until a complete
# doc is written
proc mfv:compose-hook { mfc } {
global mf mfp
# Here is how to bind keys in the text edit window
# bind $mfc.comp.txt \
# "$mfc.comp.txt insert end \"\n[exec date]\n\" "
# The next few lines show how to add a menu item to insert
# aliases into the To: entry field
menubutton $mfc.menu.alias -text {Alias} -menu $mfc.menu.alias.m
menu $mfc.menu.alias.m
for {set ndx 0} {$ndx < [llength $mfp(aliasaddr)]} {incr ndx} {
$mfc.menu.alias.m add command -label [lindex $mfp(aliasnames) $ndx] \
-command "mfv:my-alias-hook $mfc {[lindex $mfp(aliasaddr) $ndx]}"
}
pack append $mfc.menu $mfc.menu.alias {left}
menubutton $mfc.menu.pgp -text {PGP} -menu $mfc.menu.pgp.m
menu $mfc.menu.pgp.m
# set ethannamelist ""
$mfc.menu.pgp.m add command -label "PGP clearsign" \
-command "mfv:xterm-command $mfc {pgp -sta %F; mv %F.asc %F.out}"
$mfc.menu.pgp.m add command -label "PGP encrypt" \
-command "mfv:xterm-command $mfc {pgp -eta %F; mv %F.asc %F.out}"
# -command "for {set ethannamelist [$mfc.to.ent get]} {} ; mfv:xterm-command $mfc {pgp -eta %F $ethannamelist; mv %F.asc %F.out}"
# -command "mfv:xterm-command $mfc {pgp -eta %F [$mfc.to.ent get]; mv %F.asc %F.out}"
# -command "mfv:xterm-command $mfc {pgp -eta %F; mv %F.asc %F.out}"
#-command "mfv:xterm-command $mfc {pgp -eta %F; mv %F.asc %F.out}"
$mfc.menu.pgp.m add command -label "PGP encrypt AND sign" \
-command "mfv:xterm-command $mfc {pgp -esta %F; mv %F.asc %F.out}"
pack append $mfc.menu $mfc.menu.pgp {left}
# $mfc.menu.edit.m add command -label {base64 encode xsel}\
# -command "mfv:pipe $mfc xsel $mfc.mesg.txt 0 {mmencode %F} 1"
}