aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2020-05-17 21:07:42 +1200
committerTom Ryder <tom@sanctum.geek.nz>2020-05-17 21:07:42 +1200
commitf1d624683a0bce72ec341ff16e702c7fca7476a0 (patch)
tree00a36ccd0cee2305b01edea6e3a415937b2743c0
parentMerge branch 'release/v8.40.0' into develop (diff)
downloaddotfiles-f1d624683a0bce72ec341ff16e702c7fca7476a0.tar.gz
dotfiles-f1d624683a0bce72ec341ff16e702c7fca7476a0.zip
Overhaul Mutt macros
-rw-r--r--mutt/muttrc71
1 files changed, 26 insertions, 45 deletions
diff --git a/mutt/muttrc b/mutt/muttrc
index b91c66cd..a16a0088 100644
--- a/mutt/muttrc
+++ b/mutt/muttrc
@@ -125,8 +125,28 @@ bind generic,index,browser,pager \Cb previous-page
# Turn off annoying mailbox lock feature
bind index '%' noop
+# Shortcuts to jump to mailboxes; the format here is byzantine, but it copes correctly with changes to the variables
+macro generic,index,browser,pager gi \
+ '<change-folder>!<enter>' \
+ 'Change to inbox'
+macro generic,index,browser,pager gs \
+ '<change-folder><<enter>' \
+ 'Change to sent'
+macro generic,index,browser,pager gb \
+ '<change-folder>-<enter>' \
+ 'Change to previous'
+# The format here is pretty weird, but it copes correctly with changes to the
+# variable that occur *after* the macro is defined, and there isn't
+# a punctuation shortcut for it like there is for the previous three. I'd love
+# to know if there's a better way to do this that I've missed in the manual.
+macro generic,index,browser,pager gd '\
+<enter-command>push "<change-folder>$postponed"<enter><enter>' \
+ 'Change to drafts'
+
# Blindly save message to whatever box is suggested
-macro index,pager S 's<enter>' 'Save message blindly'
+macro index,pager S \
+ '<save-message><enter>' \
+ 'Save message blindly'
# Shortcut to add addresses to abook
macro index,pager A \
@@ -134,50 +154,11 @@ macro index,pager A \
'Add sender address to abook'
# Shortcut to reload configuration
-macro generic,index,browser,pager \\R \
- ':source ~/.config/mutt/muttrc<enter>:echo "Config reloaded!"<enter>' \
- 'Reload muttrc'
-
-# SpamAssassin spam tagging; Vim's muttrc syntax highlighting hates this, but
-# it *is* valid
-spam 'X-Spam-Flag: YES' 'SPAM'
-
-# Defaults for SpamAssassin training
-set my_salearn = 'sa-learn'
-set my_spam_folder = "$folder/spam"
+macro generic,index,browser,pager \\R '\
+<enter-command>unhook *<enter>\
+<enter-command>source $alias_file<enter>\
+<enter-command>echo "Reloaded with $alias_file"<enter>' \
+ "Clear hooks and reload"
# Machine or account specific settings
source ~/.config/mutt/muttrc.d/src|
-
-# These hooks and macros go *after* we're done loading user options, as they
-# bake in variables like $folder. Only hooks and macros dependent on these
-# paths should be set after this point.
-
-# Shortcuts to jump to mailboxes
-macro generic,index,browser,pager gi \
- "<change-folder>$spoolfile<enter>" \
- "Change to inbox"
-macro generic,index,browser,pager gs \
- "<change-folder>$record<enter>" \
- "Change to sent"
-macro generic,index,browser,pager gd \
- "<change-folder>$postponed<enter>" \
- "Change to drafts"
-
-# SpamAssassin spam tagging
-folder-hook . \
- 'macro index,pager \Cs \
- "<pipe-message>$my_salearn --spam<enter><save-message>$my_spam_folder<enter>" \
- "Train as spam, move to spam"'
-folder-hook . \
- 'macro index,pager \Ch \
- "<pipe-message>$my_salearn --ham<enter>" \
- "Retrain as ham"'
-folder-hook $my_spam_folder \
- 'macro index,pager \Ch \
- "<pipe-message>$my_salearn --ham<enter><save-message>!<enter>" \
- "Train as ham, move to inbox"'
-folder-hook $my_spam_folder \
- 'macro index,pager \Cs \
- "<pipe-message>$my_salearn --spam<enter>" \
- "Retrain as spam"'