From 9c689b4c78b0b651f2e79d27a0d602b380a90c6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Fri, 28 Jun 2019 09:12:18 -0700 Subject: Add mutt config --- .mutt/muttrc | 64 +++++++++++++++++++++++++++++++ .mutt/muttrc.aliases | 3 ++ .mutt/muttrc.binds | 13 +++++++ .mutt/muttrc.colors | 60 +++++++++++++++++++++++++++++ .mutt/muttrc.hooks | 5 +++ .mutt/muttrc.hooks.env | 5 +++ .mutt/muttrc.macros | 52 +++++++++++++++++++++++++ .mutt/muttrc.macros.env | 5 +++ .mutt/muttrc.mailboxes.env | 7 ++++ .mutt/muttrc.send.env | 10 +++++ .mutt/muttrc.sidebar | 6 +++ .mutt/muttrc.theme.dracula | 42 ++++++++++++++++++++ .mutt/muttrc.theme.gruvbox-shuber | 81 +++++++++++++++++++++++++++++++++++++++ 13 files changed, 353 insertions(+) create mode 100644 .mutt/muttrc create mode 100644 .mutt/muttrc.aliases create mode 100644 .mutt/muttrc.binds create mode 100644 .mutt/muttrc.colors create mode 100644 .mutt/muttrc.hooks create mode 100755 .mutt/muttrc.hooks.env create mode 100644 .mutt/muttrc.macros create mode 100755 .mutt/muttrc.macros.env create mode 100755 .mutt/muttrc.mailboxes.env create mode 100755 .mutt/muttrc.send.env create mode 100644 .mutt/muttrc.sidebar create mode 100644 .mutt/muttrc.theme.dracula create mode 100644 .mutt/muttrc.theme.gruvbox-shuber diff --git a/.mutt/muttrc b/.mutt/muttrc new file mode 100644 index 0000000..a8a0245 --- /dev/null +++ b/.mutt/muttrc @@ -0,0 +1,64 @@ +# The basics +set folder="~/mail" +set header_cache = "~/.cache/mutt/headers" +set mbox_type=Maildir +set message_cachedir = "~/.cache/mutt/messages" +set postponed="=drafts" +set record="sent" +set sort="threads" +set forward_format = "Fwd: %s" # Format of subject when forwarding + +# Tweaks +unset help # Remove annoying messages +set beep_new +set charset="utf-8" +set fast_reply +set fast_reply=yes # Skip prompt for subject and recipients when replying +set hidden_host=yes +set include # Include message in replies +set mailcap_path = $HOME/.mailcap +set mark_old=no +set markers=no +set mask="!^\\.[^.]" +set pager_context=5 # Retain 5 lines of previous page when scrolling. +set send_charset="utf-8" +set sleep_time = 0 +set smart_wrap # Do not wrap mid word +set wait_key=no + +# Pager +set pager_index_lines = 10 # Number of index lines to show +set pager_context = 3 # Number of context lines to show +set pager_stop # Don't go to next message automatically + +# PGP +set pgp_auto_decode=yes +set pgp_getkeys_command="gpg --recv-keys %r 2>/dev/null" + +# Sanitize messages with t-prot +set display_filter='t-prot -cmekatlS --max-lines=250 --bigq --pgp-short --pgp-move --pgp-move-vrf -Mmutt -L/etc/t-prot/footers -A/etc/t-prot/ads' + +# Date format +set date_format="!%a, %b %d, %Y at %I:%M:%S%p %Z" + +# Conditional time +set index_format='%4C %Z %<[y?%<[m?%<[d?%[%H:%M ]&%[%a %d]>&%[%b %d]>&%[%m/%y ]> %-15.15L (%?l?%4l&%4c?) %s' + +# 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 )?───" + +# HTML +auto_view text/html image/* application/x-gunzip application/x-tar-gz +alternative_order text/plain text/enriched text/html + +# Extra configs +source "$HOME/.mutt/muttrc.aliases" +source "$HOME/.mutt/muttrc.binds" +source "$HOME/.mutt/muttrc.colors" +source "$HOME/.mutt/muttrc.hooks" +source "$HOME/.mutt/muttrc.macros" +source "$HOME/.mutt/muttrc.sidebar" + +source "$HOME/.mutt/muttrc.mailboxes.env|" +source "$HOME/.mutt/muttrc.send.env|" diff --git a/.mutt/muttrc.aliases b/.mutt/muttrc.aliases new file mode 100644 index 0000000..0b0bcaf --- /dev/null +++ b/.mutt/muttrc.aliases @@ -0,0 +1,3 @@ +set alias_file="$HOME/.mutt/muttrc.aliases" + +# Add your aliases here diff --git a/.mutt/muttrc.binds b/.mutt/muttrc.binds new file mode 100644 index 0000000..a595874 --- /dev/null +++ b/.mutt/muttrc.binds @@ -0,0 +1,13 @@ +# mutt sidebar settings +bind index,pager \CP sidebar-prev +bind index,pager \CN sidebar-next +bind index,pager \CO sidebar-open + +bind index,pager p previous-entry +bind index,pager n next-entry + +bind pager i exit +bind pager z create-alias + +bind index next-unread-mailbox +bind pager next-unread-mailbox diff --git a/.mutt/muttrc.colors b/.mutt/muttrc.colors new file mode 100644 index 0000000..c463740 --- /dev/null +++ b/.mutt/muttrc.colors @@ -0,0 +1,60 @@ +## Diffs +color body green default "^diff \-.*" +color body green default "^index [a-f0-9].*" +color body green default "^\-\-\- .*" +color body green default "^[\+]{3} .*" +color body cyan default "^[\+][^\+]+.*" +color body red default "^\-[^\-]+.*" +color body brightblue default "^@@ .*" + +# Various smilies and the like +color body brightwhite default "<[Gg]>" # +color body brightwhite default "<[Bb][Gg]>" # +color body yellow default " [;:]-*[})>{(<|]" # :-) etc... + +# *bold* +color body brightyellow default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" + +# _underline_ +color body brightred default "(^|[[:space:]])" + +color sidebar_new color221 default + +# index stuff +color tree color244 default +color indicator color255 color233 +color index color117 color233 ~N +color index color124 color233 ~D + +# URLs, email and web +color body color68 color233 "(finger|ftp|http|https|news|telnet)://[^ >]*" +color body color111 color233 "" +color body color111 color233 "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?" +color body color111 default "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" +color body brightred color233 "^-.*" +color body green color233 "^[+].*" +color body brightwhite color233 "^diff .*" +color body brightyellow color233 "^@@.*" + +# Misc body +color attachment color111 default +color signature color244 default + +# GPG +color body color188 default "^gpg: Good signature.*" +color body color115 color236 "^gpg: BAD signature.*" +color body color174 color237 "^gpg: Can't check signature.*" +color body color174 color237 "^-----BEGIN PGP SIGNED MESSAGE-----" +color body color174 color237 "^-----BEGIN PGP SIGNATURE-----" +color body color174 color237 "^-----END PGP SIGNED MESSAGE-----" +color body color174 color237 "^-----END PGP SIGNATURE-----" +color body color174 color237 "^Version: GnuPG.*" +color body color174 color237 "^Comment: .*" + +# Highlight TOFU protection: +color body brightmagenta default "^\\[---.*" +color body green default "^#v[-+]" + +# Include theme +source "$HOME/.mutt/muttrc.theme.dracula" diff --git a/.mutt/muttrc.hooks b/.mutt/muttrc.hooks new file mode 100644 index 0000000..e0add57 --- /dev/null +++ b/.mutt/muttrc.hooks @@ -0,0 +1,5 @@ +## Folder hooks +folder-hook . 'set record="^"' +folder-hook . push "~=$" + +source "$HOME/.mutt/muttrc.hooks.env|" diff --git a/.mutt/muttrc.hooks.env b/.mutt/muttrc.hooks.env new file mode 100755 index 0000000..cb412b8 --- /dev/null +++ b/.mutt/muttrc.hooks.env @@ -0,0 +1,5 @@ +#!/bin/bash + +# Add more hooks here +cat << ENDOFMUTTRC +ENDOFMUTTRC diff --git a/.mutt/muttrc.macros b/.mutt/muttrc.macros new file mode 100644 index 0000000..2dc8eba --- /dev/null +++ b/.mutt/muttrc.macros @@ -0,0 +1,52 @@ +# Common macros +macro index \eR "|~/bin/mutt-remember-mail\n" +macro pager \cu 'urlview' 'Follow links with urlview' + +macro index,pager \cb " urlscan" "call urlscan to extract URLs out of a message" +macro attach,compose \cb " urlscan" "call urlscan to extract URLs out of a message" + +# Sidebar +macro index,pager B 'toggle sidebar_visible' + +macro index "toggle sidebar_visible" +macro pager "toggle sidebar_visible" + +macro index,pager D "" "Delete message" + +macro index \ +"unset wait_keynotmuch new" \ +"notmuch: Index new messages" + + +macro index \ + "unset wait_key~/bin/mutt-fetchbug --prompt search~/.cache/mutt_btsresultsset wait_key" \ + "fetch bug(s) (using bts show)" + +macro index \ +"set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key\ +notmuch-mutt -r --prompt search\ +`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`\ +set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key" \ + "notmuch: search mail" + +macro index \ +"set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key\ +notmuch-mutt -r thread\ +`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`\ +set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key" \ + "notmuch: reconstruct thread" + +macro index m "T~N;WN^T~TT~O;WN^T~T" "mark all messages read" + + +# toggle TOFU protection with ESC-0 (off) and ESC-1 (on) +macro generic \e0 ":unset display_filter\n" "Turn TOFU protection off" +macro generic \e1 ":set display_filter='t-prot -cmekatlS --max-lines=250 --bigq --pgp-short --pgp-move --pgp-move-vrf -Mmutt -L/etc/t-prot/footers -A/etc/t-prot/ads'\n" "Turn TOFU protection on" + +# same in pager mode - ugly but what the hell... +macro pager \e0 ":unset display_filter; exec exit\n:exec display-message\n" "Turn TOFU protection off" +macro pager \e1 ":set display_filter='t-prot -cmekatlS --max-lines=250 --bigq --pgp-short --pgp-move --pgp-move-vrf -Mmutt -L/etc/t-prot/footers -A/etc/t-prot/ads'; exec exit\n:exec display-message\n" "Turn TOFU protection on" + +macro attach 'V' "cat > ~/tmp/mail.html && xdg-open ~/tmp/mail.html && rm -f ~/tmp/mail.html" + +source "$HOME/.mutt/muttrc.macros.env|" \ No newline at end of file diff --git a/.mutt/muttrc.macros.env b/.mutt/muttrc.macros.env new file mode 100755 index 0000000..790c65d --- /dev/null +++ b/.mutt/muttrc.macros.env @@ -0,0 +1,5 @@ +#!/bin/bash + +# Add more macros here +cat << ENDOFMUTTRC +ENDOFMUTTRC diff --git a/.mutt/muttrc.mailboxes.env b/.mutt/muttrc.mailboxes.env new file mode 100755 index 0000000..8542be3 --- /dev/null +++ b/.mutt/muttrc.mailboxes.env @@ -0,0 +1,7 @@ +#!/bin/bash + +# Add your mailboxes here +cat << ENDOFMUTTRC +# set spoolfile="=/INBOX" +# mailboxes "=/INBOX" +ENDOFMUTTRC diff --git a/.mutt/muttrc.send.env b/.mutt/muttrc.send.env new file mode 100755 index 0000000..1e2e488 --- /dev/null +++ b/.mutt/muttrc.send.env @@ -0,0 +1,10 @@ +#!/bin/bash + +# Add your sendmail conf here +cat << ENDOFMUTTRC +# set realname='Mr. Example' +# set from="example@example.com" + +# set sendmail="/usr/bin/msmtp --read-envelope-from" +# set pgp_sign_as="" +ENDOFMUTTRC diff --git a/.mutt/muttrc.sidebar b/.mutt/muttrc.sidebar new file mode 100644 index 0000000..a680443 --- /dev/null +++ b/.mutt/muttrc.sidebar @@ -0,0 +1,6 @@ +set mail_check_stats=yes +set sidebar_visible=yes +set sidebar_format="%B%* %S%?N?(%N)?%?F?[%F]?" +set sidebar_indent_string=" " +set sidebar_folder_indent=yes +set sidebar_short_path=yes diff --git a/.mutt/muttrc.theme.dracula b/.mutt/muttrc.theme.dracula new file mode 100644 index 0000000..f94fd1a --- /dev/null +++ b/.mutt/muttrc.theme.dracula @@ -0,0 +1,42 @@ +############################################################################### +# Dracula Theme for Mutt: https://draculatheme.com/ +# +# @author Paul Townsend + +# general ------------ foreground ---- background ----------------------------- +color error color231 color212 +color indicator color231 color241 +color markers color210 default +color message default default +color normal default default +color prompt default default +color search color84 default +color status color141 color236 +color tilde color231 default +color tree color141 default + +# message index ------ foreground ---- background ----------------------------- +color index color210 default ~D # deleted messages +color index color84 default ~F # flagged messages +color index color117 default ~N # new messages +color index color212 default ~Q # messages which have been replied to +color index color215 default ~T # tagged messages +color index color141 default ~v # messages part of a collapsed thread + +# message headers ---- foreground ---- background ----------------------------- +color hdrdefault color117 default +color header color231 default ^Subject:.* + +# message body ------- foreground ---- background ----------------------------- +color attachment color228 default +color body color231 default [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ # email addresses +color body color228 default (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ # URLs +color body color231 default (^|[[:space:]])\\*[^[:space:]]+\\*([[:space:]]|$) # *bold* text +color body color231 default (^|[[:space:]])_[^[:space:]]+_([[:space:]]|$) # _underlined_ text +color body color231 default (^|[[:space:]])/[^[:space:]]+/([[:space:]]|$) # /italic/ text +color quoted color61 default +color quoted1 color117 default +color quoted2 color84 default +color quoted3 color215 default +color quoted4 color212 default +color signature color212 default \ No newline at end of file diff --git a/.mutt/muttrc.theme.gruvbox-shuber b/.mutt/muttrc.theme.gruvbox-shuber new file mode 100644 index 0000000..0b958af --- /dev/null +++ b/.mutt/muttrc.theme.gruvbox-shuber @@ -0,0 +1,81 @@ +# gruvbox dark (contrast dark): + +# bg0 = 234 +# bg1 = 237 +# bg2 = 239 +# bg3 = 241 +# bg4 = 243 +# +# gray = 245 +# +# fg0 = 229 +# fg1 = 223 +# fg2 = 250 +# fg3 = 248 +# fg4 = 246 +# +# red = 167 +# green = 142 +# yellow = 214 +# blue = 109 +# purple = 175 +# aqua = 108 +# orange = 208 + + +# See http://www.mutt.org/doc/manual/#color + +color attachment color109 color234 +color bold color229 color234 +color error color167 color234 +color hdrdefault color246 color234 +color indicator color223 color237 +color markers color243 color234 +color normal color223 color234 +color quoted color250 color234 +color quoted1 color108 color234 +color quoted2 color250 color234 +color quoted3 color108 color234 +color quoted4 color250 color234 +color quoted5 color108 color234 +color search color234 color208 +color signature color108 color234 +color status color234 color250 +color tilde color243 color234 +color tree color142 color234 +color underline color223 color239 + +color sidebar_divider color250 color234 +color sidebar_new color142 color234 + +color index color142 color234 ~N +color index color108 color234 ~O +color index color109 color234 ~P +color index color214 color234 ~F +color index color175 color234 ~Q +color index color167 color234 ~= +color index color234 color223 ~T +color index color234 color167 ~D + +color header color214 color234 "^(To:|From:)" +color header color142 color234 "^Subject:" +color header color108 color234 "^X-Spam-Status:" +color header color108 color234 "^Received:" + +color body color142 color234 "[a-z]{3,256}://[-a-zA-Z0-9@:%._\\+~#=/?&,]+" +#color body color142 color234 "[a-zA-Z]([-a-zA-Z0-9_]+\\.){2,256}[-a-zA-Z0-9_]{2,256}" +color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" +color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" +color body color234 color214 "[;:]-*[)>(