# # V1.3 updated file - This is Stefan `Sec` Zehl's .muttrc # # This and the other files can be accessed as http://sec.42.org/mutt/.mutt/ # ############ Make color settings depend on $TERM source "~/.mutt/$TERM ############ Should be in an alias-file ( Now it is -- Sec ) set alias_file=~/.mutt/aliases source ~/.mutt/aliases ############ People can reach me via maaaaany ways :) # Liviu made this an regexp, now it's faster, but harder to read. # Removed: sec@muc.de sec@camelot.de zehl@informatik.tu-muenchen.de set alternates=^sec(\\+.*)?@.*(bos-muenchen.de|muffin.org|42.org|leo.org|musin.de|space.net)|sec$|.*@sec.42.org|stefan.zehl@.*42.org # actually this one catches too much, but I've been lazy... # I'm now using a maildir-inbox set spoolfile=+Inbox/ ############ Bind's & Macros bind pager \Cu previous-page bind pager \Cd next-page macro pager \Cb ":set nowait_key pipe_decode\n|urlview\n:set wait_key\n" "Call urlview" macro index \Cb ":set nowait_key pipe_decode\n|urlview\n:set wait_key\n" "Call urlview" # Emulate "set resolve" for macro index \cr "Mark Thread as read" # termcap is terribly wrong sometimes.... macro generic \r macro generic \e[A macro generic \e[B macro generic \e[C macro generic \e[D macro generic \e[1~ macro generic \e[4~ macro generic \e[5~ macro generic \e[6~ macro generic \eOP macro generic \eOQ macro generic \eOR macro generic \eOS macro pager \r macro pager \e[A macro pager \e[B macro pager \e[C macro pager \e[D macro pager \e[1~ macro pager \e[4~ macro pager \e[5~ macro pager \e[6~ macro pager \eOP macro pager \eOQ macro pager \eOR macro pager \eOS macro editor \r macro editor \e[A macro editor \e[B macro editor \e[C macro editor \e[D macro editor \e[1~ macro editor \e[4~ macro editor \e[5~ macro editor \e[6~ macro editor \eOP macro editor \eOQ macro editor \eOR macro editor \eOS # Comfort bind editor kill-word bind index - previous-jump # Needs my previous-jump patch bind pager - previous-jump # show _all_ mails macro index \# "l~A\r" "Show ALL Mails" # show flagged and unread mails (i.e. important) macro index \' "l(~F | ~U) ! ~D\r" "Show Important Mails" # show unreplied and flagged mails (i.e. TODO) macro index \` "l(! ~Q | ~F) ! ~D\r" "Show TODO Mail" # mark everything as read macro index + "T~N\n;N;t" "Mark everything as read" # Mark deleted mails as read. So the new-mail-counter is correct. macro index , "T~D\n;WN;W*" "De-New deleted Mails" macro pager , "T~D\n;WN;W*" "De-New deleted Mails"" macro pager S ":set invsmart_wrap invmarkers\n" #toggle Linewrap for cut'n'paste # To pgp-sign the old way :) macro compose S "Fpgp +verbose=0 -fast +clearsig=on\ny^T^Uapplication/pgp; format=text; x-action=sign\n" "PGP-sign the OLD way" # To pgp-encrypt the old way. Needs my expand-hook patch. send-hook . 'macro compose E "Fpgp +verbose=0 +clearsig=on -fate \"%O\"\ny^T^Uapplication/pgp; format=text; x-action=encrypt\n"' # majordomo-Mail approver macro pager A "|~mj/bin/approve\nd" "Majordomo-Approve" #I want to leave at ONCE with 'X'. No questions asked, all changes lost. macro index X x "Exit Mutt" macro generic X xX "Exit Mutt" macro pager X xX "Exit Mutt" macro compose X xX "Exit Mutt" bind attach x exit bind browser x exit macro compose x qn ############ Headers to Ignore #Std. ignore Received From In-Reply-To Message-Id Status X-Status X-Face ignore Date # In pager_format ignore I-love-doing-this # my own unignore From: #Mime ignore MIME-Version Content- Lines #Lists & Bounce ignore Resent-Message-Id Resent-Date Received-Date Resent-To Old-Return-Path ignore Precedence X-mailing-list X-loop #Sometimes News are showing up in my mailfolder ignore NNTP-Posting-Host Path Organization Xref Xcanpos Approved References #Crappy ignore X-MIME-Autoconverted X-Warning X-Sun-Charset X-Request-Do ignore X-Commercial-Mail- X-Copyright- #Posted-Date Encoding ignore X-Disclaimer # Junk gets junked ignore X-MSMail-Priority X-MimeOLE # Outlook sucks. ignore X-MIMETrack # IBM sucks. # The New RFC strikes again and promotes more junky headers to make mail eat # even more bandwith. ignore List- # ignore X-BeenThere X-Mailman-Version Delivered-To # ignore X-Spam-Level X-Enigmail- X-Spam-Checker-Version ignore Errors-To ignore DomainKey-Signature DKIM-Signature ############ PROMPTS set copy=yes record=+sent save_name # force_name set postpone=ask-yes recall=no postponed=~/Mail/postponed set delete=yes move=ask-no nomove set include=ask-yes reply_to=ask-yes print=ask-no set noconfirmappend # Get rid of nasty 0.80 warning. ############ STRINGS #set date_format="!%a, %b %d, %Y at %I:%M:%S%p %Z" set date_format="!%a, %b %d, %Y at %H:%M %Z" #set date_format_local="%d.%m.%y %H:%M" #set in_reply_to="%i; from \"%n\" on %d" #set indent_str="> " #set post_indent_str="" #set post_indent_str=CU,\n\tSec\n #set forw_format="[%a: %s]" set forw_format="Fwd: %s" set forw_quote #hdr_format is set via folder-hook. #attribution is set via send-hook. #set pager_format="[%Z] %C/%m %.38f%> %[%d.%b %y, %H:%M]" # next line needs my %A-patch set pager_format="[%S] <%A> %C/%m -- %.31n %> -- %[%d.%b %y, %H:%M]" #.87.6 finally included a version of my patch... (yes, this looks ugly) set status_format="%r %v [%?M?%M/?%m] %?n?%n new, ?%?p?%p p, ?%?t?%t tagged, ?%?d?%d deleted, ?(%h:%f) %?b?%b more to go.?%> %r" #set quote_regexp="^[>|#:}] " #set quote_regexp="^[|:] *|^> *" #set quote_regexp="^ *[a-zA-Z]*[]>:|}][]>:|}]*|^ *[a-zA-Z]*[->:|}][->:|}]" set quote_regexp="^[|:#}][ ]|^ *>|^[a-zA-Z]*> " ############ Maillists subscribe admins pi mutt-users mutt-dev challenge des-challenge ircnet irc doom sw-wml info-cvs wmx plan muc-lists mobile nanog postfix-users freebsd-mobile canossa irc-id omi congress bim@berklix.org mailboxes ! +ehbounces +ehcfp +ehanmeld mailboxes +Arbeit/atsec-save mailboxes +Listen/pgas # Referee for Perlgolf mailboxes +Listen/perlwar # Yanicks perlwar mailboxes +Listen/cron # I get masses of auto-email mailboxes +Listen/mjo # I get some more auto-email mailboxes +Listen/mj # I get some more auto-email mailboxes +Listen/rettungskapsel mailboxes +Listen/muccc.members mailboxes +Listen/wmx +Listen/plan +Listen/ssdev-muc +Listen/ssdev mailboxes +Listen/doom +Listen/pmm +Listen/vulnwatch +Listen/yapc-orga +Listen/fwp mailboxes +Listen/freebsd-stable +Listen/sa-users mailboxes +Listen/golf +Listen/ircd +Listen/irc-oper +Listen/eh mailboxes +Listen/wml +Listen/ircnet +Listen/cvs mailboxes +Listen/muccc +Listen/ircd-dev +Listen/dnrc +Listen/bim mailboxes +Listen/news-admins mailboxes +Listen/bugtraq +Listen/bos +Listen/sic +Listen/ccc-intern +Listen/interner mailboxes +Listen/challenge +Listen/des-challenge +Listen/des-challenge.muell mailboxes +Listen/irc-id +Listen/sdl +Listen/openvpn-users mailboxes +Listen/freebsd-mobile +Listen/unix mailboxes +Listen/ethereal-users +Listen/ethereal-dev mailboxes +Listen/omi +Listen/yapc-europe +Listen/yapc-prop mailboxes +Listen/sage +Listen/pilotgear mailboxes +Listen/pilotmgr-announce +Listen/canossa mailboxes +Listen/pilot-unix +Listen/kpilot-list +Listen/nocol mailboxes +Listen/cccongress +Listen/nanog mailboxes +Listen/mutt-users +Listen/mutt-dev +Listen/postfix-users mailboxes +muell +Listen/semi-muell +dupes # Test of anti-spam system mailboxes +Listen/barolo-root #set ignore_list_reply_to ############ Hooks folder-hook . "bind index M noop" folder-hook . 'set hdr_format="%4C %Z %[%b %e] %-15.15L (%4l) %s"' folder-hook . 'set read_inc=10 write_inc=10' folder-hook . 'unignore X-Authentication-Warning' folder-hook . 'unset backlog' folder-hook . 'set sort=threads sort_aux=date nostrict_threads sort_re" folder-hook +real-muell "set sort=subject sort_aux=date-received" folder-hook +muell "set sort=threads sort_aux=date-received strict_threads" folder-hook =Listen/ 'set read_inc=42 write_inc=42' folder-hook =Listen/ 'set hdr_format="%4C %Z %[%b %e] %-15.15F (%4l) %s"' folder-hook =Listen/irc "set strict_threads" folder-hook =Listen/mutt- "set strict_threads" folder-hook =Listen/mutt- 'ignore X-Authentication-Warning' folder-hook =Listen/ircnet 'ignore X-Authentication-Warning' folder-hook =Listen/irc-oper 'set sort_aux=date-received' folder-hook =Listen/ircd 'set sort_aux=date-received' folder-hook \! 'set backlog' # requires my patch. folder-hook \! 'set nosort_re' folder-hook =Listen/admins 'macro index M "madmins\r"' folder-hook =Listen/mutt-dev 'macro index M "mmutt-dev\r"' folder-hook =Listen/mutt-users 'macro index M "mmutt-users\r"' # they return submissions. save-hook ~L\ sw-wml +Listen/wml save-hook ~L\ mutt-dev +Listen/mutt-dev save-hook ~L\ mutt-users +Listen/mutt-users save-hook ~L\ admins +Listen/admins save-hook ~L\ ^pi$ +Listen/pi save-hook ~L\ doom +Listen/doom save-hook ~L\ muc.lists +Listen/muc-lists save-hook ~L\ ssdev-muc +Listen/ssdev-muc save-hook ~L\ omi-l +Listen/omi send-hook . set record=+sent send-hook mutt-dev set record=+sent-dupes send-hook mutt-users set record=+sent-dupes send-hook admins set record=+sent-dupes send-hook muc-lists set record=+sent-dupes send-hook ^pi$ set record=+sent-dupes send-hook ssdev-muc set record=+sent-dupes # they don't save-hook ~L\ irc-opers +Listen/irc-opers save-hook ~L\ irc$ +Listen/ircd send-hook irc-opers set record=+Listen/irc-opers send-hook irc set record=+Listen/ircd # I hate it, but i gotta do it. # Some lists check if you post from the subscribed address. So there. send-hook . unmy_hdr From: send-hook . unmy_hdr Reply-To: send-hook mutt-users my_hdr From: sec@subscribe.mutt-users.lists.sec.42.org send-hook mutt-users my_hdr Reply-To: sec send-hook mutt-dev my_hdr From: sec+mutt-dev send-hook mutt-dev my_hdr Reply-To: sec send-hook ccc-intern my_hdr From: sec+ccc send-hook ccc-intern my_hdr Reply-To: sec send-hook pilot-unix my_hdr From: sec@subscribe2.pilot-unix.lists.sec.42.org send-hook pilot-unix my_hdr Reply-To: sec # Some Headers. Just for fun. send-hook . "my_hdr X-URL: http://sec.42.org/" send-hook . "unmy_hdr X-Visit-My-Mutt-Page" send-hook . "unmy_hdr X-Nick" send-hook . "unmy_hdr X-Visit-My-Wmx-Page" send-hook mutt- "unmy_hdr X-URL" send-hook mutt- "my_hdr X-Visit-My-Mutt-Page: http://sec.42.org/mutt/" send-hook wmx "my_hdr X-Visit-My-Wmx-Page: http://sec.42.org/wmx/" send-hook irc "my_hdr X-Nick: Sec" # Some Lists are 'answers should stay on the list'-type send-hook irc@.*belwue.de "my_hdr Reply-To: irc@belwue.de" # Some persons like pgp. send-hook . set nopgp_autosign send-hook '^~C "(wist@ex.muffin.org|opp@muffin.org|knarf@camelot.de|nick@schoko.org)"'\ set pgp_autosign # Try to localize .signatures and attribution send-hook . 'set signature="fortune ~/.sigs/en|"' send-hook . 'set attribution="On %d, %n wrote:"' #send-hook . 'my_hdr X-Sec-Match: default' send-hook '!~C @' 'set signature="fortune ~/.sigs/de|"' send-hook '!~C @' 'set attribution="Am %[%d. %b %Y um %H:%M %Z] schrieb %n:"' #send-hook '!~C @' 'my_hdr X-Sec-Match: to local' send-hook '^~C .(de\|at)$' 'set signature="fortune ~/.sigs/de|"' send-hook '^~C .(de\|at)$' 'set attribution="Am %[%d. %b %Y um %H:%M %Z] schrieb %n:"' #end-hook '^~C .(de\|at)$' 'my_hdr X-Sec-Match: to .de|at' send-hook '^~C (HermineMarieZehl@aol\.com\|(space\|paf)\.net\|(rtfs\|muffin\|42)\.org)$' \ 'set signature="fortune ~/.sigs/de|"' send-hook '^~C (HermineMarieZehl@aol\.com\|(space\|paf)\.net\|(rtfs\|muffin\|42)\.org)$' \ 'set attribution="Am %[%d. %b %Y um %H:%M %Z] schrieb %n:"' #send-hook '^~C (HermineMarieZehl@aol.com|paf\.net\|(rtfs\|muffin\|42)\.org)$' \ # 'my_hdr X-Sec-Match: to specific-.de' send-hook '~l' 'set signature="fortune ~/.sigs/en|"' send-hook '~l' 'set attribution="On %d, %n wrote:"' #send-hook '~l' 'my_hdr X-Sec-Match: to list' ############ Some other settings set fast_reply # Life's so short. set smart_wrap set nohelp # I'm no newbie, man! set history=50 set pager_stop # I'm used to it. set tilde # I want to know where the mail ends... set nostatus_on_top pager_status_on_top # Requires pager_status_on_top patch set nomark_old # Old mails don't exist :) # Position cursor after header. set edit_hdrs editor="/usr/local/bin/vim +/^\$ +:noh" set editor="muttvim +/^\$ +:noh" my_hdr I-love-doing-this: really my_hdr X-Modeline: vim:set ts=8 sw=4 smarttab tw=72 si noic notitle: my_hdr Accept-Languages: de, en set nopgp_strict_enc # I don't want to send Q-P mails. set pgp_timeout=1200 set pgp_replysign pgp_replyencrypt # If the other end agrees on PGP, we join #for secret things maybe: set nopgp_encryptself set nopipe_decode nopipe_split pipe_sep= # Ha, finally it's there. hdr_order From From: Subject: Date: Reply-To: To: Cc: # Some people send non-text mails. auto_view text/x-vcard auto_view text/html auto_view application/x-tar-gz alternative_order text/plain # I like plaintext more than html. # Saving all outgoing adresses with my script #set sendmail="~/bin/spam_wrapper /usr/sbin/sendmail -oi -oem -t" # Try this out. Requires a lot of symlinks :) set save_address set nouse_domain #set reverse_name # Split-personality? -Danger. makes me send crap. needs fix ###### My scoring area. # note: is order important ? i think, once i reaches <0 its killed. # 'Expired' mail gets deleted, unless it's flagged. #folder-hook . unscore * #folder-hook . score '~A' +50 #folder-hook . score '~F' +50 #folder-hook . score '~E' -60 #To see what scoring is doing. macro index S ":set hdr_format='%4C %Z %[%b %e] %-15.15L (%4N) %s'\n"\ "See score values" # other different things... # ispell in german or english. Dont check quoted Text thus. macro compose i ":set ispell=newsbody-ispell\n" "ispell-english" macro compose I ":set ispell=newsbody-ispell-deutsch\n" "ispell-deutsch" # Two different kinds of forwarding. macro index \ef ":set mime_fwd\n" "forward-message-mime" macro index f ":set nomime_fwd\n" "forward-message" set nomime_forward_decode forward_decode # send unpgp'd macro compose Y pfy "send mail without pgp" # sendmail_wait - *sigh* set sendmail_wait=2 # I use pgp2. Use ESC-q to switch to gpg for decoding... source "~/.mutt/gpg.rc" macro index \eg ":source ~/.mutt/gpg.rc\n" "use GPG" macro index \eG ":source ~/.mutt/pgp2.rc\n" "use PGP2" # Spamassassin test macro index ß "spamc -R" macro index \eß "spamassassin -D -t" # The most used part of the mutts manual.txt: # # ~A all messages # ~b EXPR messages which contain EXPR in the message body # ~B EXPR messages which contain EXPR in the whole message # ~c USER messages carbon-copied to USER # ~C EXPR message is either to: or cc: EXPR # ~D deleted messages # ~d [MIN]-[MAX] messages with ``date-sent'' in a Date range # ~E expired messages # ~e EXPR message which contains EXPR in the ``Sender'' field # ~F flagged messages # ~f USER messages originating from USER # ~g PGP signed messages # ~G PGP encrypted messages # ~h EXPR messages which contain EXPR in the message header # ~k message contains PGP key material # ~i ID message which match ID in the ``Message-ID'' field # ~L EXPR message is either originated or received by EXPR # ~l message is addressed to a known mailing list # ~m [MIN]-[MAX] message in the range MIN to MAX *) # ~n [MIN]-[MAX] messages with a score in the range MIN to MAX *) # ~N new messages # ~O old messages # ~p message is addressed to you (consults $alternates) # ~P message is from you (consults $alternates) # ~Q messages which have been replied to # ~R read messages # ~r [MIN]-[MAX] messages with ``date-received'' in a Date range # ~S superseded messages # ~s SUBJECT messages having SUBJECT in the ``Subject'' field. # ~T tagged messages # ~t USER messages addressed to USER # ~U unread messages # ~x EXPR messages which contain EXPR in the `References' field # ~z [MIN]-[MAX] messages with a size in the range MIN to MAX *) ############ End of .muttrc - start scratch area :) macro index S "s+real-muell.not\n" "this is SPAM" macro index B "s+real-muell.bounce\n" "this is a Spam-Bounce macro index V "s+real-muell.virus\n" "this is a Virus/Worm macro pager Z "|sudo killcomment -kill\nd" "comment-spam" macro pager O "|sudo killcomment -auth\nd" "comment-spam" macro index \eS "!/usr/local/bin/sa-learn --spam --mbox Mail/real-muell.not\n" "bayes-learn SPAM" set envelope_from=yes set sort_browser="reverse-date" set query_command="~/bin/mutt_query_prog '%s'" macro index G "vjs~/.samba/Civ/ qd" "save-civ4-pbem" charset-hook us-ascii iso8859-1