## Handy Hint

# If you use vim, add this to your .vimrc file, without the comment:
#   au BufNewFile,BufRead   .mutt\/*    so $VIMRUNTIME/syntax/muttrc.vim
# This will allow you to edit any of the files in .mutt/ with the same
# lovely, clear colours as .muttrc. Hurrah!

## Import Common Settings

# These are common settings that may be rsynced across hosts,
# leaving all the host or person specific settings here.
source ~/.mutt/common

## Personal

# realname is kinda redundant, since I set my From header
set realname="Jeff Waugh"
# alternates 'lists' my personal email addresses which should be highlighted
set alternates = "jdub@(aphid.net|perkypants.org|slug.org.au|gnome.org)"
# various headers, including the very important From header
my_hdr  From: Jeff Waugh <jdub@perkypants.org>
# this is yet another Outlook Annoyer, makes it high priority, etc
#my_hdr Reply-By: `date --date="+3 days"`
# Outlook Annoyer: Flags and tags each email fairly obviously
my_hdr  X-Message-Flag: Cranky? Try Free Software instead!
# Tell people about my OS
my_hdr  X-Operating-System: `uname -srm`

## Mailboxes

# these set up my favourite mbox folder layout
#set folder=~/Mail
#set mbox=~/Mail/INBOX
#set record=~/Mail/Sent
#set spoolfile=~/Mail/INBOX

# for my Maildir setup, I use these settings
# note the mbox_type setting and the slashes at the end
set mbox_type=Maildir
set mbox=~/Maildir/
set folder=~/Maildir/
set record="~/Maildir/.Sent/"
set spoolfile=~/Maildir/

# instead of typing out all my mailboxes, I let find do the walking
# this shows all of my mbox IN* boxes, and not the archives
#mailboxes `find ~/Mail/ -type f ! -name "Sent" ! -name ".*" ! -name "*.archive" ! -regex ".*Archives.*" -printf "=%P "`
# This one shows all my Maildir mailboxes
#mailboxes `find ~/Maildir/ -type d ! -ipath "*archive*" ! -regex ".*\(cur\|new\|tmp\)$" -printf "=\"%P\" "`
mailboxes =

# this is an awesome little macro that re-reads your mailbox list
# every time you look at the mutt folder list -> perky! just hit
# the left cursor key when you're viewing mail
#macro  index   <left>  ':mailboxes `find ~/Mail/ -type f ! -name "Sent" ! -name ".*" ! -name "*.archive" ! -regex ".*Archives.*" -printf "=%P "`<enter>c?<toggle-mailboxes>'
# Maildir:
macro   index   <left>  ':mailboxes `find ~/Maildir/ -type d -maxdepth 1 ! -ipath "*archive*" ! -regex ".*\(cur\|new\|tmp\)$" -printf "=%P "`<enter>c?<toggle-mailboxes>'

# this just runs my fetchall script when I hit "F" in mutt
# it varies between host, so I keep it here
macro   index   F   '!fetchall<enter>'

# Bogofilter keys and modifications
# Save commands
macro   index   s   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n -S\n<enter-command>set wait_key\n<save-entry>"
macro   pager   s   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n -S\n<enter-command>set wait_key\n<save-entry>"
## Reply commands
macro   index   r   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n\n<enter-command>set wait_key\n<reply>"
macro   pager   r   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n\n<enter-command>set wait_key\n<reply>"
macro   index   g   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n\n<enter-command>set wait_key\n<group-reply>"
macro   pager   g   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n\n<enter-command>set wait_key\n<group-reply>"
macro   index   L   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n\n<enter-command>set wait_key\n<list-reply>"
macro   pager   L   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -n\n<enter-command>set wait_key\n<list-reply>"
## harsh delete commands
macro   index   X   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -s\n<enter-command>set wait_key\n<delete-message>"
macro   pager   X   "<enter-command>unset wait_key\n<pipe-entry>bogofilter -s\n<enter-command>set wait_key\n<delete-message>"

#macro  index   X   "<enter-command>unset wait_key\n<pipe-entry>sa-learn --single --spam\n<enter-command>set wait_key\n<delete-message>"
#macro  pager   X   "<enter-command>unset wait_key\n<pipe-entry>sa-learn --single --spam\n<enter-command>set wait_key\n<delete-message>"

#macro index z "<enter-command>set sort=reverse-date-received\n<enter-command>set sort=threads\n"

