diff options
Diffstat (limited to '.mutt')
-rw-r--r-- | .mutt/attachments | 64 | ||||
-rw-r--r-- | .mutt/colors | 129 | ||||
-rw-r--r-- | .mutt/compose.rc | 15 | ||||
-rwxr-xr-x | .mutt/compose.sh | 14 | ||||
-rwxr-xr-x | .mutt/excel2text.sh | 31 | ||||
-rw-r--r-- | .mutt/gpg.rc | 108 | ||||
-rw-r--r-- | .mutt/mailcap | 119 | ||||
-rw-r--r-- | .mutt/mailinglists | 19 | ||||
-rwxr-xr-x | .mutt/mutt-notmuch.py | 120 | ||||
-rwxr-xr-x | .mutt/mutt-xlabel.py | 164 | ||||
-rwxr-xr-x | .mutt/mutt_bgrun.sh | 118 | ||||
-rwxr-xr-x | .mutt/mutt_octet_view.sh | 278 | ||||
-rw-r--r-- | .mutt/muttrc | 251 | ||||
-rw-r--r-- | .mutt/muttrc.bak | 172 | ||||
-rwxr-xr-x | .mutt/ppt2text.sh | 23 | ||||
-rwxr-xr-x | .mutt/word2text.sh | 67 |
16 files changed, 0 insertions, 1692 deletions
diff --git a/.mutt/attachments b/.mutt/attachments deleted file mode 100644 index 74575de..0000000 --- a/.mutt/attachments +++ /dev/null @@ -1,64 +0,0 @@ -## -## 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. -# -# attachments +A */.* -# attachments +A image/jpeg -# unattachments +A */.* -# -# This leaves "attached" image/jpeg files on the allowed attachments -# list. It does not remove all items, as you might expect, because the -# second */.* is not a matching expression at this time. -# -# Remember: "unattachments" only undoes what "attachments" has done! -# It does not trigger any matching on actual messages. - -# Qualify any MIME part with an "attachment" disposition, EXCEPT for -# text/x-vcard and application/pgp parts. (PGP parts are already known -# to mutt, and can be searched for with ~g, ~G, and ~k.) -# -# I've added x-pkcs7 to this, since it functions (for S/MIME) -# analogously to PGP signature attachments. S/MIME isn't supported -# in a stock mutt build, but we can still treat it specially here. -# - -attachments +A */.* -attachments -A text/x-vcard application/pgp.* -attachments -A application/x-pkcs7-.* - - -# Discount all MIME parts with an "inline" disposition, unless they're -# text/plain. (Why inline a text/plain part unless it's external to the -# message flow?) - -attachments +I text/plain - - -# These two lines make Mutt qualify MIME containers. (So, for example, -# a message/rfc822 forward will count as an attachment.) The first -# line is unnecessary if you already have "attach-allow */.*", of -# course. These are off by default! The MIME elements contained -# within a message/* or multipart/* are still examined, even if the -# containers themselves don't qualify. - -#attachments +A message/.* multipart/.* -#attachments +I message/.* multipart/.* - - -## You probably don't really care to know about deleted attachments. -attachments -A message/external-body -attachments -I message/external-body - -## Then entering the command “attachments ?” as a command will list -## your current settings in Muttrc format, so that it can be pasted -## elsewhere. - -# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: # diff --git a/.mutt/colors b/.mutt/colors deleted file mode 100644 index de2f902..0000000 --- a/.mutt/colors +++ /dev/null @@ -1,129 +0,0 @@ -## -## Color settings for mutt. -## -## Weitian LI -## 2015/02/02 -## -## Ref: http://aperiodic.net/phil/configs/mutt/colors -## - -# Default color definitions -color normal white default -color hdrdefault green default -color quoted green default -color quoted1 yellow default -color quoted2 blue default -color signature cyan default -color indicator brightwhite blue -color error brightred default -color status brightblue black -color tree brightmagenta default -color tilde blue default -color attachment brightyellow default -color markers brightblue default -color message white default -color search brightwhite magenta -color bold brightyellow default - -# Color definitions when on a mono screen -mono bold bold -mono underline underline -mono indicator reverse -mono error bold - -# 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:" -color header brightblue default "^X-Label:" -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 brightwhite default "~N !~T !~F !~p !~P" -# regular tagged messages -color index brightcyan default "~T !~F !~p !~P" -# regular flagged messages -color index brightblue default "~F !~p !~P" -# messages to me -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 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 \"([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 \"(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" -# 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-" - -# deleted messages -color index brightred default "!~N ~D" -color index brightred white "~N ~D" - - -## 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:" - -# 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<>\"]" - -# email addresses -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 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.*" - -# *bold* -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:]]|$)" - -# Various smilies and the like -color body brightwhite default "<[Gg]>" # <g> -color body brightwhite default "<[Bb][Gg]>" # <bg> -color body brightwhite default " [;:]-*[})>{(<|]" # :-) etc... - -# Border lines. -color body blue default "( *[-+=#*~_]){6,}" - -## Custom highlights -# arXiv number -color body brightyellow default "(^|[[:space:]])arXiv:[[:space:]0-9\.]+$" -# arXiv title -color body brightwhite default "(^|[[:space:]])Title:\ .+$" - - -# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: # diff --git a/.mutt/compose.rc b/.mutt/compose.rc deleted file mode 100644 index f2645d8..0000000 --- a/.mutt/compose.rc +++ /dev/null @@ -1,15 +0,0 @@ -# read main config -source ~/.mutt/muttrc - -# remove hooks, headers and sig, they are already in the draft -unhook send-hook -unset signature -unmy_hdr * - -set edit_headers # show headers when composing - -# call the right editor immediately -set autoedit -set editor = "vim +/^$/+1 -c 'set ft=mail enc=utf-8 tw=72'" - -# vim: set ts=8 sw=4 tw=0 fenc= ft=muttrc: # diff --git a/.mutt/compose.sh b/.mutt/compose.sh deleted file mode 100755 index 9172421..0000000 --- a/.mutt/compose.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# -# Compose mail in new tmux/screen window. -# -# Reference: -# [1] Multi-window Mutt with Screen -# http://op-co.de/blog/posts/mulit-window_mutt/ -# - -# set the screen window title to the message receiver -#awk -F 'To: ' '/^To:/ { print "\033k" $2 "\033\\" }' "$1" - -mutt -F ~/.mutt/compose.rc -H "$1" -rm "$1" diff --git a/.mutt/excel2text.sh b/.mutt/excel2text.sh deleted file mode 100755 index c3d0f14..0000000 --- a/.mutt/excel2text.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# excel2text - convert MS Excel files to ASCII text -# -# Written by Gary Johnson <garyjohn@spk.agilent.com>. -# -# Modification History: -# 2003-02-19 -# Changed the name xlHtml to xlhtml to match the xlhtml-0.5 -# release. - -prog=${0##*/} - -if [ $# -ne 1 ] -then - echo "Usage: $prog file" >&2 - exit 2 -fi - -xlhtml -te "$1" | -perl -pe 's/>-{21,}</><HR></g' | # This replaces long lines of - # hyphens with HTML <HR> tags so - # that these lines adapt to the - # width of the cell. "21" is a - # value that works for the - # tables I'm sent. -w3m -dump -T text/html | -perl -pe ' - s/\xa0/ /gs; # Change A0 spaces to ASCII - # spaces. -' diff --git a/.mutt/gpg.rc b/.mutt/gpg.rc deleted file mode 100644 index e918768..0000000 --- a/.mutt/gpg.rc +++ /dev/null @@ -1,108 +0,0 @@ -## -## 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. -# -# %f Most PGP commands operate on a single file or a file -# containing a message. %f expands to this file's name. -# -# %s When verifying signatures, there is another temporary file -# containing the detached signature. %s expands to this -# file's name. -# -# %a In "signing" contexts, this expands to the value of the -# configuration variable $pgp_sign_as. You probably need to -# use this within a conditional % sequence. -# -# %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. - -# 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="gpg2 --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %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="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="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 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 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="gpg2 --no-verbose --import %f" - -# 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="gpg2 --verbose --batch --fingerprint --check-sigs %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="gpg2 --no-verbose --batch --quiet --with-colons --list-secret-keys %r" - -# Fetch keys -# set pgp_getkeys_command="pkspxycwrap %r" - -# Use gpg-agent -set pgp_use_gpg_agent - -# 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=1800 - -# 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 -# 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 " -# OK, here's a version which uses gnupg's message catalog: -# set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`" -# This version uses --status-fd messages -# set pgp_good_sign="^\\[GNUPG:\\] GOODSIG" - -# Automatically sign all outcoming messages -set crypt_autosign -# Sign only replies to signed messages -#set crypt_replysign - -# 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 - -# Automatically verify the sign of a message when opened -set crypt_verify_sig - -# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: # diff --git a/.mutt/mailcap b/.mutt/mailcap deleted file mode 100644 index ef8857c..0000000 --- a/.mutt/mailcap +++ /dev/null @@ -1,119 +0,0 @@ -# -# mailcap - MIME configuration file -# -# Reference: -# [1] Gray Johnson's Mutt Page -# http://www.spocom.com/users/gjohnson/mutt/ -# -# Modified: 2015/02/02 -# - - -# From the attachment menu, if X is running, HTML attachments are sent -# to netscape for viewing; otherwise, they are sent to w3m. For -# in-line viewing, the HTML is converted to text. -# -# [Comment-out next line so that we can use w3m even within X.] -#text/html; mutt_netscape %s; test=RunningX -text/html; w3m -T text/html -I %{charset} -dump %s; \ - nametemplate=%s.html; copiousoutput - -# Add capability to edit attachments from the compose menu. -# -# Mutt can only edit attachments if they have a mailcap edit entry. -# (This would be a good thing to fix.) However, a mailcap entry -# apparently must include the display function--it can't be defaulted. -# The combination "cat; copiousoutput" comes close to the default in -# that in invokes the default pager on the output of cat. However, -# there is apparently no way to specify the default editor--a shell -# environment variable such as $VISUAL or $EDITOR is as close as we can -# get. -# -text/plain; ~/.mutt/mutt_bgrun.sh gvim -f %s; \ - test=sh -c 'test -n "${DISPLAY}"' -text/plain; vim %s -text/*; cat; copiousoutput; edit=$EDITOR %s - -message/rfc822; cat; copiousoutput; edit=$EDITOR %s - -# The following Microsoft application MIME attachments are viewed from -# the attachment menu using LibreOffice. -# -application/msword; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/msword; word2text %s; copiousoutput -application/vnd.msword; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/vnd.msword; word2text %s; copiousoutput -application/vnd.openxmlformats-officedocument.wordprocessingml.document; \ - ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -# -application/excel; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/excel; excel2text %s; copiousoutput -application/msexcel; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/msexcel; excel2text %s; copiousoutput -application/vnd.ms-excel; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/vnd.ms-excel; excel2text %s; copiousoutput -application/x-excel; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/x-excel; excel2text %s; copiousoutput -application/x-msexcel; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/x-msexcel; excel2text %s; copiousoutput -application/ms-Excel; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/ms-Excel; excel2text %s; copiousoutput -# -application/vnd.ms-powerpoint; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/vnd.ms-powerpoint; ppt2text %s; copiousoutput -application/x-mspowerpoint; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/x-mspowerpoint; ppt2text %s; copiousoutput -application/ppt; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/ppt; ppt2text %s; copiousoutput - - -application/pdf; ~/.mutt/mutt_bgrun.sh evince %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/pdf; pdftotext %s -; copiousoutput - -application/postscript; ~/.mutt/mutt_bgrun.sh evince %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/postscript; ps2ascii %s; copiousoutput - -application/rtf; ~/.mutt/mutt_bgrun.sh libreoffice %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/rtf; rtf2text %s; copiousoutput - -#application/ms-tnef; tnef -w %s - -#application/octet-stream; mutt_octet_view -x %s; test=RunningX -#application/octet-stream; mutt_octet_view -v %s -#application/octet-stream; mutt_octet_view %s; copiousoutput - -image/*; ~/.mutt/mutt_bgrun.sh feh %s; \ - test=sh -c 'test -n "${DISPLAY}"' - -video/*; ~/.mutt/mutt_bgrun.sh vlc %s; \ - test=sh -c 'test -n "${DISPLAY}"' - -# Open scripts -application/x-shellscript; ~/.mutt/mutt_bgrun.sh gvim -f %s; \ - test=sh -c 'test -n "${DISPLAY}"' -application/x-shellscript; vim %s - -# Show archive conents. -# -application/x-compressed-tar; tar -tf %s; copiousoutput -application/x-bzip-compressed-tar; \ - bunzip2 -c %s | tar -tf -; copiousoutput -application/x-tar-gz; gunzip -c %s | tar -tf -; copiousoutput -application/x-7z-compressed; 7z l %s; copiousoutput - -# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=mailcap: # diff --git a/.mutt/mailinglists b/.mutt/mailinglists deleted file mode 100644 index 0732d11..0000000 --- a/.mutt/mailinglists +++ /dev/null @@ -1,19 +0,0 @@ -## -## Mailing lists management -## -## Weitian LI -## 2015/02/02 -## - -## lists -lists no-reply@arxiv.org -lists rabble@arxiv.org - -## subscribe -subscribe freebsd-current@freebsd.org -subscribe current@freebsd.org -subscribe freebsd-x11@freebsd.org -subscribe tech@openbsd.org -subscribe misc@openbsd.org - -# 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 deleted file mode 100755 index 880b987..0000000 --- a/.mutt/mutt-notmuch.py +++ /dev/null @@ -1,120 +0,0 @@ -#!/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/mutt-xlabel.py b/.mutt/mutt-xlabel.py deleted file mode 100755 index ea96e37..0000000 --- a/.mutt/mutt-xlabel.py +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env python3 -# -# Add/Modify 'X-Label' header for mutt. -# Label mails with mutt. -# -# Reference: -# [1] GTD (Getting Things Done) and Mutt -# https://docwhat.org/gtd-and-mutt/ -# -# muttrc settings: -# unignore X-Label: -# macro index,pager x '<enter-command>set my_oldeditor=$editor<enter><enter-command>set editor="~/.mutt/mutt-xlabel.py"<enter><edit><previous-undeleted><clear-flag>N<sync-mailbox><enter-command>set editor=$my_oldeditor<enter>' \ -# "edit X-Label" -# macro index \Cx "<limit>~y " \ -# "limit view to label" -# -# Weitian LI <liweitianux@gmail.com> -# 2015/02/06 -# - -import sys -import os -import email -import readline - - -# Settings -HISTFILE = os.path.join(os.environ["HOME"], ".mutt/xlabel_history") -LABELFILE = os.path.join(os.environ["HOME"], ".mutt/xlabels") - - -class MyCompleter(object): - """ - Comstom completer for readline. - - Reference: - [1] autocomplete - How to code autocompletion in python? - http://stackoverflow.com/a/7821956 - """ - def __init__(self, options): - self.options = sorted(options) - - def complete(self, text, state): - if state == 0: # on first trigger, build possible matches - if text: # cache matches (entries that start with entered text) - self.matches = [s for s in self.options - if s and s.startswith(text)] - else: # no text entered, all matches possible - self.matches = self.options[:] - - # return match indexed by state - try: - return self.matches[state] - except IndexError: - return None - - -def my_input(prompt, default=None, completer=None): - if default is not None: - def pre_input_hook(): - readline.insert_text(default) - readline.redisplay() - readline.set_pre_input_hook(pre_input_hook) - # completer - if completer: - readline.set_completer(completer) - readline.parse_and_bind('tab: complete') - return input(prompt) - - -def load_labels(labelfile): - """ - Load saved labels from given labelfile, - return a list of labels. - """ - try: - with open(labelfile, 'r') as f: - label_list = f.read().split() - label_list = list(set(label_list)) - except FileNotFoundError: - label_list = [] - return label_list - - -def update_labels(labelfile, label_list, new_label_list): - """ - Save labels for later autocompletion. - """ - labels = sorted(list(set(label_list).union(set(new_label_list)))) - with open(labelfile, 'w') as f: - f.write(' '.join(labels)) - - -def get_xlabel(message): - """ - Get 'X-Label:' values from given Message object. - """ - labels = message.get_all('X-Label') - if labels: - label_str = ' '.join(labels) - else: - label_str = '' - # remove duplicates and sort - label_list = sorted(list(set(label_str.split()))) - return label_list - - -def write_xlabel(message, old_label_list, new_label_list, outfile): - """ - Update 'X-Label' value of given Message object; - then write Message object to outfile. - """ - # remove duplicates and sort - new_label_list = sorted(list(set(new_label_list))) - if set(old_label_list) != set(new_label_list): - # delete original 'X-Label' header (all occurences) - del message['X-Label'] - # add new 'X-Label' header - message['X-Label'] = ' '.join(new_label_list) - # write to outfile (Just OVERWRITE, OK??) - fp_out = open(outfile, 'w') - fp_out.write(message.as_string()) - fp_out.close() - - -def main(): - if len(sys.argv) != 2 and len(sys.argv) != 3: - print("Usage: %s <mail> [ outmail ]" % sys.argv[0]) - sys.exit(1) - - inmail = sys.argv[1] - if len(sys.argv) == 3: - outmail = sys.argv[2] - else: - outmail = inmail - - if hasattr(readline, 'read_history_file'): - try: - readline.read_history_file(HISTFILE) - except IOError: - pass - - # get all recorded labels for readline autocompletion - all_labels = load_labels(LABELFILE) - completer = MyCompleter(all_labels) - - # open mail and create email.message.Message object - msg = email.message_from_file(open(inmail, 'r')) - # get original labels - label_list = get_xlabel(msg) - # get user provided labels - new_label = my_input(prompt='X-Label: ', default=' '.join(label_list), - completer=completer.complete) - # write new labels to mail - write_xlabel(msg, label_list, new_label.split(), outmail) - # save readline history - readline.write_history_file(HISTFILE) - # save labels - update_labels(LABELFILE, all_labels, new_label.split()) - - -if "__main__" == __name__: - main() - diff --git a/.mutt/mutt_bgrun.sh b/.mutt/mutt_bgrun.sh deleted file mode 100755 index 0b2c651..0000000 --- a/.mutt/mutt_bgrun.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -# @(#) mutt_bgrun $Revision: 1.4 $ - -# mutt_bgrun - run an attachment viewer from mutt in the background -# Copyright (C) 1999-2002 Gary A. Johnson -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# SYNOPSIS -# mutt_bgrun viewer [viewer options] file -# -# DESCRIPTION -# Mutt invokes external attachment viewers by writing the -# attachment to a temporary file, executing the pipeline specified -# for that attachment type in the mailcap file, waiting for the -# pipeline to terminate, writing nulls over the temporary file, -# then deleting it. This causes problems when using graphical -# viewers such as qvpview and acroread to view attachments. -# -# If qvpview, for example, is executed in the foreground, the mutt -# user interface is hung until qvpview exits, so the user can't do -# anything else with mutt until he or she finishes reading the -# attachment and exits qvpview. This is especially annoying when -# a message contains several MS Office attachments--one would like -# to have them all open at once. -# -# If qvpview is executed in the background, it must be given -# enough time to completely read the file before returning control -# to mutt, since mutt will then obliterate the file. Qvpview is -# so slow that this time can exceed 20 seconds, and the bound is -# unknown. So this is again annoying. -# -# The solution provided here is to invoke the specified viewer -# from this script after first copying mutt's temporary file to -# another temporary file. This script can then quickly return -# control to mutt while the viewer can take as much time as it -# needs to read and render the attachment. -# -# EXAMPLE -# To use qvpview to view MS Office attachments from mutt, add the -# following lines to mutt's mailcap file. -# -# application/msword; mutt_bgrun qvpview %s -# application/vnd.ms-excel; mutt_bgrun qvpview %s -# application/vnd.ms-powerpoint; mutt_bgrun qvpview %s -# -# AUTHOR -# Gary A. Johnson -# <garyjohn@spk.agilent.com> -# -# ACKNOWLEDGEMENTS -# My thanks to the people who have commented on this script and -# offered solutions to shortcomings and bugs, especially Edmund -# GRIMLEY EVANS <edmundo@rano.org> and Andreas Somogyi -# <aso@somogyi.nu>. - -prog=${0##*/} - -# Check the arguments first. - -if [ "$#" -lt "2" ] -then - echo "usage: $prog viewer [viewer options] file" >&2 - exit 1 -fi - -# Separate the arguments. Assume the first is the viewer, the last is -# the file, and all in between are options to the viewer. - -viewer="$1" -shift - -while [ "$#" -gt "1" ] -do - options="$options $1" - shift -done - -file="$1" - -# Create a temporary directory for our copy of the temporary file. -# -# This is more secure than creating a temporary file in an existing -# directory. - -tmpdir=/tmp/$LOGNAME$$ -umask 077 -mkdir "$tmpdir" || exit 1 -tmpfile="$tmpdir/${file##*/}" -#echo "file: ${file}" > ~/debug.$$.log -#echo "tmpfile: ${tmpfile}" >> ~/debug.$$.log - -# Copy mutt's temporary file to our temporary directory so that we can -# let mutt overwrite and delete it when we exit. - -cp "$file" "$tmpfile" - -# Run the viewer in the background and delete the temporary files when done. - -( - "$viewer" $options "$tmpfile" > /dev/null 2>&1 - rm -f "$tmpfile" - rmdir "$tmpdir" -) & - -# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=sh: # diff --git a/.mutt/mutt_octet_view.sh b/.mutt/mutt_octet_view.sh deleted file mode 100755 index a1e6c6f..0000000 --- a/.mutt/mutt_octet_view.sh +++ /dev/null @@ -1,278 +0,0 @@ -#!/bin/sh -# @(#) mutt_octet_view $Revision: 1.1 $ - -# mutt_octet_view - select octet-stream e-mail attachment viewer -# Copyright (C) 1997,1998,1999,2000 David A Pearson -# Copyright (C) 2000-2001 Gary A. Johnson -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Mutt_octet_view is derived from Dave Pearson's mutt.octet.filter -# script (http://www.hagbard.demon.co.uk/archives/mutt.octet.filter). -# Mutt.octet.filter was designed to convert octet-stream e-mail -# attachments to text for use with mutt's auto_view feature. -# Mutt_octet_view extends this capability to use different viewers from -# mutt's attachment menu, including graphical viewers if X is available. -# -# To use mutt_octet_view, put the following lines in your mailcap file: -# -# application/octet-stream; mutt_octet_view -x %s; test=RunningX -# application/octet-stream; mutt_octet_view -v %s -# application/octet-stream; mutt_octet_view %s; copiousoutput -# -# and the following line in your muttrc file: -# -# auto_view application/octet-stream -# -# Mutt_octet_view is not a viewer itself; it only selects external -# viewers based on the attachments' file name suffixes (extensions). -# In addition to any viewers, you will need a copy of the author's -# mutt_bgrun script in order to run X viewers in the background. -# -# Please direct any comments to: -# -# Gary Johnson <garyjohn@spk.agilent.com> -# - - -ShowTAR() -{ - tar tvvf "$1" 2> /dev/null -} - -ShowTGZ() -{ - tar tzvvf "$1" 2> /dev/null -} - -ShowTBZ() -{ - bzip2 -dc "$1" | tar -tvv -f- 2> /dev/null -} - -ShowGZIP() -{ - gzip -dc "$1" 2> /dev/null -} - -ShowZIP() -{ - unzip -l "$1" 2> /dev/null -} - -ShowARJ() -{ - unarj l "$1" 2> /dev/null -} - -ShowVCard() -{ - cat "$1" | mutt.vcard.filter -} - -ShowTIF() -{ - tiffinfo "$1" -} - -ShowObject() -{ - nm "$1" -} - -ShowHTML() -{ - w3m -dump "$1" -} - -ShowPDF() -{ - pdftotext "$1" - -} - -Show() -{ - case "$Mode" in - SHOW) - if [ "$2" ] - then - $2 "$1" - elif [ "$3" -o "$4" ] - then - echo "[-- $Prog: file type is unsupported for autoview (use 'v' to view this part) --]" - else - echo "[-- $Prog: file type is unsupported --]" - fi - ;; - VIEW) - if [ "$3" ] - then - $3 "$1" - elif [ "$2" ] - then - $2 "$1" - else - echo "$Prog: file type is unsupported" >&2 - exit 1 - fi - ;; - XVIEW) - if [ "$4" ] - then - mutt_bgrun $4 "$1" || $4 "$1" - elif [ "$3" ] - then - $3 "$1" - elif [ "$2" ] - then - $2 "$1" - else - echo "$Prog: file type is unsupported" >&2 - exit 1 - fi - ;; - *) echo "$Prog: internal error: invalid Mode $Mode" >&2 - exit 2;; - esac -} - -# Initialize variables - -Prog=$(basename "$0") -Mode=SHOW - -# Check option arguments - -while [ $# -gt 0 ] -do - case "$1" in - -t) Mode=SHOW; shift;; - -v) Mode=VIEW; shift;; - -x) Mode=XVIEW; shift;; - -*) echo "$Prog: invalid option $1" >&2; exit 2;; - *) break;; - esac -done - -# Check file argument - -if [ $# -ne 1 ] -then - echo "usage: $Prog [-t|-v|-x] file" - exit 2 -fi - -File=$1 - -# Process file - -# The behavior of mutt_octet_view is governed primarily by the 'Show' -# function, the option argument, and the table below. 'Show' searches -# its arguments for a command that it can use to display File. It -# begins in the table column specified by the option argument -t (the -# default), -v or -x, and searches to the left until it finds a command -# (non-empty string), which it executes. Commands in the right-most -# column are executed in the background and are left to handle their own -# output. Commands in the other two columns are executed in the -# foreground and send their output to stdout. -# -# Here are some examples. -# -# Autoview Text View X View -# (from (from (from -# index attachment attachment -# menu, menu, menu, -# in-line) foreground) background) -# (-t) (-v) (-x) -# ----------- ----------- ----------- -# Func1 "" "" Func1 will be used to display -# file in all cases. This is -# useful when all that is -# required to display the file is -# a simple text transformation. -# -# "" Func2 "" The file will not be displayed -# in the pager output from the -# index menu. Func2 will be used -# to display the file from the -# attachment menu. This is -# useful when the file is to be -# displayed as text, but is not -# normally desired to view it -# along with the rest of the -# message. -# -# "" "" Func3 The file contains graphical -# material that cannot be viewed -# as text. Func3 will be used to -# display the file only from the -# attachment menu and only when X is -# available. Func3 will be run in -# the background so that the user -# can continue to use the mailer -# while the file is displayed. -# -# "" Func2 Func3 The file contents are not -# displayed in-line along with -# the rest of the message because -# the file is typically large. -# Func2 has only text output and -# is used when only a terminal is -# available for output. Func3 -# produces a nicer display when X -# is available. - -case "$File" in - # Autoview Text View X View - # (from (from (from - # index attachment attachment - # menu, menu, menu, - # in-line) foreground) background) - # (-t) (-v) (-x) - # ----------- ----------- ------------- -*.arj | *.ARJ ) Show "$File" "" ShowARJ "" ;; -*.doc | *.DOC ) Show "$File" word2text word2text qvpview ;; -*.gif | *.GIF ) Show "$File" "" "" xv ;; -*.htm | *.HTM ) Show "$File" ShowHTML w3m mutt_netscape ;; -*.html | *.HTML ) Show "$File" ShowHTML w3m mutt_netscape ;; -*.jpeg | *.JPEG ) Show "$File" "" "" xv ;; -*.jpg | *.JPG ) Show "$File" "" "" xv ;; -*.log | *.LOG ) Show "$File" cat less "" ;; -*.o ) Show "$File" "" ShowObject "" ;; -*.pdf | *.PDF ) Show "$File" "" ShowPDF acroread ;; -*.ppt | *.PPT ) Show "$File" "" "" qvpview ;; -*.ps | *.PS ) Show "$File" "" "" ghostview ;; -*.rtf | *.RTF ) Show "$File" "" rtf2text qvpview ;; -*.tar ) Show "$File" "" ShowTAR "" ;; -*.tar.bz2 ) Show "$File" "" ShowTBZ "" ;; -*.tar.gz ) Show "$File" "" ShowTGZ "" ;; -*.tar.Z ) Show "$File" "" ShowTGZ "" ;; -*.tar.z ) Show "$File" "" ShowTGZ "" ;; -*.tbz2 ) Show "$File" "" ShowTBZ "" ;; -*.tgz ) Show "$File" "" ShowTGZ "" ;; -*.tif | *.TIF ) Show "$File" "" ShowTIF xv ;; -*.txt | *.TXT ) Show "$File" cat less "" ;; -*.url | *.URL ) Show "$File" cat w3m "" ;; -*.vcf ) Show "$File" "" ShowVCard "" ;; -*.xls | *.XLS ) Show "$File" excel2text excel2text qvpview ;; -*.Z ) Show "$File" "" ShowGZIP "" ;; -*.z ) Show "$File" "" ShowGZIP "" ;; -*.zip | *.ZIP ) Show "$File" "" ShowZIP "" ;; -*.gz ) Show "$File" "" ShowGZIP "" ;; - # The *.gz entry must follow any other entries ending in - # .gz. -* ) echo "$Prog: file type is unsupported" >&2; exit 1 ;; - -esac diff --git a/.mutt/muttrc b/.mutt/muttrc deleted file mode 100644 index 6b369bb..0000000 --- a/.mutt/muttrc +++ /dev/null @@ -1,251 +0,0 @@ -## -## 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 -## http://www.mutt.org/doc/devel/manual.html -## [6] A Quick Guide to Mutt -## http://srobb.net/mutt.html -## [7] Multi-window Mutt with Screen -## http://op-co.de/blog/posts/mulit-window_mutt/ -## [8] Github - proycon/dotfiles - mutt with tmux -## https://github.com/proycon/dotfiles -## - -### Mail boxes -source ~/.mutt/mailboxes # Generated by OfflineIMAP - -### Mail accounts -folder-hook . source ~/.mutt/accounts/default -folder-hook 'gmail-aly.*' source ~/.mutt/accounts/gmail-aly -folder-hook 'gmail-li.*' source ~/.mutt/accounts/gmail-li -folder-hook 'outlook-aly.*' source ~/.mutt/accounts/outlook-aly -folder-hook 'outlook-li.*' 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 certificate_file = ~/.mutt/certificates -set mailcap_path = ~/.mutt/mailcap -set history_file = ~/.mutt/history -set header_cache = ~/.mutt/cache/headers -set message_cachedir = ~/.mutt/cache/bodies -set tmpdir = ~/.mutt/tmp - -### General settings -set mbox_type = Maildir -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 use_from # always generate the `From:' header field -set quit = ask-no # ask for confirmation when quit mutt -set history = 256 -set save_history = 256 -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 +/^$/+1 -c 'set 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 fcc_attach # save attachments with the body -set forward_format = "Fwd: %s" -set forward_quote # include message in forwards -set forward_decode # decode when forwarding -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 include # include message in replies -#set postpone # auto postpone message not sent when exit -#set recall # prompt to recall postponed messages -unset mime_forward # forward attachments as part of body - -### Headers -ignore * -unignore from: to: cc: bcc: date: subject: X-Label: -unhdr_order * -hdr_order from: to: cc: date: subject: X-Label: - -### Encoding -set send_charset = "us-ascii:utf-8" -# if no charset given on incoming messages -set assumed_charset = "iso-8859-1:gb2312:gbk:gb18030:utf-8" -set rfc2047_parameters # to fix attachment filename encoding - -### Index view -# first bang ("!") to expand month week names in the C locale -set date_format = "!%a %m/%d %I:%M" -set index_format = "[%Z] %d %2M %-15.15L %4c%?X?[%X]& ? %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]+\])?: *)?(\[[^]]+\] *)?)*" - -### Status bar -set status_chars = " *%A" -set status_format = "---[ Folder: %f %r ]---[ Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l? ]---%>-(%P)---" - -### Pager -set pager_format = "[%Z] %C/%m: %-20.20n | %s%* -- (%P)" -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 i noop -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 D delete-message -bind index,pager R group-reply -bind index,pager N search-opposite -bind index,pager \# noop -bind index,pager <TAB> sync-mailbox -bind pager i exit -bind pager / search -bind pager <UP> previous-line -bind pager <DOWN> next-line -bind pager k previous-line -bind pager j next-line -bind pager gg top -bind pager G bottom -bind pager K previous-undeleted -bind pager J next-undeleted -bind pager \Cj next-unread -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 S "<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,pager > "<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 ';' "<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)" -# labels -macro index,pager x '<enter-command>set my_oldeditor=$editor<enter><enter-command>set editor="~/.mutt/mutt-xlabel.py"<enter><edit><previous-undeleted><clear-flag>N<sync-mailbox><enter-command>set editor=$my_oldeditor<enter>' \ - "edit X-Label" -macro index \Cx "<limit>~y " \ - "limit view to label" - -### aliases -set sort_alias = alias # sort alias file by alias -set reverse_alias # show names from alias file in index -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 -set followup_to # generate 'Mail-Followup-To:' header field -set honor_followup_to # 'Mail-Followup-To' header is honored -source ~/.mutt/mailinglists - -## Multiplexing using tmux -# compose mail in tmux window -macro index,pager M '<enter-command>set my_oldeditor=$editor<enter><enter-command>set editor="cp %s %s.2; tmux new-window -a -t mutt \"~/.mutt/compose.sh %s.2\""<enter><enter-command>unset recall<enter><mail><enter-command>set editor=$my_oldeditor<enter>' \ - "mail in new tmux window" -#unset wait_key # already set above -# forward messages -# override the <recall-message> hotkey -macro index,pager P "<shell-escape>tmux new-window -a -t mutt 'mutt -F ~/.mutt/compose.rc -p'<enter>" \ - "recall postponed message in new tmux window" -# Set the editor for for editing messages in-place, -# allows re-editing before sending, e.g. for use in forwarding messages. -macro compose E '<enter-command>set my_oldeditor=$editor<enter><enter-command>set editor="vim"<enter><edit><enter-command>set editor=$my_oldeditor<enter>' \ - "edit message in-place" -# open mailbox listing in a new window -macro index,pager Y '<shell-escape>tmux new-window -a -t mutt "mutt -y"<enter>' \ - "open mailbox listing in new tmux window" - -## Attachment searching and counting -source ~/.mutt/attachments - -## Colors -source ~/.mutt/colors - -## GnuPG -source ~/.mutt/gpg.rc - -## auto view -auto_view text/html application/x-tar-gz application/x-compressed-tar \ - application/x-bzip-compressed-tar - -## MIME types that should *not* be treated according to their mailcap entry -mime_lookup application/octet-stream application/X-Lotus-Manuscript - -### 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/muttrc.bak b/.mutt/muttrc.bak deleted file mode 100644 index 7cca10c..0000000 --- a/.mutt/muttrc.bak +++ /dev/null @@ -1,172 +0,0 @@ -# $Id$ -# -########################################## -## mutt configuration file ## -## ## -## LIweitiaNux ## -## February 6, 2012 ## -########################################## - -### 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 tmpdir = ~/.mutt/tmp - -### 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 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 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 date_format = "%m/%d/%y at %I:%M" -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 index_format = "%4C %Z %{%m/%d} %-15.15F (%4c) %s" # format of the index -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 +/^$" -set visual = "vim +/^$" -set realname = "LIweitiaNux" -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 -unset mime_forward # forward attachments as part of body -set forward_format = "Fwd: %s" -set forward_quote # include message in forwards -set forward_decode # decode when forwarding -set attribution = "On %d, %n wrote: " -#set metoo # sends a copy to all recipients and myself -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 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---' - -### headers settings -ignore * # ignore all headers -unignore from: to cc bcc date subject # show only these headers -hdr_order from: to cc date subject - -### 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 - -### 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 - -### bindings -bind index,pager \# noop -bind index i noop -bind pager i exit -bind pager / search -bind pager <up> previous-line -bind pager <down> next-line -bind pager k previous-line -bind pager j next-line -bind pager gg top -bind pager G bottom -bind pager K previous-undeleted -bind pager J next-undeleted -bind index gg first-entry -bind index G last-entry -bind index K previous-unread -bind index J next-unread -bind index,pager R group-reply - -### macros -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 Z "<shell-escape>offlineimap -o -q -u ttyui<enter>" "offlineimap sync ..." - -### Misc settings -## mutt colors definitions -source ~/.mutt/colors -#set arrow_cursor # use -> instead of hiliting the whole line - -## zh attachment encodeing -set rfc2047_parameters = yes - -## GnuPG -source ~/.mutt/gpg.rc - -## auto view -auto_view text/html application/x-gunzip application/x-tar-gz \ - 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 - -## attachment searching and counting -## attachments { +|- } disposition mime-type -## 'disposition': inline(I), attachment(A) -source ~/.mutt/attachments - -## 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 - -# -# vim: filetype=muttrc diff --git a/.mutt/ppt2text.sh b/.mutt/ppt2text.sh deleted file mode 100755 index 43d22f4..0000000 --- a/.mutt/ppt2text.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# -# ppt2text - convert MS PowerPoint files to ASCII text -# -# Written by Gary Johnson <garyjohn@spk.agilent.com>. -# -# Modification History: -# 2003-02-19 -# Changed the name pptHtml to ppthtml to match the xlhtml-0.5 -# release. - -prog=${0##*/} - -if [ $# -ne 1 ] -then - echo "Usage: $prog file" >&2 - exit 2 -fi - -ppthtml $1 | -w3m -dump -T text/html | -perl -pe 's/\xa0/ /g' # Change A0 spaces to ASCII - # spaces. diff --git a/.mutt/word2text.sh b/.mutt/word2text.sh deleted file mode 100755 index fe9682d..0000000 --- a/.mutt/word2text.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# word2text - convert MS Word files to ASCII text -# -# SYNOPSIS -# word2text file -# -# DESCRIPTION -# Word2text uses wvHtml, w3m and some perl glue to convert the MS -# Word file specified by the argument to ASCII text on stdout. -# -# wvHtml converts MS Word files to HTML, but is intended to be -# used with a graphical browser such as Netscape Navigator, so it -# converts certain graphical elements to image files and -# corresponding <img> tags that the browser can render. Since -# this script uses a text based browser, it uses perl to eliminate -# these <img> tags. -# -# Compared to Quick View Plus (qvpview), the rendering of MS Word -# documents done by word2text is usually more accurate. Qvpview -# doesn't render unrecognized characters well, if at all. It also -# renders numbered lists as bullet lists. -# -# Compared to the plain text translations that some people include -# in their e-mail along with the original MS Word attachments, the -# rendering done by word2text is usually more readable: vertical -# spacing between paragraphs and list items is better and the -# adjustment of text within paragraphs is better. -# -# BUGS -# wvHtml occasionally dumps core. -# With the wv-0.7.4 release, some unnumbered lists are rendered as -# numbered. -# -# AUTHOR -# Gary A. Johnson -# <garyjohn@spk.agilent.com> -# -# REVISION HISTORY -# 2003-05-31 -# Between wv-0.5.42 and wv-0.7.4, wvHtml changed to insert -# a <p> tag between each <li> tag and the following text, -# causing the list-item text to start on the line -# following the list-item bullet or number. A perl -# expression was added to this script to fix the problem. -# 2003-02-19 -# The command-line arguments to wvHtml changed, requiring -# the output file name as well as the input file name. -# Therefore, '-' (stdout) was added to the command as the -# output file name. - -wvHtml "$1" - 2> /dev/null | -perl -0777 -p -e ' - s|<img .*?>||gs; # Delete img tags. - s|(<li.*?>)\s*<p>|\1|gs; # Remove <p> tags immediately - # following <li> tags. (This - # problem appeared somewhere - # between wv-0.5.42 and - # wv-0.7.4.) -' | -w3m -dump -T text/html | -perl -p -e ' - s/\n\s*\n/\n\n/gs; # Delete extra whitespace - # between lines. - s/\xa0/ /gs; # Change A0 spaces to ASCII - # spaces. -' |