diff options
-rw-r--r-- | .gitconfig | 4 | ||||
-rw-r--r-- | .gitignore | 103 | ||||
-rw-r--r-- | .mutt/attachments | 17 | ||||
-rw-r--r-- | .mutt/colors | 131 | ||||
-rw-r--r-- | .mutt/gpg.rc | 123 | ||||
-rw-r--r-- | .mutt/macros | 2 | ||||
-rw-r--r-- | .mutt/mailinglists | 26 | ||||
-rw-r--r-- | .mutt/mutt-notmuch.py | 120 | ||||
-rw-r--r-- | .mutt/muttrc | 314 | ||||
-rw-r--r-- | .mutt/sample.muttrc | 340 |
10 files changed, 437 insertions, 743 deletions
@@ -1,5 +1,5 @@ [user] - name = Weitian LI - email = liweitianux@gmail.com + name = Aaron LI + email = aaronly.me@outlook.com [push] default = simple diff --git a/.gitignore b/.gitignore deleted file mode 100644 index fd301f2..0000000 --- a/.gitignore +++ /dev/null @@ -1,103 +0,0 @@ -## .gitignore - -*~ -*.swp -*.orig - -## vifm -.vifm/Trash/ -.vifm/vifminfo - -## mpd -.mpd/ - -## ncmpcpp -.ncmpcpp/*.log - -## lftp -.lftp/*_history -.lftp/*_log - -## urxvt -.urxvt/*urxvtd* - -## i3 -.i3/*.sock - -### .config {{{ -# .config/fcitx -.config/fcitx/clipboard/ -.config/fcitx/data -.config/fcitx/dbus -.config/fcitx/log -.config/fcitx/pinyin -.config/fcitx/table - -### .config }}} - -### C {{{ -# Object files -*.o -*.ko -*.obj -*.elf - -# Libraries -*.lib -*.a - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex -### C }}} - -### python -__pycache__/ -*.py[cod] - -### private {{{ -# ssh -.ssh/ - -# abook -.abook/address* - -# msmtp -.msmtp/ - -# offlineimap -.offlineimap/Account-* -.offlineimap/Repository-* -.offlineimap/*.gpg -.offlineimap/pid -.offlineimap/lock - -# mutt -.mutt/aliases -.mutt/certificates -.mutt/history -.mutt/signature -.mutt/gmail.muttrc -.mutt/lavabit.muttrc -.mutt/cache/ -.mutt/tmp/ - -# todo -.todo/todo.txt -.todo/todo.txt.bak -.todo/done.txt -.todo/report.txt - -.netrc -### private }}} - diff --git a/.mutt/attachments b/.mutt/attachments index 1c8535e..6535626 100644 --- a/.mutt/attachments +++ b/.mutt/attachments @@ -1,12 +1,11 @@ -# $Id$ -# -# mutt attchment searching and counting configuration -# -# LIweitiaNux -# February 8, 2012 -# -# Ref: file:///usr/local/share/doc/mutt/html/mimesupport.html -# +## +## Mutt attchment searching and counting configuration +## +## Weitian Li +## 2012/02/08 +## +## Ref: file:///usr/local/share/doc/mutt/html/mimesupport.html +## # Removing a pattern from a list removes that pattern literally. It # does not remove any type matching the pattern. diff --git a/.mutt/colors b/.mutt/colors index 0da5176..0465acf 100644 --- a/.mutt/colors +++ b/.mutt/colors @@ -1,11 +1,11 @@ -# -*- muttrc -*- -# -# Color settings for mutt. -# -# LIweitiaNux -# February 8, 2012 -# -# Ref: http://aperiodic.net/phil/configs/mutt/colors +## +## Color settings for mutt. +## +## Weitian LI +## 2015/02/02 +## +## Ref: http://aperiodic.net/phil/configs/mutt/colors +## # Default color definitions color normal white default @@ -14,9 +14,9 @@ color quoted green default color quoted1 yellow default color quoted2 blue default color signature cyan default -color indicator brightyellow blue +color indicator brightwhite blue color error brightred default -color status brightwhite blue +color status brightblue black color tree brightmagenta default color tilde blue default color attachment brightyellow default @@ -31,60 +31,61 @@ mono underline underline mono indicator reverse mono error bold -# Colors for items in the reader -color header brightyellow default "^(From|Subject):" -color header brightmagenta default ^Date: -color header brightcyan default ^To: -color header brightcyan default ^Cc: -mono header bold "^(From|Subject):" +# Colors for items in the header +color header brightmagenta default "^(From|Subject):" +color header brightyellow default "^Date:" +color header brightblue default "^To:" +color header brightcyan default "^Cc:" +mono header bold "^(From|Subject):" + # Many of these formulas were stolen from Jeremy Blosser # These would be much simpler if colors were additive. # regular new messages -color index black white "~N !~T !~F !~p !~P" +color index brightwhite default "~N !~T !~F !~p !~P" # regular tagged messages -color index black cyan "~T !~F !~p !~P" +color index brightcyan default "~T !~F !~p !~P" # regular flagged messages -color index black blue "~F !~p !~P" +color index brightblue default "~F !~p !~P" # messages to me -color index yellow default "~p !~N !~T !~F !~P" -color index brightyellow white "~p ~N !~T !~F !~P" -color index yellow cyan "~p ~T !~F !~P" -color index yellow blue "~p ~F !~P" +color index yellow default "~p !~N !~T !~F !~P" +color index brightblue default "~p ~N !~T !~F !~P" +color index black cyan "~p ~T !~F !~P" +color index black magenta "~p ~F !~P" # messages from me -color index green default "~P !~N !~T !~F" -color index green white "~P ~N !~T !~F" -color index green cyan "~P ~T !~F" -color index green blue "~P ~F" +color index green default "~P !~N !~T !~F" +color index brightblue default "~P ~N !~T !~F" +color index black cyan "~P ~T !~F" +color index black magenta "~P ~F" # 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 brightyellow white "~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 red "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~F !~p !~P" +#color index yellow default "~b \"([Ww]eitian|[Aa]ly|ly)\" !~N !~T !~F !~p !~P" +#color index brightyellow white "~b \"([Ww]eitian|[Aa]ly|ly)\" ~N !~T !~F !~p !~P" +#color index yellow cyan "~b \"([Ww]eitian|[Aa]ly|ly)\" ~T !~F !~p !~P" +#color index yellow red "~b \"([Ww]eitian|[Aa]ly|ly)\" ~F !~p !~P" # messages which are in reference to my mails -color index magenta default "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" !~N !~T !~F !~p !~P" -color index magenta white "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~N !~T !~F !~p !~P" -color index magenta cyan "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~T !~F !~p !~P" -color index magenta blue "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~F !~p !~P" +#color index magenta default "~x \"(liweitianux|aaronly.me)@\" !~N !~T !~F !~p !~P" +#color index magenta white "~x \"(liweitianux|aaronly.me)@\" ~N !~T !~F !~p !~P" +#color index magenta cyan "~x \"(liweitianux|aaronly.me)@\" ~T !~F !~p !~P" +#color index magenta blue "~x \"(liweitianux|aaronly.me)@\" ~F !~p !~P" # messages to root, etc. -color index cyan default "~C \"(root|postmaster|abuse|mailer-daemon)@\" !~N !~P !~p" -color index cyan white "~C \"(root|postmaster|abuse|mailer-daemon)@\" ~N !~P !~p" +color index cyan default "~C \"(root|postmaster|abuse|mailer-daemon)@\" !~N !~P !~p" +color index cyan white "~C \"(root|postmaster|abuse|mailer-daemon)@\" ~N !~P !~p" # big messages -color index red default "!~N ~z 10485760-" -color index red cyan "~T !~F !~p !~P ~z 10485760-" -color index red white "~N ~z 10485760-" +color index red default "!~N ~z 10485760-" +color index red cyan "~T !~F !~p !~P ~z 10485760-" +color index red white "~N ~z 10485760-" # deleted messages -color index brightred default "!~N ~D" -color index brightred white "~N ~D" +color index brightred default "!~N ~D" +color index brightred white "~N ~D" -# Highlights inside the body of a message. +## Highlights inside the body of a message. # Attribution lines -color body magenta default "\\* [^<]+ <[^>]+> \\[[^]]+\\]:" -color body magenta default "(^|[^[:alnum:]])on [a-z0-9 ,]+( at [a-z0-9:,. +-]+)? wrote:" +color body magenta default "\\* [^<]+ <[^>]+> \\[[^]]+\\]:" +color body magenta default "(^|[^[:alnum:]])on [a-z0-9 ,]+( at [a-z0-9:,. +-]+)? wrote:" # URLs color body brightyellow 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<>\"]" @@ -93,28 +94,28 @@ color body brightyellow default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,- color body brightmagenta 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]\\])" # PGP messages -color body brightgreen default "^gpg: Good signature .*" -color body white default "^gpg: " -color body brightwhite red "^gpg: BAD signature from.*" -mono body bold "^gpg: Good signature" -mono body bold "^gpg: BAD signature from.*" - -### Various smilies and the like -color body brightwhite default "<[Gg]>" # <g> -color body brightwhite default "<[Bb][Gg]>" # <bg> -color body brightwhite default " [;:]-*[})>{(<|]" # :-) etc... +color body brightblue default "^gpg: Good signature .*" +color body white default "^gpg: " +color body brightwhite red "^gpg: BAD signature from.*" +mono body bold "^gpg: Good signature" +mono body bold "^gpg: BAD signature from.*" + +# Various smilies and the like +color body brightwhite default "<[Gg]>" # <g> +color body brightwhite default "<[Bb][Gg]>" # <bg> +color body brightwhite default " [;:]-*[})>{(<|]" # :-) etc... + # *bold* -color body brightblue default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" -mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +color body brightblue default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" # _underline_ -color body brightblue default "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" -mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" -# /italic/ (Sometimes gets directory names) -color body brightblue default "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" -mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" +color body brightblue default "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +# /italic/ (sometimes gets directory names) +color body brightblue default "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" +mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" -### Border lines. -color body blue default "( *[-+=#*~_]){6,}" +# Border lines. +color body blue default "( *[-+=#*~_]){6,}" -# # vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: # diff --git a/.mutt/gpg.rc b/.mutt/gpg.rc index e90fc00..e918768 100644 --- a/.mutt/gpg.rc +++ b/.mutt/gpg.rc @@ -1,17 +1,20 @@ -# -*-muttrc-*- -# -# Command formats for gpg. -# -# This version uses gpg-2comp from -# http://70t.de/download/gpg-2comp.tar.gz -# -# $Id$ -# +## +## Mutt GPG configuration +## -*-muttrc-*- +## +## Weitian LI +## 2015/02/02 +## +## Reference: +## [1] A Quick Guide to Mutt #GPG +## http://srobb.net/mutt.html#GPG +## [2] Encrypting Mutt +## http://jasonwryan.com/blog/2013/07/20/gnupg/ +## + # %p The empty string when no passphrase is needed, # the string "PGPPASSFD=0" if one is needed. # -# This is mostly used in conditional % sequences. -# # %f Most PGP commands operate on a single file or a file # containing a message. %f expands to this file's name. # @@ -26,64 +29,59 @@ # %r In many contexts, mutt passes key IDs to pgp. %r expands to # a list of key IDs. -# Note that we explicitly set the comment armor header since GnuPG, when used -# in some localiaztion environments, generates 8bit data in that header, thereby -# breaking PGP/MIME. +# Note that we explicitly set the comment armor header since GnuPG, +# when used in some localiaztion environments, generates 8bit data +# in that header, thereby breaking PGP/MIME. -# decode application/pgp -set pgp_decode_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" +# Decode application/pgp +set pgp_decode_command="gpg2 --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" -# verify a pgp/mime signature -set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f" +# Verify a pgp/mime signature +set pgp_verify_command="gpg2 --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f" -# decrypt a pgp/mime attachment -set pgp_decrypt_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" +# Decrypt a pgp/mime attachment +set pgp_decrypt_command="gpg2 --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" -# create a pgp/mime signed attachment -# set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" -set pgp_sign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" +# Create a pgp/mime signed attachment +set pgp_sign_command="gpg2 --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" -# create a application/pgp signed (old-style) message -# set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" -set pgp_clearsign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" +# Create a application/pgp signed (old-style) message +set pgp_clearsign_command="gpg2 --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" -# create a pgp/mime encrypted attachment -# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" -set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" +# Create a pgp/mime encrypted attachment +set pgp_encrypt_only_command="pgpewrap gpg2 --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" -# create a pgp/mime encrypted and signed attachment -# set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" -set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" +# Create a pgp/mime encrypted and signed attachment +set pgp_encrypt_sign_command="pgpewrap gpg2 %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" -# import a key into the public key ring -set pgp_import_command="gpg --no-verbose --import %f" +# Import a key into the public key ring +set pgp_import_command="gpg2 --no-verbose --import %f" -# export a key from the public key ring -set pgp_export_command="gpg --no-verbose --export --armor %r" +# Export a key from the public key ring +set pgp_export_command="gpg2 --no-verbose --export --armor %r" -# verify a key -set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r" +# Verify a key +set pgp_verify_key_command="gpg2 --verbose --batch --fingerprint --check-sigs %r" -# read in the public key ring -set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --list-keys %r" +# Read in the public key ring +set pgp_list_pubring_command="gpg2 --no-verbose --batch --quiet --with-colons --list-keys %r" -# read in the secret key ring -set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --list-secret-keys %r" +# Read in the secret key ring +set pgp_list_secring_command="gpg2 --no-verbose --batch --quiet --with-colons --list-secret-keys %r" -# fetch keys +# Fetch keys # set pgp_getkeys_command="pkspxycwrap %r" -# specify the uid to use when encrypting/signing -#set pgp_sign_as=0xC0B1382A # FreeBSD -#set pgp_sign_as=0xB9919753 # Debian +# Use gpg-agent +set pgp_use_gpg_agent -# this set the number of seconds to keep in memory the passpharse +# This set the number of seconds to keep in memory the passpharse # used to encrypt/sign the more the less secure it will be -set pgp_timeout=300 +set pgp_timeout=1800 -# pattern for good signature - may need to be adapted to locale! +# Pattern for good signature - may need to be adapted to locale! # -# it's a regexp used against the GPG output: if it matches some line of the output +# It's a regexp used against the GPG output: if it matches some line of the output # then mutt considers the message a good signed one (ignoring the GPG exit code) set pgp_good_sign="^gpg: Good signature from" # set pgp_good_sign="^gpgv?: Good signature from " @@ -92,22 +90,19 @@ set pgp_good_sign="^gpg: Good signature from" # This version uses --status-fd messages # set pgp_good_sign="^\\[GNUPG:\\] GOODSIG" -# mutt uses by default PGP/GPG to sign/encrypt messages -# if you want to use S-mime instead set the smime_is_default variable to yes - -# automatically sign all outcoming messages -#set crypt_autosign -# sign only replies to signed messages +# Automatically sign all outcoming messages +set crypt_autosign +# Sign only replies to signed messages #set crypt_replysign -# automatically encrypt outcoming messages -#set crypt_autoencrypt=yes -# encrypt only replies to signed messages -#set crypt_replyencrypt=yes +# Automatically encrypt outcoming messages +#set crypt_autoencrypt +# Encrypt only replies to signed messages +set crypt_replyencrypt # encrypt and sign replies to encrypted messages -#set crypt_replysignencrypted=yes +#set crypt_replysignencrypted -# automatically verify the sign of a message when opened -#set crypt_verify_sig=yes +# Automatically verify the sign of a message when opened +set crypt_verify_sig -# vim: filetype=muttrc +# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: # diff --git a/.mutt/macros b/.mutt/macros deleted file mode 100644 index faf43e9..0000000 --- a/.mutt/macros +++ /dev/null @@ -1,2 +0,0 @@ -macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview' - diff --git a/.mutt/mailinglists b/.mutt/mailinglists index 29aaf72..0732d11 100644 --- a/.mutt/mailinglists +++ b/.mutt/mailinglists @@ -1,17 +1,19 @@ -# $Id$ -# -# mailing lists settings -# lists and subscribe -# -# LIweitiaNux -# February 9, 2012 -# +## +## Mailing lists management +## +## Weitian LI +## 2015/02/02 +## ## lists -lists ^opensourcesjtu2010@googlegroups\.com$ +lists no-reply@arxiv.org +lists rabble@arxiv.org ## subscribe -subscribe ^astro-ph@arXiv\.org$ -subscribe en@bsdmag\.org$ +subscribe freebsd-current@freebsd.org +subscribe current@freebsd.org +subscribe freebsd-x11@freebsd.org +subscribe tech@openbsd.org +subscribe misc@openbsd.org -# vim: filetype=muttrc +# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: # diff --git a/.mutt/mutt-notmuch.py b/.mutt/mutt-notmuch.py new file mode 100644 index 0000000..880b987 --- /dev/null +++ b/.mutt/mutt-notmuch.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +""" +mutt-notmuch-py + +This is a Gmail-only version of the original mutt-notmuch script. + +It will interactively ask you for a search query and then symlink the matching +messages to $HOME/.cache/mutt_results. + +Add this to your muttrc. + +macro index / "<enter-command>unset wait_key<enter><shell-escape>mutt-notmuch-py<enter><change-folder-readonly>~/.cache/mutt_results<enter>" \ + "search mail (using notmuch)" + +This script overrides the $HOME/.cache/mutt_results each time you run a query. + +Install this by adding this file somewhere on your PATH. + +Tested on OSX Lion and Arch Linux. + +(c) 2012 - Honza Pokorny +Licensed under BSD +""" + +""" +ChangeLogs: +2015/02/02: Weitian LI + * replaced 'commands.getoutput' with 'subprocess' + * replaced 'raw_input' with 'input' + * fixed digest() with an Unicode encoding bug + * updated to use python 3.x +""" + +import os +import hashlib +import subprocess + +from mailbox import Maildir +from optparse import OptionParser +from collections import defaultdict + + +def digest(filename): + # Require python 3.x + with open(filename) as f: + return hashlib.sha1(f.read().encode('utf-8')).hexdigest() + + +def pick_all_mail(messages): + for m in messages: + if 'All Mail' in m: + return m + + +def empty_dir(directory): + box = Maildir(directory) + box.clear() + + +def command(cmd): + return subprocess.check_output(cmd, shell=True) + + +def main(dest_box, is_gmail): + query = input('Query: ') + + command('test -d %s/cur || mkdir -p %s/cur' % (dest_box, dest_box)) + command('test -d %s/new || mkdir -p %s/new' % (dest_box, dest_box)) + + empty_dir(dest_box) + + output = command('notmuch search --output=files %s' % query) + files = output.decode(encoding='UTF-8').split('\n') + + data = defaultdict(list) + messages = [] + + for f in files: + if not f: + continue + + try: + sha = digest(f) + data[sha].append(f) + except IOError: + print('File %s does not exist' % f) + + for sha in data: + if is_gmail and len(data[sha]) > 1: + messages.append(pick_all_mail(data[sha])) + else: + messages.append(data[sha][0]) + + for m in messages: + if not m: + continue + + target = os.path.join(dest_box, 'cur', os.path.basename(m)) + if not os.path.exists(target): + os.symlink(m, target) + + +if __name__ == '__main__': + p = OptionParser("usage: %prog [OPTIONS] [RESULTDIR]") + p.add_option('-g', '--gmail', dest='gmail', + action='store_true', default=True, + help='gmail-specific behavior') + p.add_option('-G', '--not-gmail', dest='gmail', + action='store_false', + help='gmail-specific behavior') + (options, args) = p.parse_args() + + if args: + dest = args[0] + else: + dest = '~/.cache/mutt_results' + + # Use expanduser() so that os.symlink() won't get weirded out by tildes. + main(os.path.expanduser(dest).rstrip('/'), options.gmail) + diff --git a/.mutt/muttrc b/.mutt/muttrc index 7d593d0..93be99a 100644 --- a/.mutt/muttrc +++ b/.mutt/muttrc @@ -1,130 +1,138 @@ -# $Id$ -# -########################################################### -## mutt configuration file ## -## ## -## Weitian LI <liweitianux@gmail.com> ## -## 2014/07/13 ## -########################################################### - -### personal settings -set realname = "Weitian LI" -### mailboxes -# from 'offlineimap' -source ~/.mutt/mailboxes -### gmail, use as default -source ~/.mutt/gmail.muttrc -### account specific sources -folder-hook 'gmail.*' source ~/.mutt/gmail.muttrc -folder-hook 'lavabit.*' source ~/.mutt/lavabit.muttrc -folder-hook 'autistici.*' source ~/.mutt/autistici.muttrc - -### files and directories +## +## Mutt configuration +## +## Weitian LI <liweitianux@gmail.com> +## 2015/02/02 +## +## Reference: +## [1] The Homely Mutt +## http://stevelosh.com/blog/2012/10/the-homely-mutt/ +## [2] Mutt + offlineimap + notmuch + nottoomuch +## http://blog.tshirtman.fr/2013/3/17/mutt-offlineimap-notmuch-nottoomuch +## [3] ArchWiki - Mutt +## https://wiki.archlinux.org/index.php/Mutt +## [4] Using Two IMAP Accounts in Mutt +## http://pbrisbin.com/posts/two_accounts_in_mutt +## [5] The Mutt E-Mail Client: Reference +## http://www.mutt.org/doc/manual/manual-6.html +## [6] A Quick Guide to Mutt +## http://srobb.net/mutt.html +## + +### Mail boxes +source ~/.mutt/mailboxes # Generated by OfflineIMAP + +### Mail accounts +folder-hook 'gmail-aaronly\.me.*' source ~/.mutt/accounts/gmail-aly +folder-hook 'gmail-liweitianux.*' source ~/.mutt/accounts/gmail-li +folder-hook 'outlook-aaronly\.me.*' source ~/.mutt/accounts/outlook-aly +folder-hook 'outlook-liweitianux.*' source ~/.mutt/accounts/outlook-li +folder-hook 'sjtu.*' source ~/.mutt/accounts/sjtu +folder-hook 'autistici.*' source ~/.mutt/accounts/autistici +# Default account +source ~/.mutt/accounts/default + +### Files and directories set alias_file = ~/.mutt/aliases -#set header_cache = ~/.mutt/cache/headers # needs external db lib -set message_cachedir = ~/.mutt/cache set certificate_file = ~/.mutt/certificates set mailcap_path = ~/.mutt/mailcap -set signature = ~/.mutt/signature set history_file = ~/.mutt/history +set header_cache = ~/.mutt/cache/headers +set message_cachedir = ~/.mutt/cache/bodies set tmpdir = ~/.mutt/tmp -### settings +### General settings set mbox_type = Maildir -set folder = ~/Maildir -set mail_check = 300 # how often (in s) look for new mail -set timeout = 15 # prompt timeout until abort waiting for input -#set sendmail_wait = -1 # always put sendmail in the bkg without waiting -set sleep_time = 0 # time to pause while displaying certain info msgs -set wait_key # wait after an external cmd invoked -set history = 128 # control the size of the string history buffer -set save_history = 128 # control the size of the 'history_file' -unset confirmappend # don't ask me if i want to append to mailboxes -set beep_new # beep when receive a new msg while mailbox open +set folder = ~/Mail +set timeout = 3 +set mail_check = 0 +set beep_new +set wrap_search # searches wrap around the end set copy # always save a copy of outgoing messages set delete # purge deleted messages without asking -set quit = ask-yes # ask for confirmation when quit mutt -set wrap_search # searches wrap around the end -set help # show the help lines set use_from # always generate the `From:' header field -set read_inc = 25 # specify at which rate to update progress counters -set write_inc = 25 -set print = ask-yes # ask me if I really want to print messages -set print_command = /usr/bin/false # how to print things (I like to save trees) - -### index settings -#set date_format = "%m/%d/%y at %I:%M" -#set index_format = "%4C %Z %{%m/%d} %-15.15F (%4c) %s" # format of the index -set to_chars = " +TCFL" # char used to indicate mail addressed to you -set sort = threads # primary sorting method -set sort_aux = reverse-date-received -set uncollapse_jump # don't collapse on an unread message -set sort_re # thread based on regex -set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*" - -### pager settings -set pager_format="-%S- %-20.20f %s" # format of the pager status bar -set pager_index_lines = 5 # number of index lines to show -set pager_context = 5 # number of context lines to show -set pager_stop # don't go to next message automatically -set menu_scroll # scroll in menus -set smart_wrap # don't split words -set tilde # show tildes like in vim -unset markers # no ugly '+' signs for wrapped lines -set noprompt_after # ask me for a command after the external pager exits -set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+" - -### composing mail -set editor = "vim +/^$ -c 'set syntax=mail ft=mail enc=utf-8'" -set visual = "vim +/^$ -c 'set syntax=mail ft=mail enc=utf-8'" +set quit = ask-yes # ask for confirmation when quit mutt +set history = 512 +set sendmail_wait = 0 # Wait forever for sendmail to finish +unset wait_key +unset move +unset confirmappend +unset mark_old + +### Compose view +set editor = "vim +/^$ -c 'set syntax=mail ft=mail enc=utf-8 tw=72'" +set visual = "vim +/^$ -c 'set syntax=mail ft=mail enc=utf-8 tw=72'" set envelope_from # which from? set sig_dashes # dashes before my 'signature' set autoedit # go to the editor right away when composing # set, cannot use 'send-hooks' depend on recipients set edit_headers # show headers when composing set askcc # ask for CC: -set askbcc # ask for BCC: set fcc_attach # save attachments with the body -set forward_format = "Fwd: %s" +set forward_format = "Fwd: %s" set forward_quote # include message in forwards set forward_decode # decode when forwarding -unset mime_forward # forward attachments as part of body -set attribution = "On %d, %n wrote: " -#set metoo # sends a copy to all recipients and myself +set attribution = "On %d, %n wrote:" set fast_reply # skip to compose when replying set reply_to # reply to 'Reply to:' field set reverse_name # reply as whomever it was to -set nosave_empty # remove files when no messages are left +set include # include message in replies #set postpone # auto postpone message not sent when exit #set recall # prompt to recall postponed messages -set include # include message in replies -#set post_indent_string = '---end quoted text---' -unset bounce_delivered # not include 'Delivered-To' headers, 'postfix' -## charset -set send_charset = "utf-8" # for messages that we send -set assumed_charset = "iso-8859-1" # if no charset given on incoming messages +unset mime_forward # forward attachments as part of body -### headers settings -ignore * # ignore all headers -unignore from: to cc bcc date subject # show only these headers -hdr_order from: to cc date subject +### Headers +ignore * +unignore from: to: cc: bcc: date: subject: +unhdr_order * +hdr_order from: to: cc: date: subject: + +### Encoding +set send_charset = "utf-8" +set assumed_charset = "iso-8859-1" # if no charset given on incoming messages +#set rfc2047_parameters # attachment filename encoding + +### Index view +#set date_format = "%m/%d" +set index_format = "%Z %{%a %d %b %Y} %3M %-15.15L (%4c) %s" +set folder_format = "%2C %t %N %8s %f" +set sort = threads +set sort_aux = reverse-last-date-received +set uncollapse_jump # don't collapse on an unread message +set sort_re # thread based on regex +set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*" -### aliases -# set alias_file = ~/.mutt/aliases -set sort_alias = alias # sort alias file by alias -set reverse_alias # show names from alias file in index -#set alias_format = "%4n %t %-20a %r" -source $alias_file # enable auto-completion +### Status bar +set status_chars = " *%A" +set status_format = "---[ Folder: %f ]---[ %r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]---%>-%?p?( %p postponed )?---" -### abook -set query_command = "abook --mutt-query '%s'" -macro generic,index,pager \Ca "<shell-escape>abook<return>" "launch abook" -macro index,pager A "<pipe-message>abook --add-email<return>" "add the sender address to abook" +### Pager +set pager_format="-%S- %-20.20f %s" +set pager_index_lines = 8 # number of index lines to show +set pager_context = 8 # number of context lines to show +set pager_stop # don't go to next message automatically +set menu_scroll # scroll in menus +set smart_wrap # don't split words +set tilde # show tildes like in vim +set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+" +unset markers # no ugly '+' signs for wrapped lines +alternative_order text/plain text/enriched text/html -### key bindings -bind index,pager \# noop -bind index i noop +### Attachment view +set attach_format = "[%D %t] %2n [%-7.7m/%10.10M] %.40d %> [%s] " +### Key bindings +bind index i noop +bind index <TAB> sync-mailbox +bind index <SPACE> collapse-thread +bind index p recall-message +bind index K previous-unread +bind index J next-unread +bind index,browser gg first-entry +bind index,browser G last-entry +bind index,pager R group-reply +bind index,pager N search-opposite +bind index,pager \# noop bind pager i exit bind pager / search bind pager <UP> previous-line @@ -135,68 +143,82 @@ bind pager gg top bind pager G bottom bind pager K previous-undeleted bind pager J next-undeleted -bind index,browser gg first-entry -bind index,browser G last-entry -bind index K previous-unread -bind index J next-unread -bind index,pager R group-reply - -### macros -macro pager ';' "<exit><tag-prefix>" "q+ ;" -macro index q "<sync-mailbox><change-folder>?<toggle-mailboxes>" "Leaves Index to folder list" -macro browser q "<exit><quit>" "Exit mutt" -macro browser <Tab> "<toggle-mailboxes><check-new>" "Check New" -macro index \Cr "<tag-prefix><clear-flag>N" "mark tagged messages as read" -macro index B "<limit>~b " "search message bodies" -macro index I "<change-folder>!<enter>" "go to Inbox" -# save a decoded copy in ~ -macro index P "<pipe-message>cat > ~/" "save message as" -# quick-sync with offlineimap -macro index,browser Z "<shell-escape>offlineimap -o -u ttyui<enter>" "offlineimap sync ..." +bind attach <RETURN> view-mailcap +bind compose p pgp-menu +bind editor <TAB> complete-query +bind editor ^T complete + +### Macros +macro index q "<sync-mailbox><change-folder>?<toggle-mailboxes>" \ + "Leaves Index to folder list" +macro index \Cr "<tag-prefix><clear-flag>N" \ + "mark tagged messages as read" +macro index C "<copy-message>?<toggle-mailboxes>" \ + "copy a message to a mailbox" +macro index M "<save-message>?<toggle-mailboxes>" \ + "copy a message to a mailbox" +macro index B "<limit>~b " \ + "search message bodies" +macro index I "<change-folder>!<enter>" \ + "go to Inbox" +# Save a decoded copy in ~/ +macro index s "<pipe-message>cat > ~/" \ + "save message as" +# Open in vim +macro index,pager V "<pipe-message>vim -c 'setlocal ft=mail buftype=nofile' -<enter>" \ + "open in vim" +# Sync mails with offlineimap +macro index,browser Z "<shell-escape>offlineimap -o -u ttyui<enter>" \ + "offlineimap sync ..." +macro browser q "<exit><quit>" \ + "Exit mutt" +macro browser <Tab> "<toggle-mailboxes><check-new>" \ + "Check New" +macro compose Y pfy \ + "send mail without GPG" # urlview -macro pager \Cu "<pipe-entry>urlview<enter>" "Follow links with urlview" +macro pager \Cu "<pipe-entry>urlview<enter>" \ + "Follow links with urlview" +macro pager ';' "<exit><tag-prefix>" \ + "q+ ;" +# notmuch +macro index S "<enter-command>unset wait_key<enter><shell-escape>~/.mutt/mutt-notmuch.py -G $folder/search<enter><change-folder-readonly>+search<enter>" \ + "search mail (using notmuch)" + +### aliases +set sort_alias = alias # sort alias file by alias +set reverse_alias # show names from alias file in index +#set alias_format = "%4n %t %-20a %r" +source $alias_file # enable auto-completion +### abook +set query_command = "abook --mutt-query '%s'" +macro generic,index,pager \Ca "<shell-escape>abook<return>" "launch abook" +macro index,pager A "<pipe-message>abook --add-email<return>" "add the sender address to abook" -########################################################### -## Misc settings ## -########################################################### -## mailing lists: lists and subscribe +### Misc settings +## Mailing lists: lists and subscribe set followup_to # generate 'Mail-Followup-To:' header field set honor_followup_to # 'Mail-Followup-To' header is honored source ~/.mutt/mailinglists -## mutt colors definitions +## Attachment searching and counting +source ~/.mutt/attachments + +## Colors source ~/.mutt/colors -#set arrow_cursor # use '->' instead of hiliting the whole line ## GnuPG source ~/.mutt/gpg.rc ## auto view -auto_view text/html application/x-gunzip application/x-bzip application/x-tar-gz \ - application/x-compressed-tar application/msword application/postscript - -## MIME multipart/alternative -## The 'multipart/alternative' container type only has child MIME parts -## which represent the same content in an alternative way. often used to -## send HTML msgs which contain an alternative plain text representation. -alternative_order text/plain text/enriched text/html application/postscript - -## MIME lookup, mime-lookup -## specifies a list of MIME types that should *not* be treated -## according to their mailcap entry -mime_lookup application/octet-stream application/X-Lotus-Manuscript +auto_view text/html application/x-gunzip application/x-bzip \ + application/x-tar-gz application/x-compressed-tar -## attachment searching and counting -## attachments { +|- } disposition mime-type -## 'disposition': inline(I), attachment(A) -source ~/.mutt/attachments +## MIME types that should *not* be treated according to their mailcap entry +mime_lookup application/octet-stream application/X-Lotus-Manuscript -## cope with encodings -# attachment encodeing -set rfc2047_parameters = yes -# some mail without 'charset', then set 'us-ascii' as an alias to 'gb2312' -charset-hook ^us-ascii$ gb2312 +### Local Settings +source `FILE=$HOME/.muttrc.local; if [ ! -s "$FILE" ]; then FILE=/dev/null; fi; echo "$FILE"` -# # vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: # diff --git a/.mutt/sample.muttrc b/.mutt/sample.muttrc deleted file mode 100644 index 07dbe17..0000000 --- a/.mutt/sample.muttrc +++ /dev/null @@ -1,340 +0,0 @@ -# $Id$ - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# ME's personal .muttrc (Mutt 0.92.5) -# -# The format of this file is one command per line. Everything after a pound -# sign (#) is a comment, unless a backward slash (\) precedes it. Note: In -# folder-hook and send-hook you need to account for two levels of dequoting -# (see manual). -# - -# Note: $folder should be set _before_ any other path vars where `+' or `=' -# is used because paths are expanded when parsed -# -#set folder=~/Mail # where i keep my mailboxes - -#set abort_unmodified=yes # automatically abort replies if I don't - # change the message -set alias_file=~/.mail_aliases # where I keep my aliases -#set allow_8bit # never do Q-P encoding on legal 8-bit chars -set arrow_cursor # use -> instead of hiliting the whole line -#set ascii_chars # use ASCII instead of ACS chars for threads -#set askbcc -#set askcc -#set attribution="On %d, %n wrote:" # how to attribute replies -set autoedit # go to the editor right away when composing -#set auto_tag # always operate on tagged messages -#set charset="iso-8859-1" # character set for your terminal -set noconfirmappend # don't ask me if i want to append to mailboxes -#set confirmcreate # prompt when creating new files -set copy=yes # always save a copy of outgoing messages -set delete=yes # purge deleted messages without asking -set edit_headers # let me edit the message header when composing -#set editor="emacs -nw" # editor to use when composing messages -#set bounce=yes # don't ask about bouncing messages, just do it -#set fast_reply # skip initial prompts when replying -#set fcc_attach # keep attachments in copies of sent messages? -#set force_name # fcc by recipient, create if mailbox doesn't exist -#set forward_decode # weed and MIME decode forwaded messages -#set forward_format="[%a: %s]" # subject to use when forwarding messages -#set forward_quote # quote the header and body of forward msgs -#set index_format="%4C %Z %{%m/%d} [%2N] %-15.15F (%4c) %s" -set index_format="%4C %Z %{%m/%d} %-15.15F (%4c) %s" # format of the index -#set hdrs # include `my_hdr' lines in outgoing messages -#set header # include message header when replying -set help # show the help lines -#set history=20 # number of lines of history to remember -#set hostname="mutt.org" # my DNS domain -set include # always include messages when replying -#set indent_string="> " # how to quote replied text -#set locale="C" # locale to use for printing time -#set mailcap_path="~/.mailcap:/usr/local/share/mailcap" -set nomark_old # i don't care about whether a message is old -set mail_check=10 # how often to poll for new mail -set mbox=+mbox # where to store read messages -#set menu_scroll # no implicit next-page/prev-page -#set metoo # remove my address when replying -set mime_forward # use message/rfc822 type to forward messages -set move=yes # don't ask about moving messages, just do it -#set pager=less # some people prefer an external pager -#set pager_context=3 # no. of lines of context to give when scrolling -#set pager_format="-%S- %-20.20f %s" # format of the pager status bar -set pager_index_lines=6 # how many index lines to show in the pager -#set pager_stop # don't move to the next message on next-page -#set pgp_strict_enc # use Q-P encoding when needed for PGP -set postponed=+postponed # mailbox to store postponed messages in -#set post_indent_string='---end quoted text---' -#set print=ask-yes # ask me if I really want to print messages -set print_command=/bin/false # how to print things (I like to save trees) -set noprompt_after # ask me for a command after the external pager exits -#set quote_regexp="^ *[a-zA-Z]*[>:#}]" # how to catch quoted text -set read_inc=25 # show progress when reading a mailbox -#set recall # prompt to recall postponed messages -set record=+outbox # default location to save outgoing mail -set reply_to # always use reply-to if present -#set reply_regexp="^(re:[ \t]*)+"# how to identify replies in the subject: -#set resolve # move to the next message when an action is performed -#set reverse_alias # attempt to look up my names for people -set reverse_name # use my address as it appears in the message - # i am replying to -set nosave_empty # remove files when no messages are left -#set save_name # save outgoing messages by recipient, if the -#set sendmail="/usr/lib/sendmail -oi -oem" # how to deliver mail -#set shell="/bin/zsh" # program to use for shell escapes -#set signature="~/.signature" # file which contains my signature - -# I subscribe to a lot of mailing lists, so this is _very_ useful. This -# groups messages on the same subject to make it easier to follow a -# discussion. Mutt will draw a nice tree showing how the discussion flows. -set sort=threads # primary sorting method - -#set sort_aux=reverse-date-received # how to sort subthreads -#set sort_aux=last-date # date of the last message in thread -set sort_browser=reverse-date # how to sort files in the dir browser -set spoolfile='~/mailbox' # where my new mail is located -#set status_format="-%r-Mutt: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b? %l]---(%s)-%>-(%P)---" -#set status_on_top # some people prefer the status bar on top -#set strict_threads # don't thread by subject -set tilde # virtual lines to pad blank lines in the pager -#set timeout=0 # timeout for prompt in the index menu -#set tmpdir=~/tmp # where to store temp files -#set to_chars=" +TCF" -#set use_8bitmime # enable the -B8BITMIME sendmail flag -set nouse_domain # don't qualify local addresses with $domain -#set use_from # always generate the `From:' header field -set implicit_autoview=yes # pager shows parts having a mailcap viewer -set pgp_verify_sig=no # don't automatically verify message signatures -#set visual=vim # editor invoked by ~v in the builtin editor -#set nowait_key # prompt when a pipe returns normal status -set write_inc=25 # show progress while writing mailboxes - -# only enable the following IFF you have sendmail 8.8.x or you will not -# be able to send mail!!! -#set dsn_notify='failure,delay' # when to return an error message -#set dsn_return=hdrs # what to return in the error message - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Header fields I don't normally want to see -# -ignore * # this means "ignore all lines by default" - -# I do want to see these fields, though! -unignore from: subject to cc mail-followup-to \ - date x-mailer x-url # this shows how nicely wrap long lines - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Color definitions -# - -#color normal white default -color hdrdefault red default -color quoted brightblue default -color signature red default -color indicator brightyellow red -color error brightred default -color status yellow blue -color tree magenta default # the thread tree in the index menu -color tilde magenta default -color message brightcyan default -color markers brightcyan default -color attachment brightmagenta default -color search default green # how to hilite search patterns in the pager - -color header brightred default ^(From|Subject): -color body magenta default "(ftp|http|https)://[^ ]+" # point out URLs -color body magenta default [-a-z_0-9.]+@[-a-z_0-9.]+ # e-mail addresses -color underline brightgreen default - -# attributes when using a mono terminal -#mono header underline ^(From|Subject): -mono quoted bold - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Key bindings -# -# maps: -# alias alias menu -# attach attachment menu -# browser directory browser -# compose compose menu -# index message index -# pgp pgp menu -# postpone postponed message recall menu -# generic generic keymap for all of the above -# editor line editor -# pager text viewer -# - -bind generic "\e<" first-entry # emacs-like bindings for moving to top/bottom -bind generic \e> last-entry -bind generic { top-page -bind generic } bottom-page -bind generic \177 last-entry - -macro index \cb "<pipe-message> urlview<Enter>" # simulate the old browse-url function - -macro index S "<save-message>+spam<Enter>" -macro pager S "<save-message>+spam<Enter>" - -#macro index \# "<search>bug<Enter>" # search for bugs -#macro index "\"" "<enter-command> set realname=\"real hairy macro\" ?realname<Enter>" # and a comment to boot! -#macro index f1 "<enter-command>woohoo!" - -bind pager G bottom # just like vi and less -#macro pager \Ck "<pipe-message> pgp -kaf<Enter>" # a comment is valid here -#macro pager X "<pipe-message> morepgp<Enter>" # pipe PGP message to a script - -#bind editor \cy eol # make ^Y jump to the end of the line - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# User Defined Headers -# - -#my_hdr X-Useless-Header: Look ma, it's a \# sign! # real comment -#my_hdr X-Operating-System: `uname -a` - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Specify default filename when saving messages -# -# save-hook [!]<pattern> <mailbox> -# -# <mailbox> is provided as default when saving messages from <pattern> - -#save-hook mutt- =mutt-mail -#save-hook aol\\.com$ +spam -save-hook ^judge +diplomacy - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Multiple spool mailboxes -# -# mbox-hook [!]<pattern> <mbox-mailbox> -# -# Read mail in <pattern> is moved to <mbox-mailbox> when <pattern> is -# closed. - -#mbox-hook =mutt-users.in =mutt-users -#mbox-hook +TEST +inbox - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Change settings based upon message recipient -# -# send-hook [!]<pattern> <command> -# -# <command> is executed when sending mail to an address matching <pattern> - -#send-hook mutt- 'set signature=~/.sigmutt; my_hdr From: Mutt User <user@example.com>' - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Specify where to save composed messages -# -# fcc-hook [!]<pattern> <mailbox> -# -# <pattern> is recipient(s), <mailbox> is where to save a copy - -#fcc-hook joe +joe -#fcc-hook bob +bob - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Change settings based on mailbox -# -# folder-hook [!]<pattern> <command> -# -# <command> is executed when opening a mailbox matching <pattern> - -#folder-hook . 'set sort=date-sent' -#folder-hook mutt 'set index_format="%4C %Z %02m/%02N %-20.20F (%4l) %s"' -#folder-hook =mutt my_hdr Revolution: \#9 # real comment - -#folder-hook . 'set reply_regexp="^re:[ \t]*"' - -# this mailing list prepends "[WM]" to all non reply subjects, so set -# $reply_regexp to ignore it -# Warning: May break threads for other people. -#folder-hook +wmaker 'set reply_regexp="^(re:[ \t]*)?\[WM\][ \t]*"' - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Aliases -# -# alias <name> <address> [ , <address> ... ] - -#alias exam "\# to annoy michael" <user@host> -#alias me Michael Elkins <me@mutt.org> # me! -alias mutt-dev Mutt Development List <mutt-dev@mutt.org> # power users -alias mutt-users Mutt User List <mutt-users@mutt.org> -alias mutt-announce Mutt Announcement List <mutt-announce@mutt.org> -alias wmaker WindowMaker Mailing List <wmaker@eosys.com> - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Mailboxes to watch for new mail -# -# mailboxes <path1> [ <path2> ... ] -# - -mailboxes ! +mutt-dev +mutt-users +open-pgp +wmaker +hurricane +vim +ietf \ - +drums -#mailboxes `echo $HOME/Mail/*` - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Specify the order of the headers to appear when displaying a message -# -# hdr_order <hdr1> [ <hdr2> ... ] -# - -unhdr_order * # forget the previous settings -hdr_order date from subject to cc - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Identify mailing lists I subscribe to -# -# lists <list-name> [ <list-name> ... ] - -lists ^mutt-dev@mutt\\.org$ ^mutt-users@mutt\\.org$ - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Automatically use entries from ~/.mailcap to view these MIME types -# -# auto_view <type> [ <type> ... ] - -auto_view application/x-gunzip -auto_view application/x-gzip - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# Scoring -# -# score <pattern> <value> -# -# 9999 and -9999 are special values which cause processing of hooks to stop -# at that entry. If you prefix the score with an equal sign (=), the score -# is assigned to the message and processing stops. - -#score '~f ^me@cs\.hmc\.edu$' 1000 -#score '~t mutt | ~c mutt' =500 -#score '~f aol\.com$' -9999 - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# -# I use Mutt on several different machines, so I put local config commands -# in a separate file so I can have the rest of the settings the same on all -# machines. -# - -source ~/.muttrc-local # config commands local to this site - -# EOF |