+macro generic,pager <F1> "<shell-escape> zcat /usr/share/doc/mutt/manual.txt.gz | sensible-pager<enter>" "show Mutt documentation"
+
bind index,pager | pipe-message
bind index,pager ! flag-message
bind index,pager \eP print-message
bind index,pager \eU undelete-subthread
bind index,pager \eD delete-subthread
+bind index 0 first-entry
+bind index G last-entry
+bind pager 0 top
+bind pager G bottom
+
bind pager,index <backtab> previous-unread
-macro pager,index p "<enter-command><enter>" "do nothing"
+macro index p "<enter-command><enter>" "do nothing"
+
+bind index h noop
-##macro index L "<list-reply><save-message>=store<enter>"
-macro index S "<tag-prefix><save-message>=store<enter><sync-mailbox>" "save messages to store"
-macro pager S "<save-message>=store<enter><sync-mailbox>" "save message to store"
+macro index \es "<tag-prefix><enter-command> set my_weed=\$weed<enter><enter-command> set my_resolve=\$resolve<enter><enter-command> set noweed noresolve<enter><decode-save>^<enter><next-entry><clear-flag>n<enter-command> set weed=\$my_weed<enter><enter-command> set resolve=\$my_resolve<enter>" "decode message to current folder"
+macro pager \es "<enter-command> set my_weed=\$weed<enter><enter-command> set my_resolve=\$resolve<enter><enter-command> set noweed noresolve<enter><decode-save>^<enter><next-entry><clear-flag>n<enter-command> set weed=\$my_weed<enter><enter-command> set resolve=\$my_resolve<enter>" "decode message to current folder"
+macro index \eS "<tag-prefix><save-message><<enter>" "save messages to store"
+macro pager \eS "<save-message><<enter>" "save message to store"
+macro index S "<tag-prefix><enter-command> set my_weed=\$weed<enter><enter-command> set my_resolve=\$resolve<enter><enter-command> set noweed noresolve<enter><decode-save><<enter><next-entry><enter-command> set weed=\$my_weed<enter><enter-command> set resolve=\$my_resolve<enter>" "decode message to $record folder"
+macro pager S "<enter-command> set my_weed=\$weed<enter><enter-command> set my_resolve=\$resolve<enter><enter-command> set noweed noresolve<enter><decode-save><<enter><next-entry><enter-command> set weed=\$my_weed<enter><enter-command> set resolve=\$my_resolve<enter><display-toggle-weed><display-toggle-weed>" "decode message to $record folder"
-macro index \er '<tag-prefix><save-message>=resubmit<enter><sync-mailbox>' "resubmit messages"
-macro pager \er '<save-message>=resubmit<enter><sync-mailbox>' "resubmit message"
+macro index,pager E '<enter-command> source "$my_confdir/supersede-header X-Tickle get-timestamp|"<enter><next-undeleted><enter-command> push S<enter>' "schedule messages with tickler"
+macro index,pager \ex '<enter-command> source "$my_confdir/remove-header X-Postponed|"<enter>' "release postponed messages"
-macro index,pager E '<enter-command>source "$my_confdir/supersede-header X-Tickle get-timestamp|"<enter><next-undeleted><enter-command>push \er<enter>' "schedule messages with tickler"
-macro index,pager \ex '<enter-command>source "$my_confdir/remove-header X-Postponed|"<enter>' "release postponed messages"
+macro index,pager \e, "<change-folder><<enter>" "go to $record folder"
+macro index,pager \e. "<change-folder>><enter>" "go to $spool folder"
+macro index,pager \e1 "<change-folder>!<enter>" "go to inbox folder"
-macro index,pager \es "<change-folder>=store<enter>" "go to store folder"
-macro index,pager \ed "<change-folder>=debian<enter>" "go to debian folder"
-macro index,pager \ei "<change-folder>=inbox<enter>" "go to inbox folder"
-macro index,pager \ea "<change-folder>=ardex<enter>" "go to ardex folder"
+bind index \eT tag-thread
+bind index,pager \eK mail-key
-macro index,pager \eR "<enter-command>source $my_confdir/muttrc<enter>" "reload muttrc"
-macro compose \eR "<enter-command>source $my_confdir/muttrc<enter>" "reload muttrc"
+macro index,pager \eR "<enter-command> source $my_confdir/muttrc<enter>" "reload muttrc"
+macro compose \eR "<enter-command> source $my_confdir/muttrc<enter>" "reload muttrc"
macro index X "<tag-prefix><save-message>=retrain/spam<enter>" "retrain message as spam"
macro pager X "<save-message>=retrain/spam<enter>" "retrain message as spam"
macro index Z "<tag-prefix><save-message>=retrain/ham<enter>" "retrain message as ham"
macro pager Z "<save-message>=retrain/ham<enter>" "retrain message as ham"
-macro index,pager \Cb '<enter-command>set my_pipe_decode="$pipe_decode"<enter><enter-command>set pipe_decode<enter><pipe-message>/usr/bin/urlview<enter><enter-command>set pipe_decode="$my_pipe_decode"<enter>' "invoke urlview"
+macro index,pager \Cb "<enter-command> set my_pipe_decode=\$pipe_decode<enter><enter-command> set pipe_decode<enter><pipe-message>/usr/bin/urlscan<enter><enter-command> set pipe_decode=\$my_pipe_decode<enter>" "invoke urlscan"
macro compose Y '<edit-fcc><kill-line><enter><send-message>' "send message without storing"
macro compose \Cy '<pgp-menu>c<send-message>' "send message without signing"
macro compose \CY '<pgp-menu>cY' "send message without storing signing"
-macro compose N '<enter-command>unset fcc_attach<enter>'
+macro compose N '<enter-command> unset fcc_attach<enter>' "do not fcc-store attachment"
macro index,pager F '<limit>~L ' "search for correspondents"
macro index,pager \ef '<limit>~(~L )<left>' "search for correspondents (show complete threads)"
-macro index ~ '<search>~' "shortcut to pattern search"
-macro pager ~ '<exit><search>~' "shortcut to pattern search"
-
bind index,pager \en search-opposite
+macro pager p '<pipe-message>less -c<enter>' "pipe message into pager"
+
bind pager [ half-up
bind pager ] half-down
-macro index,pager \eS '<enter-command>set noweed<enter><decode-save>'
-macro index,pager \eC '<enter-command>set noweed<enter><decode-copy>'
+#TODO this is a hack until switch-profile does not readd headers.
+macro compose e "<enter-command> set my_editor=\$editor<enter><enter-command> set editor=sensible-editor<enter><edit-headers><enter-command> set editor=\$my_editor<enter>" "invoke normal editor to edit message"
+macro index,pager e "<enter-command> set my_editor=\$editor<enter><enter-command> set editor=sensible-editor<enter><edit><enter-command> set editor=\$my_editor<enter>" "invoke normal editor to edit message"
-#macro index \Co '<tag-prefix><save-message>imaps://logcheck-todo%40madduck.net:logcheck@imap.madduck.net<enter>' 'save message to logcheck-todo'
-#macro pager \Co '<save-message>imaps://logcheck-todo%40madduck.net:logcheck@imap.madduck.net<enter>' 'save message to logcheck-todo'
-macro index,pager \eo '<change-folder>imaps://logcheck-todo%40madduck.net:logcheck@imap.madduck.net<enter>' 'go to logcheck todo folder'
+macro index \ej "<enter-command> set my_editor=\$editor<enter><enter-command> source $my_confdir/batch-subject-editor|<enter><tag-prefix><edit><enter-command> set editor=\$my_editor<enter>" "change message subject"
-#TODO this is a hack until switch-profile does not readd headers.
-macro compose e '<enter-command>set my_editor="$editor"<enter><enter-command>set editor=sensible-editor<enter><edit-headers><enter-command>set editor="$my_editor"<enter>' "invoke normal editor to edit message"
-macro index,pager e '<enter-command>set my_editor="$editor"<enter><enter-command>set editor=sensible-editor<enter><edit><enter-command>set editor="$my_editor"<enter>' "invoke normal editor to edit message"
+macro index,pager \er "<enter-command> set my_editor=\$editor<enter><enter-command> set editor=\"~/.mutt/reuse-message \$my_editor\"<enter><reply><enter-command> set editor=\$my_editor<enter>" "invoke normal editor to edit message"
+macro index,pager \eg "<enter-command> set my_editor=\$editor<enter><enter-command> set editor=\"~/.mutt/reuse-message \$my_editor\"<enter><group-reply><enter-command> set editor=\$my_editor<enter>" "invoke normal editor to edit message"
+macro index,pager \el "<enter-command> set my_editor=\$editor<enter><enter-command> set editor=\"~/.mutt/reuse-message \$my_editor\"<enter><list-reply><enter-command> set editor=\$my_editor<enter>" "invoke normal editor to edit message"
+
+# override F6 from notmuch-mutt
+macro index <F6> "<enter-command><enter>" "do nothing"
+
+macro attach e "<enter-command> set my_mailcap_path=\$mailcap_path<enter><enter-command> set mailcap_path=~/.mutt/mailcap.editing<enter><view-mailcap><enter-command> set mailcap_path=\$my_mailcap_path<enter>" "edit temporary file of attachment"
+
+macro index,pager M "<enter-command> set my_weed=\$weed<enter><enter-command> set noweed<enter><pipe-message>formail -czx X-RSS-URL: | xargs sensible-browser<enter><enter-command> set weed=\$my_weed<enter>"
-macro index \ej '<enter-command>set my_editor="$editor"<enter><enter-command>source "$my_confdir/batch-subject-editor|"<enter><tag-prefix><edit><enter-command>set editor="$my_editor"<enter>' "change message subject"
+macro index,pager <F10> "<enter-command> set my_pipe_decode=\$pipe_decode<enter><enter-command> unset pipe_decode<enter><pipe-message>~/.mutt/viewmailattachments<enter><enter-command> set pipe_decode=\$my_pipe_decode<enter>" "view attachments in browser"
# vim:sw=12:noet:sts=12:ts=12:ft=muttrc