## New mails in new windows
#macro   index   m   '<enter-command>unset wait_key\n!if [ $DISPLAY ] && [ -x $(which gnome-terminal) ]; then gnome-terminal --use-factory -x mutt """"; else mutt """"; fi\n<enter-command>set wait_key\n'
#macro   index   M   '<mail>'

## Lists

# this is an exhaustive list of mailing list addresses (i didn't bother
# with the domain component) so that I can use Mutt's brillo List Reply feature
# Started using the "subscribe" feature, instead of "lists", see
# http://www.mutt.org/doc/manual/manual-3.html#ss3.9
subscribe slug@ slug-chat@ committee festies linux-aus aussie-isp
subscribe crackmonkey linux-elitists geeks slarken gimpnet-opers
subscribe gnome foundation- debian- desktop-devel-list nautilus-
subscribe kcdevel table64 edt spankies usability lnx-bbc garnome-list
subscribe release- lug board guadec xdg-list marketing-list

## Bits 'n' Pieces

# These two are for using mutt remotely, although I now use them on my desktop
# too. Why? Well, I use a font that doesn't have all the cool terminal stuff in
# it, so I use ascii_chars to make it readable. I use the minimal arrow_cursor
# in lists because I have a text terminal to use mutt with. I've kept these out
# of .mutt/common for portability and personal preference reasons. ;)
set ascii_chars = yes
set arrow_cursor = yes

## Local Hooks

# here's where the fun begins! all of these send-hooks that match with . are
# defaults, so will work in any folder until they're specifically overridden

# this send-hook allows us to read in the output of my signature.py utility
# on every email send command
send-hook       .               'set signature = "/home/jdub/bin/signature |"'

# i reset these too, because some hooks may change them. with mutt, your last
# setting sticks, so it's best to override all the settings that you change
send-hook       .               'set attribution = "<quote who=\"%n\">\n"'
send-hook       .               'my_hdr From: Jeff Waugh <jdub@perkypants.org>'
send-hook       .               'my_hdr Reply-By: `date --date="+3 days"`'
send-hook       .               'my_hdr X-Operating-System: `uname -srm`'
send-hook       .               'my_hdr X-Message-Flag: Cranky? Try Free Software instead!'
send-hook       .               'my_hdr X-Uptime: `uptime`'

# this sets a special save hook so that I can be slightly lazy when shunting
# mail off to archived folders. I really ought to improve this though. It's a pity
# that you can't do funky regexp stuff to change folder names, etc.
# I only used these for my mbox setup
folder-hook     =               'save-hook ~A =Archives/%u'
folder-hook     .               'save-hook ~A =Archives/%B'
#save-hook      "~h List-Id"    '=Lists/%B'
#save-hook      "~e slug"       '=SLUG/%B'

# when I'm in my slug folders or sending to a slug address, set my from header
# so that I am a real SLUG dude
#folder-hook        =SLUG/*         'my_hdr From: Jeff Waugh <jdub@perkypants.org>'
send-hook       slug@slug       'my_hdr From: Jeff Waugh <jdub@perkypants.org>'
send-hook       announce@slug   'my_hdr From: Jeff Waugh <jdub@slug.org.au>'
send-hook       slug@slug       'unmy_hdr X-Operating-System'
send-hook       slug@slug       'unmy_hdr X-Message-Flag'
send-hook       slug@slug       'unmy_hdr X-Uptime'
send-hook       slug@slug       'unmy_hdr Reply-By'

# for some reason I decided to be mysterious when sending to the new slug-chat
# list, so I set from headers and signatures differently. there are lots of other
# evil bastard things that I should do here.
send-hook       slug-chat@slug  'my_hdr From: invisible ink <jdub@perkypants.org>'
send-hook       slug-chat@slug  'set attribution = "%n:\n"'
send-hook       slug-chat@slug  "set signature = 'echo \"\n\n- ii\n\n-- \n  Penguinillas Pack GNUzis\" |'"

# have to use my old address, and I couldn't be bothered resubbing
send-hook   aussie-isp      "my_hdr From: Jeff Waugh <jdub@aphid.net>"
send-hook   motd@zork.net   "my_hdr From: Jeff Waugh <jdub@zork.net>"

send-hook   mailman-owner@solutionsfirst.com.au 'set attribution = "<quote who=\"The Oracle\">\n"