Add mutt configuration

This commit is contained in:
Austen Adler 2019-04-05 14:28:27 -04:00
parent 1308e25186
commit c180067e8e
6 changed files with 858 additions and 0 deletions

13
mutt/.mutt/attach_fork.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
if (($# < 2)); then
printf "Invalid usage\nPress enter\n" >&2
read
exit 2
fi
set -xe
OLD_FILE="$1"
shift
BASENAME="$(basename "$OLD_FILE")"
NEW_FILE="$(mktemp --suffix "${BASENAME##*.}")"
cp --no-preserve=all -- "$OLD_FILE" "$NEW_FILE"
exec "$@" "$NEW_FILE" >/dev/null 2>&1 & disown

372
mutt/.mutt/bindings Normal file
View File

@ -0,0 +1,372 @@
# Heavily modified from https://github.com/iagox86/mutt/blob/master/keybindings.conf
# generic => *~pager/editor
# browser => Mailbox list
# index => List of emails
# pager => Email read screen
# attach => Attachments list
# editor => Command line; not sure what else
bind generic,pager,editor,index | noop
bind generic,pager,editor,index a noop
bind generic,pager,editor,index b noop
bind generic,pager,editor,index c noop
bind generic,pager,editor,index d noop
bind generic,pager,editor,index e noop
bind generic,pager,editor,index f noop
bind generic,pager,editor,index g noop
bind generic,pager,editor,index h noop
bind generic,pager,editor,index i noop
bind generic,pager,editor,index j noop
bind generic,pager,editor,index k noop
bind generic,pager,editor,index l noop
bind generic,pager,editor,index m noop
bind generic,pager,editor,index n noop
bind generic,pager,editor,index o noop
bind generic,pager,editor,index p noop
bind generic,pager,editor,index q noop
bind generic,pager,editor,index r noop
bind generic,pager,editor,index s noop
bind generic,pager,editor,index t noop
bind generic,pager,editor,index u noop
bind generic,pager,editor,index v noop
bind generic,pager,editor,index w noop
bind generic,pager,editor,index x noop
bind generic,pager,editor,index y noop
bind generic,pager,editor,index z noop
bind generic,pager,editor,index A noop
bind generic,pager,editor,index B noop
bind generic,pager,editor,index C noop
bind generic,pager,editor,index D noop
bind generic,pager,editor,index E noop
bind generic,pager,editor,index F noop
bind generic,pager,editor,index G noop
bind generic,pager,editor,index H noop
bind generic,pager,editor,index I noop
bind generic,pager,editor,index J noop
bind generic,pager,editor,index K noop
bind generic,pager,editor,index L noop
bind generic,pager,editor,index M noop
bind generic,pager,editor,index N noop
bind generic,pager,editor,index O noop
bind generic,pager,editor,index P noop
bind generic,pager,editor,index Q noop
bind generic,pager,editor,index R noop
bind generic,pager,editor,index S noop
bind generic,pager,editor,index T noop
bind generic,pager,editor,index U noop
bind generic,pager,editor,index V noop
bind generic,pager,editor,index W noop
bind generic,pager,editor,index X noop
bind generic,pager,editor,index Y noop
bind generic,pager,editor,index Z noop
bind generic,pager,editor,index <Tab> noop
bind generic,pager,editor,index <Space> noop
bind generic,pager,editor,index <PageUp> noop
bind generic,pager,editor,index <PageDown> noop
bind generic,pager,editor,index <Home> noop
bind generic,pager,editor,index <End> noop
bind generic,pager,editor,index <Insert> noop
bind generic,pager,editor,index <Delete> noop
bind generic,pager,editor,index <Up> noop
bind generic,pager,editor,index <Down> noop
bind generic,pager,editor,index <Left> noop
bind generic,pager,editor,index <Right> noop
bind generic,pager,editor,index <Enter> noop
bind generic,pager,editor,index <Return> noop
bind generic,pager,editor,index 1 noop
bind generic,pager,editor,index 2 noop
bind generic,pager,editor,index 3 noop
bind generic,pager,editor,index 4 noop
bind generic,pager,editor,index 5 noop
bind generic,pager,editor,index 6 noop
bind generic,pager,editor,index 7 noop
bind generic,pager,editor,index 8 noop
bind generic,pager,editor,index 9 noop
bind generic,pager,editor,index 0 noop
bind generic,pager,editor,index ! noop
bind generic,pager,editor,index @ noop
bind generic,pager,editor,index $ noop
bind generic,pager,editor,index % noop
bind generic,pager,editor,index ^ noop
bind generic,pager,editor,index & noop
bind generic,pager,editor,index * noop
bind generic,pager,editor,index ( noop
bind generic,pager,editor,index ) noop
bind generic,pager,editor,index \Ca noop
bind generic,pager,editor,index \Cb noop
bind generic,pager,editor,index \Cc noop
bind generic,pager,editor,index \Cd noop
bind generic,pager,editor,index \Ce noop
bind generic,pager,editor,index \Cf noop
bind generic,pager,editor,index \Cg noop
bind generic,pager,editor,index \Ch noop
bind generic,pager,editor,index \Ci noop
bind generic,pager,editor,index \Cj noop
bind generic,pager,editor,index \Ck noop
bind generic,pager,editor,index \Cl noop
bind generic,pager,editor,index \Cm noop
bind generic,pager,editor,index \Cn noop
bind generic,pager,editor,index \Co noop
bind generic,pager,editor,index \Cp noop
bind generic,pager,editor,index \Cq noop
bind generic,pager,editor,index \Cr noop
bind generic,pager,editor,index \Cs noop
bind generic,pager,editor,index \Ct noop
bind generic,pager,editor,index \Cu noop
bind generic,pager,editor,index \Cv noop
bind generic,pager,editor,index \Cw noop
bind generic,pager,editor,index \Cx noop
bind generic,pager,editor,index \Cy noop
bind generic,pager,editor,index \Cz noop
bind generic,pager,editor,index \CA noop
bind generic,pager,editor,index \CB noop
bind generic,pager,editor,index \CC noop
bind generic,pager,editor,index \CD noop
bind generic,pager,editor,index \CE noop
bind generic,pager,editor,index \CF noop
bind generic,pager,editor,index \CG noop
bind generic,pager,editor,index \CH noop
bind generic,pager,editor,index \CI noop
bind generic,pager,editor,index \CJ noop
bind generic,pager,editor,index \CK noop
bind generic,pager,editor,index \CL noop
bind generic,pager,editor,index \CM noop
bind generic,pager,editor,index \CN noop
bind generic,pager,editor,index \CO noop
bind generic,pager,editor,index \CP noop
bind generic,pager,editor,index \CQ noop
bind generic,pager,editor,index \CR noop
bind generic,pager,editor,index \CS noop
bind generic,pager,editor,index \CT noop
bind generic,pager,editor,index \CU noop
bind generic,pager,editor,index \CV noop
bind generic,pager,editor,index \CW noop
bind generic,pager,editor,index \CX noop
bind generic,pager,editor,index \CY noop
bind generic,pager,editor,index \CZ noop
bind generic,pager,editor,index \C<Tab> noop
bind generic,pager,editor,index \C<Space> noop
bind generic,pager,editor,index \C<PageUp> noop
bind generic,pager,editor,index \C<PageDown> noop
bind generic,pager,editor,index \C<Home> noop
bind generic,pager,editor,index \C<End> noop
bind generic,pager,editor,index \C<Insert> noop
bind generic,pager,editor,index \C<Delete> noop
bind generic,pager,editor,index \C<Up> noop
bind generic,pager,editor,index \C<Down> noop
bind generic,pager,editor,index \C<Left> noop
bind generic,pager,editor,index \C<Right> noop
bind generic,pager,editor,index \C<Enter> noop
bind generic,pager,editor,index \C<Return> noop
bind generic,pager,editor,index \C1 noop
bind generic,pager,editor,index \C2 noop
bind generic,pager,editor,index \C3 noop
bind generic,pager,editor,index \C4 noop
bind generic,pager,editor,index \C5 noop
bind generic,pager,editor,index \C6 noop
bind generic,pager,editor,index \C7 noop
bind generic,pager,editor,index \C8 noop
bind generic,pager,editor,index \C9 noop
bind generic,pager,editor,index \C0 noop
bind generic,pager,editor,index \C! noop
bind generic,pager,editor,index \C$ noop
bind generic,pager,editor,index \C% noop
bind generic,pager,editor,index \C^ noop
bind generic,pager,editor,index \C& noop
bind generic,pager,editor,index \C* noop
bind generic,pager,editor,index \C( noop
bind generic,pager,editor,index \C) noop
bind generic,pager,editor,index <Esc>a noop
bind generic,pager,editor,index <Esc>b noop
bind generic,pager,editor,index <Esc>c noop
bind generic,pager,editor,index <Esc>d noop
bind generic,pager,editor,index <Esc>e noop
bind generic,pager,editor,index <Esc>f noop
bind generic,pager,editor,index <Esc>g noop
bind generic,pager,editor,index <Esc>h noop
bind generic,pager,editor,index <Esc>i noop
bind generic,pager,editor,index <Esc>j noop
bind generic,pager,editor,index <Esc>k noop
bind generic,pager,editor,index <Esc>l noop
bind generic,pager,editor,index <Esc>m noop
bind generic,pager,editor,index <Esc>n noop
bind generic,pager,editor,index <Esc>o noop
bind generic,pager,editor,index <Esc>p noop
bind generic,pager,editor,index <Esc>q noop
bind generic,pager,editor,index <Esc>r noop
bind generic,pager,editor,index <Esc>s noop
bind generic,pager,editor,index <Esc>t noop
bind generic,pager,editor,index <Esc>u noop
bind generic,pager,editor,index <Esc>v noop
bind generic,pager,editor,index <Esc>w noop
bind generic,pager,editor,index <Esc>x noop
bind generic,pager,editor,index <Esc>y noop
bind generic,pager,editor,index <Esc>z noop
bind generic,pager,editor,index <Esc>A noop
bind generic,pager,editor,index <Esc>B noop
bind generic,pager,editor,index <Esc>C noop
bind generic,pager,editor,index <Esc>D noop
bind generic,pager,editor,index <Esc>E noop
bind generic,pager,editor,index <Esc>F noop
bind generic,pager,editor,index <Esc>G noop
bind generic,pager,editor,index <Esc>H noop
bind generic,pager,editor,index <Esc>I noop
bind generic,pager,editor,index <Esc>J noop
bind generic,pager,editor,index <Esc>K noop
bind generic,pager,editor,index <Esc>L noop
bind generic,pager,editor,index <Esc>M noop
bind generic,pager,editor,index <Esc>N noop
bind generic,pager,editor,index <Esc>O noop
bind generic,pager,editor,index <Esc>P noop
bind generic,pager,editor,index <Esc>Q noop
bind generic,pager,editor,index <Esc>R noop
bind generic,pager,editor,index <Esc>S noop
bind generic,pager,editor,index <Esc>T noop
bind generic,pager,editor,index <Esc>U noop
bind generic,pager,editor,index <Esc>V noop
bind generic,pager,editor,index <Esc>W noop
bind generic,pager,editor,index <Esc>X noop
bind generic,pager,editor,index <Esc>Y noop
bind generic,pager,editor,index <Esc>Z noop
bind generic,pager,editor,index <Esc><Tab> noop
bind generic,pager,editor,index <Esc><Space> noop
bind generic,pager,editor,index <Esc><PageUp> noop
bind generic,pager,editor,index <Esc><PageDown> noop
bind generic,pager,editor,index <Esc><Home> noop
bind generic,pager,editor,index <Esc><End> noop
bind generic,pager,editor,index <Esc><Insert> noop
bind generic,pager,editor,index <Esc><Delete> noop
bind generic,pager,editor,index <Esc><Up> noop
bind generic,pager,editor,index <Esc><Down> noop
bind generic,pager,editor,index <Esc><Left> noop
bind generic,pager,editor,index <Esc><Right> noop
bind generic,pager,editor,index <Esc><Enter> noop
bind generic,pager,editor,index <Esc><Return> noop
bind generic,pager,editor,index <Esc>1 noop
bind generic,pager,editor,index <Esc>2 noop
bind generic,pager,editor,index <Esc>3 noop
bind generic,pager,editor,index <Esc>4 noop
bind generic,pager,editor,index <Esc>5 noop
bind generic,pager,editor,index <Esc>6 noop
bind generic,pager,editor,index <Esc>7 noop
bind generic,pager,editor,index <Esc>8 noop
bind generic,pager,editor,index <Esc>9 noop
bind generic,pager,editor,index <Esc>0 noop
bind generic,pager,editor,index <Esc>! noop
bind generic,pager,editor,index <Esc>@ noop
bind generic,pager,editor,index <Esc>$ noop
bind generic,pager,editor,index <Esc>% noop
bind generic,pager,editor,index <Esc>^ noop
bind generic,pager,editor,index <Esc>& noop
bind generic,pager,editor,index <Esc>* noop
bind generic,pager,editor,index <Esc>( noop
bind generic,pager,editor,index <Esc>) noop
bind generic,pager,editor,index ^T noop
# Movement
bind generic,index 0 first-entry
bind generic,index g first-entry
bind generic,index G last-entry
# Right
bind generic <Return> select-entry
bind generic l select-entry
bind generic <Right> select-entry
bind index <Return> display-message
bind index l display-message
bind index <Right> display-message
bind pager l view-attachments
bind pager <Right> view-attachments
bind attach l view-text
bind attach <Right> view-text
# Left
macro index h "c?\t" "Go back to the list of mailboxes"
macro index <Left> "c?\t" "Go back to the list of mailboxes"
bind attach h exit
bind attach <Left> exit
bind pager h exit
bind pager <Left> exit
# Up
bind generic,index,pager <PageUp> previous-page
bind generic,index k previous-entry
bind generic,index <Up> previous-entry
bind pager k previous-line
bind pager <Up> previous-line
# Down
bind generic,index,pager <PageDown> next-page
bind generic,index j next-entry
bind generic,index <Down> next-entry
bind index n search-next
bind pager j next-line
bind pager <Down> next-line
bind pager N search-opposite
bind pager n next-entry
# Exit/Quit (quit will prompt)
bind generic,index,pager,index Q exit
bind generic,index,pager,index q quit
# Reload configuration
macro generic,index,pager,editor ,<Space> ":source ~/.mutt/muttrc\n" "Reload mutt's configuration file"
# Tab complete
bind editor <Tab> complete-query
bind editor ^T complete
# Writing mail
bind index,pager m mail
bind index,pager r reply
bind index,pager b bounce-message
bind index,pager f forward-message
# Archive
macro index,pager d "<save-message>=Archive<enter><enter>" "Archive"
macro index,pager y "<save-message>=Archive<enter><enter>" "Archive"
# Misc
bind generic,index,pager / search
bind generic,index,pager : enter-command
bind index,pager @ display-address
bind index,pager a create-alias
bind index,pager o sort-mailbox
bind index,pager s save-message
bind index,pager | pipe-message
bind index,pager $ sync-mailbox
macro index,pager <f5> "<sync-mailbox><enter><shell-escape>mbsync -a<enter>" "Show Mutt documentation"
bind index ? limit
bind index p print-message
bind index u undelete-message
bind index x toggle-read
bind index c change-folder
bind pager H display-toggle-weed
# Staging
#
# TODO: Might be used to do an mbsync
# bind index,pager R list-reply
#
# bind pager p print-message
#
# Setting/clearing flags
# bind index W clear-flag
# bind index w set-flag
# macro index ! wN "Mark email as unread"
# bind index P previous-new-then-unread
# bind index N next-new-then-unread
# macro index r WN<up>n "Mark as read, then go to next"
# bind index t read-thread
# macro index T tn
#
# bind browser <Space> check-new
# bind browser N select-new
# bind index <Esc>r group-reply # Control-r, \Cr
# vim: set ft=neomuttrc

18
mutt/.mutt/gen_html.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
set -ex
FILE="$1"
if [[ -z "$FILE" ]]; then
printf "No HTML file given" >&2
exit 1
fi
TMP_DIR="$(mktemp -d)"
# Force the name input.html since some attachments may have malformed extensions/no extension
cp "$FILE" "$TMP_DIR/input.html"
# docker container run -it --rm -v "$TMP_DIR:/usr/src/app" zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars "file:///usr/src/app/input.html"
# Works but screenshot is usually too large
# docker container run -it --net none --rm -v "$TMP_DIR:/usr/src/app" zenika/alpine-chrome --no-sandbox --screenshot --window-size=1280,1696 --hide-scrollbars "file:///usr/src/app/input.html"
docker container run -it --rm -v "$TMP_DIR:/usr/src/app" zenika/alpine-chrome --no-sandbox --print-to-pdf --hide-scrollbars "file:///usr/src/app/input.html"
xdg-open "$TMP_DIR/output.pdf"

12
mutt/.mutt/mailcap Normal file
View File

@ -0,0 +1,12 @@
# text/html; w3m -I %{charset} -T text/html; copiousoutput;
# text/html; pandoc -f html -t markdown; copiousoutput; compose=vim %s
# application/pdf; pandoc -f html -t markdown; copiousoutput; compose=vim %s
application/pdf; ~/.mutt/attach_fork.sh okular %s
application/vnd.openxmlformats-officedocument.wordprocessingml.document; libreoffice %s
application/octet-stream; ~/.mutt/attach_fork.sh okular %s
text/html; ~/.mutt/gen_html.sh %s
text/html; w3m -I %{charset} -T text/html; copiousoutput
image/jpeg; feh
image/png; feh

71
mutt/.mutt/muttrc Normal file
View File

@ -0,0 +1,71 @@
# Setup bindings
source ~/.mutt/bindings
set smtp_authenticators = "login"
#set ssl_force_tls = yes
set smtp_authenticators = 'gssapi:login'
# character set on sent messages
set send_charset="utf-8"
# if there is no character set given on incoming messages, it is probably windows
set assumed_charset="iso-8859-1"
set sendmail="/usr/bin/msmtp"
set use_from=yes
set use_envelope_from = yes
# So we can change from
set edit_headers=yes
# make sure Vim knows Mutt is a mail client and that a UTF-8 encoded message will be composed
set editor="vim -c 'set syntax=mail ft=mail enc=utf-8 formatoptions-=t'"
# Treat text as flowed
# End lines with whitespae to chomp them
# Otherwise, newlines will be kept
#set text_flowed
# Apparently this doesn't work well with some clients
# auto_view application/msword
# auto_view application/pdf
# make default search pattern to search in To, Cc and Subject
# set simple_search="~f %s | ~C %s | ~s %s"
# folder-hook 'personal'
# macro index 1 "<change-folder> =../EMAIL_ADDRESS/inbox/<enter>"
# macro index 2
set move = no
# macro index,pager d "<save-message>=Archive<enter><enter><sync-mailbox><enter>" "Archive"
# macro index,pager y "<save-message>=Archive<enter><enter><sync-mailbox><enter>" "Archive"
# Aliases
set alias_file = "~/.mutt/aliases"
set sort_alias = alias
set reverse_alias = yes
source $alias_file
# Sort reverse order
set sort_aux=reverse-date-received
set sort=threads
set sort_re
set date_format = "%m/%d/%t"
# prefer plain text
alternative_order text/plain text/enriched text/html
# auto convert text/html MIME type to text/plain
auto_view text/html
# urls
# macro pager \cb <pipe-entry>'tr -d "\n" | w3m'<enter> 'Follow links in w3m'
macro pager \cb <pipe-entry>'w3m'<enter> 'Follow links in w3m'
# macro pager \cb <pipe-entry>'pandoc -f html -t markdown | vim -'<enter> 'Open as markdown'
set mailcap_path = ~/.mutt/mailcap
# macro index z "!mbsync -a^M" "Update through mbsync"
source ~/.mutt/private
# vim: set ft=muttrc

372
mutt/.mutt/tmp.html Normal file
View File

@ -0,0 +1,372 @@
# Heavily modified from https://github.com/iagox86/mutt/blob/master/keybindings.conf
# generic => *~pager/editor
# browser => Mailbox list
# index => List of emails
# pager => Email read screen
# attach => Attachments list
# editor => Command line; not sure what else
bind generic,pager,editor,index | noop
bind generic,pager,editor,index a noop
bind generic,pager,editor,index b noop
bind generic,pager,editor,index c noop
bind generic,pager,editor,index d noop
bind generic,pager,editor,index e noop
bind generic,pager,editor,index f noop
bind generic,pager,editor,index g noop
bind generic,pager,editor,index h noop
bind generic,pager,editor,index i noop
bind generic,pager,editor,index j noop
bind generic,pager,editor,index k noop
bind generic,pager,editor,index l noop
bind generic,pager,editor,index m noop
bind generic,pager,editor,index n noop
bind generic,pager,editor,index o noop
bind generic,pager,editor,index p noop
bind generic,pager,editor,index q noop
bind generic,pager,editor,index r noop
bind generic,pager,editor,index s noop
bind generic,pager,editor,index t noop
bind generic,pager,editor,index u noop
bind generic,pager,editor,index v noop
bind generic,pager,editor,index w noop
bind generic,pager,editor,index x noop
bind generic,pager,editor,index y noop
bind generic,pager,editor,index z noop
bind generic,pager,editor,index A noop
bind generic,pager,editor,index B noop
bind generic,pager,editor,index C noop
bind generic,pager,editor,index D noop
bind generic,pager,editor,index E noop
bind generic,pager,editor,index F noop
bind generic,pager,editor,index G noop
bind generic,pager,editor,index H noop
bind generic,pager,editor,index I noop
bind generic,pager,editor,index J noop
bind generic,pager,editor,index K noop
bind generic,pager,editor,index L noop
bind generic,pager,editor,index M noop
bind generic,pager,editor,index N noop
bind generic,pager,editor,index O noop
bind generic,pager,editor,index P noop
bind generic,pager,editor,index Q noop
bind generic,pager,editor,index R noop
bind generic,pager,editor,index S noop
bind generic,pager,editor,index T noop
bind generic,pager,editor,index U noop
bind generic,pager,editor,index V noop
bind generic,pager,editor,index W noop
bind generic,pager,editor,index X noop
bind generic,pager,editor,index Y noop
bind generic,pager,editor,index Z noop
bind generic,pager,editor,index <Tab> noop
bind generic,pager,editor,index <Space> noop
bind generic,pager,editor,index <PageUp> noop
bind generic,pager,editor,index <PageDown> noop
bind generic,pager,editor,index <Home> noop
bind generic,pager,editor,index <End> noop
bind generic,pager,editor,index <Insert> noop
bind generic,pager,editor,index <Delete> noop
bind generic,pager,editor,index <Up> noop
bind generic,pager,editor,index <Down> noop
bind generic,pager,editor,index <Left> noop
bind generic,pager,editor,index <Right> noop
bind generic,pager,editor,index <Enter> noop
bind generic,pager,editor,index <Return> noop
bind generic,pager,editor,index 1 noop
bind generic,pager,editor,index 2 noop
bind generic,pager,editor,index 3 noop
bind generic,pager,editor,index 4 noop
bind generic,pager,editor,index 5 noop
bind generic,pager,editor,index 6 noop
bind generic,pager,editor,index 7 noop
bind generic,pager,editor,index 8 noop
bind generic,pager,editor,index 9 noop
bind generic,pager,editor,index 0 noop
bind generic,pager,editor,index ! noop
bind generic,pager,editor,index @ noop
bind generic,pager,editor,index $ noop
bind generic,pager,editor,index % noop
bind generic,pager,editor,index ^ noop
bind generic,pager,editor,index & noop
bind generic,pager,editor,index * noop
bind generic,pager,editor,index ( noop
bind generic,pager,editor,index ) noop
bind generic,pager,editor,index \Ca noop
bind generic,pager,editor,index \Cb noop
bind generic,pager,editor,index \Cc noop
bind generic,pager,editor,index \Cd noop
bind generic,pager,editor,index \Ce noop
bind generic,pager,editor,index \Cf noop
bind generic,pager,editor,index \Cg noop
bind generic,pager,editor,index \Ch noop
bind generic,pager,editor,index \Ci noop
bind generic,pager,editor,index \Cj noop
bind generic,pager,editor,index \Ck noop
bind generic,pager,editor,index \Cl noop
bind generic,pager,editor,index \Cm noop
bind generic,pager,editor,index \Cn noop
bind generic,pager,editor,index \Co noop
bind generic,pager,editor,index \Cp noop
bind generic,pager,editor,index \Cq noop
bind generic,pager,editor,index \Cr noop
bind generic,pager,editor,index \Cs noop
bind generic,pager,editor,index \Ct noop
bind generic,pager,editor,index \Cu noop
bind generic,pager,editor,index \Cv noop
bind generic,pager,editor,index \Cw noop
bind generic,pager,editor,index \Cx noop
bind generic,pager,editor,index \Cy noop
bind generic,pager,editor,index \Cz noop
bind generic,pager,editor,index \CA noop
bind generic,pager,editor,index \CB noop
bind generic,pager,editor,index \CC noop
bind generic,pager,editor,index \CD noop
bind generic,pager,editor,index \CE noop
bind generic,pager,editor,index \CF noop
bind generic,pager,editor,index \CG noop
bind generic,pager,editor,index \CH noop
bind generic,pager,editor,index \CI noop
bind generic,pager,editor,index \CJ noop
bind generic,pager,editor,index \CK noop
bind generic,pager,editor,index \CL noop
bind generic,pager,editor,index \CM noop
bind generic,pager,editor,index \CN noop
bind generic,pager,editor,index \CO noop
bind generic,pager,editor,index \CP noop
bind generic,pager,editor,index \CQ noop
bind generic,pager,editor,index \CR noop
bind generic,pager,editor,index \CS noop
bind generic,pager,editor,index \CT noop
bind generic,pager,editor,index \CU noop
bind generic,pager,editor,index \CV noop
bind generic,pager,editor,index \CW noop
bind generic,pager,editor,index \CX noop
bind generic,pager,editor,index \CY noop
bind generic,pager,editor,index \CZ noop
bind generic,pager,editor,index \C<Tab> noop
bind generic,pager,editor,index \C<Space> noop
bind generic,pager,editor,index \C<PageUp> noop
bind generic,pager,editor,index \C<PageDown> noop
bind generic,pager,editor,index \C<Home> noop
bind generic,pager,editor,index \C<End> noop
bind generic,pager,editor,index \C<Insert> noop
bind generic,pager,editor,index \C<Delete> noop
bind generic,pager,editor,index \C<Up> noop
bind generic,pager,editor,index \C<Down> noop
bind generic,pager,editor,index \C<Left> noop
bind generic,pager,editor,index \C<Right> noop
bind generic,pager,editor,index \C<Enter> noop
bind generic,pager,editor,index \C<Return> noop
bind generic,pager,editor,index \C1 noop
bind generic,pager,editor,index \C2 noop
bind generic,pager,editor,index \C3 noop
bind generic,pager,editor,index \C4 noop
bind generic,pager,editor,index \C5 noop
bind generic,pager,editor,index \C6 noop
bind generic,pager,editor,index \C7 noop
bind generic,pager,editor,index \C8 noop
bind generic,pager,editor,index \C9 noop
bind generic,pager,editor,index \C0 noop
bind generic,pager,editor,index \C! noop
bind generic,pager,editor,index \C$ noop
bind generic,pager,editor,index \C% noop
bind generic,pager,editor,index \C^ noop
bind generic,pager,editor,index \C& noop
bind generic,pager,editor,index \C* noop
bind generic,pager,editor,index \C( noop
bind generic,pager,editor,index \C) noop
bind generic,pager,editor,index <Esc>a noop
bind generic,pager,editor,index <Esc>b noop
bind generic,pager,editor,index <Esc>c noop
bind generic,pager,editor,index <Esc>d noop
bind generic,pager,editor,index <Esc>e noop
bind generic,pager,editor,index <Esc>f noop
bind generic,pager,editor,index <Esc>g noop
bind generic,pager,editor,index <Esc>h noop
bind generic,pager,editor,index <Esc>i noop
bind generic,pager,editor,index <Esc>j noop
bind generic,pager,editor,index <Esc>k noop
bind generic,pager,editor,index <Esc>l noop
bind generic,pager,editor,index <Esc>m noop
bind generic,pager,editor,index <Esc>n noop
bind generic,pager,editor,index <Esc>o noop
bind generic,pager,editor,index <Esc>p noop
bind generic,pager,editor,index <Esc>q noop
bind generic,pager,editor,index <Esc>r noop
bind generic,pager,editor,index <Esc>s noop
bind generic,pager,editor,index <Esc>t noop
bind generic,pager,editor,index <Esc>u noop
bind generic,pager,editor,index <Esc>v noop
bind generic,pager,editor,index <Esc>w noop
bind generic,pager,editor,index <Esc>x noop
bind generic,pager,editor,index <Esc>y noop
bind generic,pager,editor,index <Esc>z noop
bind generic,pager,editor,index <Esc>A noop
bind generic,pager,editor,index <Esc>B noop
bind generic,pager,editor,index <Esc>C noop
bind generic,pager,editor,index <Esc>D noop
bind generic,pager,editor,index <Esc>E noop
bind generic,pager,editor,index <Esc>F noop
bind generic,pager,editor,index <Esc>G noop
bind generic,pager,editor,index <Esc>H noop
bind generic,pager,editor,index <Esc>I noop
bind generic,pager,editor,index <Esc>J noop
bind generic,pager,editor,index <Esc>K noop
bind generic,pager,editor,index <Esc>L noop
bind generic,pager,editor,index <Esc>M noop
bind generic,pager,editor,index <Esc>N noop
bind generic,pager,editor,index <Esc>O noop
bind generic,pager,editor,index <Esc>P noop
bind generic,pager,editor,index <Esc>Q noop
bind generic,pager,editor,index <Esc>R noop
bind generic,pager,editor,index <Esc>S noop
bind generic,pager,editor,index <Esc>T noop
bind generic,pager,editor,index <Esc>U noop
bind generic,pager,editor,index <Esc>V noop
bind generic,pager,editor,index <Esc>W noop
bind generic,pager,editor,index <Esc>X noop
bind generic,pager,editor,index <Esc>Y noop
bind generic,pager,editor,index <Esc>Z noop
bind generic,pager,editor,index <Esc><Tab> noop
bind generic,pager,editor,index <Esc><Space> noop
bind generic,pager,editor,index <Esc><PageUp> noop
bind generic,pager,editor,index <Esc><PageDown> noop
bind generic,pager,editor,index <Esc><Home> noop
bind generic,pager,editor,index <Esc><End> noop
bind generic,pager,editor,index <Esc><Insert> noop
bind generic,pager,editor,index <Esc><Delete> noop
bind generic,pager,editor,index <Esc><Up> noop
bind generic,pager,editor,index <Esc><Down> noop
bind generic,pager,editor,index <Esc><Left> noop
bind generic,pager,editor,index <Esc><Right> noop
bind generic,pager,editor,index <Esc><Enter> noop
bind generic,pager,editor,index <Esc><Return> noop
bind generic,pager,editor,index <Esc>1 noop
bind generic,pager,editor,index <Esc>2 noop
bind generic,pager,editor,index <Esc>3 noop
bind generic,pager,editor,index <Esc>4 noop
bind generic,pager,editor,index <Esc>5 noop
bind generic,pager,editor,index <Esc>6 noop
bind generic,pager,editor,index <Esc>7 noop
bind generic,pager,editor,index <Esc>8 noop
bind generic,pager,editor,index <Esc>9 noop
bind generic,pager,editor,index <Esc>0 noop
bind generic,pager,editor,index <Esc>! noop
bind generic,pager,editor,index <Esc>@ noop
bind generic,pager,editor,index <Esc>$ noop
bind generic,pager,editor,index <Esc>% noop
bind generic,pager,editor,index <Esc>^ noop
bind generic,pager,editor,index <Esc>& noop
bind generic,pager,editor,index <Esc>* noop
bind generic,pager,editor,index <Esc>( noop
bind generic,pager,editor,index <Esc>) noop
bind generic,pager,editor,index ^T noop
# Movement
bind generic,index 0 first-entry
bind generic,index g first-entry
bind generic,index G last-entry
# Right
bind generic <Return> select-entry
bind generic l select-entry
bind generic <Right> select-entry
bind index <Return> display-message
bind index l display-message
bind index <Right> display-message
bind pager l view-attachments
bind pager <Right> view-attachments
bind attach l view-text
bind attach <Right> view-text
# Left
macro index h "c?\t" "Go back to the list of mailboxes"
macro index <Left> "c?\t" "Go back to the list of mailboxes"
bind attach h exit
bind attach <Left> exit
bind pager h exit
bind pager <Left> exit
# Up
bind generic,index,pager <PageUp> previous-page
bind generic,index k previous-entry
bind generic,index <Up> previous-entry
bind pager k previous-line
bind pager <Up> previous-line
# Down
bind generic,index,pager <PageDown> next-page
bind generic,index j next-entry
bind generic,index <Down> next-entry
bind index n search-next
bind pager j next-line
bind pager <Down> next-line
bind pager N search-opposite
bind pager n next-entry
# Exit/Quit (quit will prompt)
bind generic,index,pager,index Q exit
bind generic,index,pager,index q quit
# Reload configuration
macro generic,index,pager,editor ,<Space> ":source ~/.mutt/muttrc\n" "Reload mutt's configuration file"
# Tab complete
bind editor <Tab> complete-query
bind editor ^T complete
# Writing mail
bind index,pager m mail
bind index,pager r reply
bind index,pager b bounce-message
bind index,pager f forward-message
# Archive
macro index,pager d "<save-message>=Archive<enter><enter>" "Archive"
macro index,pager y "<save-message>=Archive<enter><enter>" "Archive"
# Misc
bind generic,index,pager / search
bind generic,index,pager : enter-command
bind index,pager @ display-address
bind index,pager a create-alias
bind index,pager o sort-mailbox
bind index,pager s save-message
bind index,pager | pipe-message
bind index,pager $ sync-mailbox
macro index,pager <f5> "<sync-mailbox><enter><shell-escape>mbsync -a<enter>" "Show Mutt documentation"
bind index ? limit
bind index p print-message
bind index u undelete-message
bind index x toggle-read
bind index c change-folder
bind pager H display-toggle-weed
# Staging
#
# TODO: Might be used to do an mbsync
# bind index,pager R list-reply
#
# bind pager p print-message
#
# Setting/clearing flags
# bind index W clear-flag
# bind index w set-flag
# macro index ! wN "Mark email as unread"
# bind index P previous-new-then-unread
# bind index N next-new-then-unread
# macro index r WN<up>n "Mark as read, then go to next"
# bind index t read-thread
# macro index T tn
#
# bind browser <Space> check-new
# bind browser N select-new
# bind index <Esc>r group-reply # Control-r, \Cr
# vim: set ft=neomuttrc