From b15cb361688d123abdc4bad3939d09a18dace676 Mon Sep 17 00:00:00 2001 From: Dustin Swan Date: Tue, 25 Jun 2013 10:11:12 -0500 Subject: [PATCH] Splitting out mutt config for offlineimap --- mutt/DswanIOCOM.muttrc | 40 ++++- mutt/DustinswanGmail.muttrc | 42 ++++- mutt/muttrc | 31 +++- mutt_for_offlineimap/DswanIOCOM.muttrc | 8 + mutt_for_offlineimap/DustinswanGmail.muttrc | 10 ++ mutt_for_offlineimap/macros | 2 + .../mutt-colors-solarized-dark-16.muttrc | 151 ++++++++++++++++++ .../mutt-colors-solarized-dark-256.muttrc | 151 ++++++++++++++++++ mutt_for_offlineimap/muttrc | 80 ++++++++++ mutt_for_offlineimap/offlineimap.py | 18 +++ 10 files changed, 518 insertions(+), 15 deletions(-) create mode 100644 mutt_for_offlineimap/DswanIOCOM.muttrc create mode 100644 mutt_for_offlineimap/DustinswanGmail.muttrc create mode 100644 mutt_for_offlineimap/macros create mode 100644 mutt_for_offlineimap/mutt-colors-solarized-dark-16.muttrc create mode 100644 mutt_for_offlineimap/mutt-colors-solarized-dark-256.muttrc create mode 100644 mutt_for_offlineimap/muttrc create mode 100644 mutt_for_offlineimap/offlineimap.py diff --git a/mutt/DswanIOCOM.muttrc b/mutt/DswanIOCOM.muttrc index 7efb4d3..f4552aa 100644 --- a/mutt/DswanIOCOM.muttrc +++ b/mutt/DswanIOCOM.muttrc @@ -1,8 +1,36 @@ -set from = "dswan@iocom.com" -set sendmail = "msmtp -a DswanIOCOM" +#set from = "dswan@iocom.com" +#set sendmail = "msmtp -a DswanIOCOM" -set spoolfile = "+DswanIOCOM/INBOX" -set mbox = "+DswanIOCOM/archive" -set postponed = "+DswanIOCOM/drafts" +#set spoolfile = "+DswanIOCOM/INBOX" +#set mbox = "+DswanIOCOM/archive" +#set postponed = "+DswanIOCOM/drafts" -color status white blue +#color status white blue + + + + + + +# New Stuff +## Receive options. +set imap_user=dswan@insors.com +#set imap_pass=**** +set folder = imaps://dswan@secure.emailsrvr.com/ +set spoolfile = +INBOX +set postponed = +Drafts +set record = +Sent + +## Send options. +set smtp_url=smtps://dswan@secure.emailsrvr.com +set realname='Dustin Swan' +set from=dswan@iocom.com +set hostname="iocom.com" +set signature="Dustin Swan" +# Connection options +set ssl_force_tls = yes +unset ssl_starttls + +## Hook -- IMPORTANT! +#account-hook $folder "set imap_user=dswan@insors.com imap_pass=****" +account-hook $folder "set imap_user=dswan@insors.com" diff --git a/mutt/DustinswanGmail.muttrc b/mutt/DustinswanGmail.muttrc index a6ec3e5..be82e8a 100644 --- a/mutt/DustinswanGmail.muttrc +++ b/mutt/DustinswanGmail.muttrc @@ -1,10 +1,38 @@ -set from = "dustinswan@gmail.com" -set sendmail = "msmtp -a DustinswanGmail" +#set from = "dustinswan@gmail.com" +#set sendmail = "msmtp -a DustinswanGmail" -set spoolfile = "+DustinswanGmail/INBOX" -set mbox = "+DustinswanGmail/archive" -set postponed = "+DustinswanGmail/drafts" +#set spoolfile = "+DustinswanGmail/INBOX" +#set mbox = "+DustinswanGmail/archive" +#set postponed = "+DustinswanGmail/drafts" -unset move +#unset move -color status white red +#color status white red + + + + + + +# New Stuff +## Receive options. +set imap_user=dustinswan@gmail.com +#set imap_pass=**** +set folder = imaps://dustinswan@imap.gmail.com/ +set spoolfile = +INBOX +set postponed = +Drafts +set record = +Sent + +## Send options. +set smtp_url=smtps://dustinswan@smtp.gmail.com +set realname='Dustin Swan' +set from=dustinswan@gmail.com +set hostname="gmail.com" +set signature="Dustin Swan" +# Connection options +set ssl_force_tls = yes +unset ssl_starttls + +## Hook -- IMPORTANT! +#account-hook $folder "set imap_user=dustinswan@gmail.com imap_pass=****" +account-hook $folder "set imap_user=dustinswan@gmail.com" diff --git a/mutt/muttrc b/mutt/muttrc index e4333a7..12361c0 100644 --- a/mutt/muttrc +++ b/mutt/muttrc @@ -1,7 +1,7 @@ # General set realname = "Dustin Swan" -set folder = ~/.mail +#set folder = ~/.mail set alias_file = ~/.mutt/alias set header_cache = ~/.mutt/cache/headers set message_cachedir = ~/.mutt/cache/bodies @@ -72,9 +72,36 @@ source ~/.mutt/mailboxes # Notmuch # 'L' performs a notmuch query, showing only the results -macro index L "unset wait_keyread -p 'notmuch query: ' x; echo \$x >~/.cache/mutt_terms~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a'\`\"" "show only messages matching a notmuch pattern" +#macro index L "unset wait_keyread -p 'notmuch query: ' x; echo \$x >~/.cache/mutt_terms~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a'\`\"" "show only messages matching a notmuch pattern" # 'a' shows all messages again (supersedes default binding) macro index a "all\n" "show all messages (undo limit)" # Urlview macro pager \Cu "|urlview" "call urlview to open links" + + + + + + + + + +# New stuff +## General options +set imap_check_subscribed +set imap_keepalive = 300 +unset imap_passive +set mail_check = 60 +set mbox_type=Maildir + +## Gmail +source "~/.mutt/DustinswanGmail.muttrc" +# Here we use the $folder variable that has just been set in the sourced file. +# We must set it right now otherwise the 'folder' variable will change in the next sourced file. +folder-hook $folder 'source ~/.mutt/DustinswanGmail.muttrc' + +## IOCOM +source "~/.mutt/DswanIOCOM.muttrc" +folder-hook *dswan@iocom.com/ 'source ~/.mutt/DswanIOCOM.muttrc' + diff --git a/mutt_for_offlineimap/DswanIOCOM.muttrc b/mutt_for_offlineimap/DswanIOCOM.muttrc new file mode 100644 index 0000000..7efb4d3 --- /dev/null +++ b/mutt_for_offlineimap/DswanIOCOM.muttrc @@ -0,0 +1,8 @@ +set from = "dswan@iocom.com" +set sendmail = "msmtp -a DswanIOCOM" + +set spoolfile = "+DswanIOCOM/INBOX" +set mbox = "+DswanIOCOM/archive" +set postponed = "+DswanIOCOM/drafts" + +color status white blue diff --git a/mutt_for_offlineimap/DustinswanGmail.muttrc b/mutt_for_offlineimap/DustinswanGmail.muttrc new file mode 100644 index 0000000..a6ec3e5 --- /dev/null +++ b/mutt_for_offlineimap/DustinswanGmail.muttrc @@ -0,0 +1,10 @@ +set from = "dustinswan@gmail.com" +set sendmail = "msmtp -a DustinswanGmail" + +set spoolfile = "+DustinswanGmail/INBOX" +set mbox = "+DustinswanGmail/archive" +set postponed = "+DustinswanGmail/drafts" + +unset move + +color status white red diff --git a/mutt_for_offlineimap/macros b/mutt_for_offlineimap/macros new file mode 100644 index 0000000..bc61815 --- /dev/null +++ b/mutt_for_offlineimap/macros @@ -0,0 +1,2 @@ +macro index,pager \cb 'urlscan' 'Follow links with urlview' +macro attach,compose \cb 'urlscan' 'Follow links with urlview' diff --git a/mutt_for_offlineimap/mutt-colors-solarized-dark-16.muttrc b/mutt_for_offlineimap/mutt-colors-solarized-dark-16.muttrc new file mode 100644 index 0000000..e9d6def --- /dev/null +++ b/mutt_for_offlineimap/mutt-colors-solarized-dark-16.muttrc @@ -0,0 +1,151 @@ +# vim: filetype=muttrc + +# +# +# make sure that you are using mutt linked against slang, not ncurses, or +# suffer the consequences of weird color issues. use "mutt -v" to check this. + +# custom body highlights ----------------------------------------------- +# highlight my name and other personally relevant strings +#color body yellow default "(ethan|schoonover)" +# custom index highlights ---------------------------------------------- +# messages which mention my name in the body +#color index yellow default "~b \"phil(_g|\!| gregory| gold)|pgregory\" !~N !~T !~F !~p !~P" +#color index J_cream brightwhite "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~N !~T !~F !~p !~P" +#color index yellow cyan "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~T !~F !~p !~P" +#color index yellow J_magent "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~F !~p !~P" +## messages which are in reference to my mails +#color index J_magent default "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" !~N !~T !~F !~p !~P" +#color index J_magent brightwhite "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~N !~T !~F !~p !~P" +#color index J_magent cyan "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~T !~F !~p !~P" +#color index J_magent red "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~F !~p !~P" + +# for background in 16 color terminal, valid background colors include: +# base03, bg, black, any of the non brights + +# basic colors --------------------------------------------------------- +color normal brightyellow default +color error red default +color tilde black default +color message cyan default +color markers red white +color attachment white default +color search brightmagenta default +#color status J_black J_status +color status brightyellow black +color indicator brightblack yellow +color tree yellow default # arrow in threads + +# basic monocolor screen +mono bold bold +mono underline underline +mono indicator reverse +mono error bold + +# index ---------------------------------------------------------------- + +#color index red default "~D(!~p|~p)" # deleted +#color index black default ~F # flagged +#color index brightred default ~= # duplicate messages +#color index brightgreen default "~A!~N!~T!~p!~Q!~F!~D!~P" # the rest +#color index J_base default "~A~N!~T!~p!~Q!~F!~D" # the rest, new +color index red default "~A" # all messages +color index brightred default "~E" # expired messages +color index blue default "~N" # new messages +color index blue default "~O" # old messages +color index brightmagenta default "~Q" # messages that have been replied to +color index brightgreen default "~R" # read messages +color index blue default "~U" # unread messages +color index blue default "~U~$" # unread, unreferenced messages +color index brightyellow default "~v" # messages part of a collapsed thread +color index brightyellow default "~P" # messages from me +color index cyan default "~p!~F" # messages to me +color index cyan default "~N~p!~F" # new messages to me +color index cyan default "~U~p!~F" # unread messages to me +color index brightgreen default "~R~p!~F" # messages to me +color index red default "~F" # flagged messages +color index red default "~F~p" # flagged messages to me +color index red default "~N~F" # new flagged messages +color index red default "~N~F~p" # new flagged messages to me +color index red default "~U~F~p" # new flagged messages to me +color index black red "~D" # deleted messages +color index brightcyan default "~v~(!~N)" # collapsed thread with no unread +color index yellow default "~v~(~N)" # collapsed thread with some unread +color index green default "~N~v~(~N)" # collapsed thread with unread parent +# statusbg used to indicated flagged when foreground color shows other status +# for collapsed thread +color index red black "~v~(~F)!~N" # collapsed thread with flagged, no unread +color index yellow black "~v~(~F~N)" # collapsed thread with some unread & flagged +color index green black "~N~v~(~F~N)" # collapsed thread with unread parent & flagged +color index green black "~N~v~(~F)" # collapsed thread with unread parent, no unread inside, but some flagged +color index cyan black "~v~(~p)" # collapsed thread with unread parent, no unread inside, some to me directly +color index yellow red "~v~(~D)" # thread with deleted (doesn't differentiate between all or partial) +#color index yellow default "~(~N)" # messages in threads with some unread +#color index green default "~S" # superseded messages +#color index red default "~T" # tagged messages +#color index brightred red "~=" # duplicated messages + +# message headers ------------------------------------------------------ + +#color header brightgreen default "^" +color hdrdefault brightgreen default +color header brightyellow default "^(From)" +color header blue default "^(Subject)" + +# body ----------------------------------------------------------------- + +color quoted blue default +color quoted1 cyan default +color quoted2 yellow default +color quoted3 red default +color quoted4 brightred default + +color signature brightgreen default +color bold black default +color underline black default +color normal default default +# +color body brightcyan default "[;:][-o][)/(|]" # emoticons +color body brightcyan default "[;:][)(|]" # emoticons +color body brightcyan default "[*]?((N)?ACK|CU|LOL|SCNR|BRB|BTW|CWYL|\ + |FWIW|vbg|GD&R|HTH|HTHBE|IMHO|IMNSHO|\ + |IRL|RTFM|ROTFL|ROFL|YMMV)[*]?" +color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? +color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? + +## pgp + +color body red default "(BAD signature)" +color body cyan default "(Good signature)" +color body brightblack default "^gpg: Good signature .*" +color body brightyellow default "^gpg: " +color body brightyellow red "^gpg: BAD signature from.*" +mono body bold "^gpg: Good signature" +mono body bold "^gpg: BAD signature from.*" + +# yes, an insance URL regex +color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" +# and a heavy handed email regex +#color body J_magent default "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])" + +# Various smilies and the like +#color body brightwhite default "<[Gg]>" # +#color body brightwhite default "<[Bb][Gg]>" # +#color body yellow default " [;:]-*[})>{(<|]" # :-) etc... +# *bold* +#color body blue default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +#mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +# _underline_ +#color body blue default "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +#mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +# /italic/ (Sometimes gets directory names) +#color body blue default "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" +#mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" + +# Border lines. +#color body blue default "( *[-+=#*~_]){6,}" + +#folder-hook . "color status J_black J_status " +#folder-hook gmail/inbox "color status J_black yellow " +#folder-hook gmail/important "color status J_black yellow " + diff --git a/mutt_for_offlineimap/mutt-colors-solarized-dark-256.muttrc b/mutt_for_offlineimap/mutt-colors-solarized-dark-256.muttrc new file mode 100644 index 0000000..b318651 --- /dev/null +++ b/mutt_for_offlineimap/mutt-colors-solarized-dark-256.muttrc @@ -0,0 +1,151 @@ +# vim: filetype=muttrc + +# +# +# make sure that you are using mutt linked against slang, not ncurses, or +# suffer the consequences of weird color issues. use "mutt -v" to check this. + +# custom body highlights ----------------------------------------------- +# highlight my name and other personally relevant strings +#color body color136 color234 "(ethan|schoonover)" +# custom index highlights ---------------------------------------------- +# messages which mention my name in the body +#color index color136 color234 "~b \"phil(_g|\!| gregory| gold)|pgregory\" !~N !~T !~F !~p !~P" +#color index J_cream color230 "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~N !~T !~F !~p !~P" +#color index color136 color37 "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~T !~F !~p !~P" +#color index color136 J_magent "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~F !~p !~P" +## messages which are in reference to my mails +#color index J_magent color234 "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" !~N !~T !~F !~p !~P" +#color index J_magent color230 "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~N !~T !~F !~p !~P" +#color index J_magent color37 "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~T !~F !~p !~P" +#color index J_magent color160 "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~F !~p !~P" + +# for background in 16 color terminal, valid background colors include: +# base03, bg, black, any of the non brights + +# basic colors --------------------------------------------------------- +color normal color241 color234 +color error color160 color234 +color tilde color235 color234 +color message color37 color234 +color markers color160 color254 +color attachment color254 color234 +color search color61 color234 +#color status J_black J_status +color status color241 color235 +color indicator color234 color136 +color tree color136 color234 # arrow in threads + +# basic monocolor screen +mono bold bold +mono underline underline +mono indicator reverse +mono error bold + +# index ---------------------------------------------------------------- + +#color index color160 color234 "~D(!~p|~p)" # deleted +#color index color235 color234 ~F # flagged +#color index color166 color234 ~= # duplicate messages +#color index color240 color234 "~A!~N!~T!~p!~Q!~F!~D!~P" # the rest +#color index J_base color234 "~A~N!~T!~p!~Q!~F!~D" # the rest, new +color index color160 color234 "~A" # all messages +color index color166 color234 "~E" # expired messages +color index color33 color234 "~N" # new messages +color index color33 color234 "~O" # old messages +color index color61 color234 "~Q" # messages that have been replied to +color index color240 color234 "~R" # read messages +color index color33 color234 "~U" # unread messages +color index color33 color234 "~U~$" # unread, unreferenced messages +color index color241 color234 "~v" # messages part of a collapsed thread +color index color241 color234 "~P" # messages from me +color index color37 color234 "~p!~F" # messages to me +color index color37 color234 "~N~p!~F" # new messages to me +color index color37 color234 "~U~p!~F" # unread messages to me +color index color240 color234 "~R~p!~F" # messages to me +color index color160 color234 "~F" # flagged messages +color index color160 color234 "~F~p" # flagged messages to me +color index color160 color234 "~N~F" # new flagged messages +color index color160 color234 "~N~F~p" # new flagged messages to me +color index color160 color234 "~U~F~p" # new flagged messages to me +color index color235 color160 "~D" # deleted messages +color index color245 color234 "~v~(!~N)" # collapsed thread with no unread +color index color136 color234 "~v~(~N)" # collapsed thread with some unread +color index color64 color234 "~N~v~(~N)" # collapsed thread with unread parent +# statusbg used to indicated flagged when foreground color shows other status +# for collapsed thread +color index color160 color235 "~v~(~F)!~N" # collapsed thread with flagged, no unread +color index color136 color235 "~v~(~F~N)" # collapsed thread with some unread & flagged +color index color64 color235 "~N~v~(~F~N)" # collapsed thread with unread parent & flagged +color index color64 color235 "~N~v~(~F)" # collapsed thread with unread parent, no unread inside, but some flagged +color index color37 color235 "~v~(~p)" # collapsed thread with unread parent, no unread inside, some to me directly +color index color136 color160 "~v~(~D)" # thread with deleted (doesn't differentiate between all or partial) +#color index color136 color234 "~(~N)" # messages in threads with some unread +#color index color64 color234 "~S" # superseded messages +#color index color160 color234 "~T" # tagged messages +#color index color166 color160 "~=" # duplicated messages + +# message headers ------------------------------------------------------ + +#color header color240 color234 "^" +color hdrdefault color240 color234 +color header color241 color234 "^(From)" +color header color33 color234 "^(Subject)" + +# body ----------------------------------------------------------------- + +color quoted color33 color234 +color quoted1 color37 color234 +color quoted2 color136 color234 +color quoted3 color160 color234 +color quoted4 color166 color234 + +color signature color240 color234 +color bold color235 color234 +color underline color235 color234 +color normal color244 color234 +# +color body color245 color234 "[;:][-o][)/(|]" # emoticons +color body color245 color234 "[;:][)(|]" # emoticons +color body color245 color234 "[*]?((N)?ACK|CU|LOL|SCNR|BRB|BTW|CWYL|\ + |FWIW|vbg|GD&R|HTH|HTHBE|IMHO|IMNSHO|\ + |IRL|RTFM|ROTFL|ROFL|YMMV)[*]?" +color body color245 color234 "[ ][*][^*]*[*][ ]?" # more emoticon? +color body color245 color234 "[ ]?[*][^*]*[*][ ]" # more emoticon? + +## pgp + +color body color160 color234 "(BAD signature)" +color body color37 color234 "(Good signature)" +color body color234 color234 "^gpg: Good signature .*" +color body color241 color234 "^gpg: " +color body color241 color160 "^gpg: BAD signature from.*" +mono body bold "^gpg: Good signature" +mono body bold "^gpg: BAD signature from.*" + +# yes, an insance URL regex +color body color160 color234 "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" +# and a heavy handed email regex +#color body J_magent color234 "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])" + +# Various smilies and the like +#color body color230 color234 "<[Gg]>" # +#color body color230 color234 "<[Bb][Gg]>" # +#color body color136 color234 " [;:]-*[})>{(<|]" # :-) etc... +# *bold* +#color body color33 color234 "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +#mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +# _underline_ +#color body color33 color234 "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +#mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +# /italic/ (Sometimes gets directory names) +#color body color33 color234 "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" +#mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" + +# Border lines. +#color body color33 color234 "( *[-+=#*~_]){6,}" + +#folder-hook . "color status J_black J_status " +#folder-hook gmail/inbox "color status J_black color136 " +#folder-hook gmail/important "color status J_black color136 " + diff --git a/mutt_for_offlineimap/muttrc b/mutt_for_offlineimap/muttrc new file mode 100644 index 0000000..e4333a7 --- /dev/null +++ b/mutt_for_offlineimap/muttrc @@ -0,0 +1,80 @@ +# General +set realname = "Dustin Swan" + +set folder = ~/.mail +set alias_file = ~/.mutt/alias +set header_cache = ~/.mutt/cache/headers +set message_cachedir = ~/.mutt/cache/bodies +set certificate_file = ~/.mutt/certificates +set mailcap_path = ~/.mailcap +set tmpdir = ~/.mutt/temp +set signature = ~/.mutt/sig + +set mbox_type = Maildir + +# Start with these +set spoolfile = "+DustinswanGmail/INBOX" +set mbox = "+DustinswanGmail/archive" +set postponed = "+DustinswanGmail/drafts" + +folder-hook DustinswanGmail 'source ~/.mutt/DustinswanGmail.muttrc' +folder-hook DswanIOCOM 'source ~/.mutt/DswanIOCOM.muttrc' + +set sendmail_wait = 0 +set send_charset = "utf-8" + +unset record + +bind index gg first-entry +bind index G last-entry +bind index R group-reply # Was g + +bind pager gg top +bind pager G bottom +bind pager R group-reply # Was g + +# Edit headers +#set edit_headers = yes +#unset use_from +#unset use_domain +#unset user_agent +#unmy_hdr * + +# Use ppl for address book +set query_command = "ppl mutt '%s'" + +# Sorting +set sort = threads +set sort_aux = reverse-last-date-received + +# Sidebar +set sidebar_delim = ' │' +set sidebar_visible = yes +set sidebar_width = 40 +# color sidebar_new color221 color233 +bind index sidebar-next +bind index sidebar-prev +bind index sidebar-open + +# Status Bar +#set status_chars = " *&A" +#set status_format = "---[ Folder: %f ]---[%r%n messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]---%>-%?p?( %p postponed )?---"" + +# Fucking html mail +#auto_view text/html +#alternative_order text/plain text/enriched text/html + +# Colors +# source ~/.mutt/mutt-colors-solarized-dark-256.muttrc + +# Source offlineimap's mailbox list +source ~/.mutt/mailboxes + +# Notmuch +# 'L' performs a notmuch query, showing only the results +macro index L "unset wait_keyread -p 'notmuch query: ' x; echo \$x >~/.cache/mutt_terms~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a'\`\"" "show only messages matching a notmuch pattern" +# 'a' shows all messages again (supersedes default binding) +macro index a "all\n" "show all messages (undo limit)" + +# Urlview +macro pager \Cu "|urlview" "call urlview to open links" diff --git a/mutt_for_offlineimap/offlineimap.py b/mutt_for_offlineimap/offlineimap.py new file mode 100644 index 0000000..211ed52 --- /dev/null +++ b/mutt_for_offlineimap/offlineimap.py @@ -0,0 +1,18 @@ +import subprocess +import os + +def gmail_password(): + path = os.environ['HOME'] + "/.gmail_password.gpg" + args = ["gpg", "-d", path] + try: + return subprocess.check_output(args).rstrip() + except subprocess.CalledProcessError: + return "".strip() + +def iocom_password(): + path = os.environ['HOME'] + "/.iocom_password.gpg" + args = ["gpg", "-d", path] + try: + return subprocess.check_output(args).rstrip() + except subprocess.CalledProcessError: + return "".strip()