diff --git a/mu4e/mu4e-contrib.el b/mu4e/mu4e-contrib.el index d70902a4..89524014 100644 --- a/mu4e/mu4e-contrib.el +++ b/mu4e/mu4e-contrib.el @@ -113,10 +113,6 @@ BOOKMARK is a bookmark name or a bookmark record." ;; '("sMark as spam" . mu4e-register-msg-as-spam) t) ;; (add-to-list 'mu4e-headers-actions ;; '("hMark as ham" . mu4e-register-msg-as-ham) t) -;; (add-to-list 'mu4e-headers-actions -;; '("aMark unsure as spam" . mu4e-mark-unsure-as-spam) t) -;; (add-to-list 'mu4e-headers-actions -;; '("bMark unsure as ham" . mu4e-mark-unsure-as-ham) t) (defvar mu4e-register-as-spam-cmd nil "Command for invoking spam processor to register message as spam, @@ -142,6 +138,27 @@ For example for bogofile, use \"/usr/bin/bogofilter -Sn < %s\"") (shell-command command)) (mu4e-mark-at-point 'something nil)) +;; (add-to-list 'mu4e-view-actions +;; '("sMark as spam" . mu4e-view-register-msg-as-spam) t) +;; (add-to-list 'mu4e-view-actions +;; '("hMark as ham" . mu4e-view-register-msg-as-ham) t) + +(defun mu4e-view-register-msg-as-spam (msg) + "Mark message as spam (view mode)." + (interactive) + (let* ((path (shell-quote-argument (mu4e-message-field msg :path))) + (command (format mu4e-register-as-spam-cmd path))) + (shell-command command)) + (mu4e-view-mark-for-delete)) + +(defun mu4e-view-register-msg-as-ham (msg) + "Mark message as ham (view mode)." + (interactive) + (let* ((path (shell-quote-argument(mu4e-message-field msg :path))) + (command (format mu4e-register-as-ham-cmd path))) + (shell-command command)) + (mu4e-view-mark-for-something)) + ;;; end of spam-filtering functions (provide 'mu4e-contrib) diff --git a/mu4e/mu4e-headers.el b/mu4e/mu4e-headers.el index 2c214d23..65265e77 100644 --- a/mu4e/mu4e-headers.el +++ b/mu4e/mu4e-headers.el @@ -747,6 +747,17 @@ after the end of the search results." (define-key menumap [sepa0] '("--")) + (define-key menumap [toggle-include-related] + '(menu-item "Toggle related messages" mu4e-headers-toggle-include-related + :button (:toggle . (and (boundp 'mu4e-headers-include-related) + mu4e-headers-include-related)))) + (define-key menumap [toggle-threading] + '(menu-item "Toggle threading" mu4e-headers-toggle-threading + :button (:toggle . (and (boundp 'mu4e-headers-show-threads) + mu4e-headers-show-threads)))) + + (define-key menumap [sepa1] '("--")) + (define-key menumap [execute-marks] '("Execute marks" . mu4e-mark-execute-all)) (define-key menumap [unmark-all] '("Unmark all" . mu4e-mark-unmark-all)) @@ -765,7 +776,7 @@ after the end of the search results." '("Mark for trash" . mu4e-headers-mark-for-trash)) (define-key menumap [mark-move] '("Mark for move" . mu4e-headers-mark-for-move)) - (define-key menumap [sepa1] '("--")) + (define-key menumap [sepa2] '("--")) (define-key menumap [resend] '("Resend" . mu4e-compose-resend)) @@ -774,7 +785,7 @@ after the end of the search results." (define-key menumap [compose-new] '("Compose new" . mu4e-compose-new)) - (define-key menumap [sepa2] '("--")) + (define-key menumap [sepa3] '("--")) (define-key menumap [query-next] '("Next query" . mu4e-headers-query-next)) (define-key menumap [query-prev] '("Previous query" . @@ -789,12 +800,12 @@ after the end of the search results." (define-key menumap [search] '("Search" . mu4e-headers-search)) - (define-key menumap [sepa3] '("--")) + (define-key menumap [sepa4] '("--")) (define-key menumap [view] '("View" . mu4e-headers-view-message)) (define-key menumap [next] '("Next" . mu4e-headers-next)) (define-key menumap [previous] '("Previous" . mu4e-headers-prev)) - (define-key menumap [sepa4] '("--"))) + (define-key menumap [sepa5] '("--"))) map))) (fset 'mu4e-headers-mode-map mu4e-headers-mode-map) diff --git a/mu4e/mu4e.texi b/mu4e/mu4e.texi index 936c3a63..e5727d52 100644 --- a/mu4e/mu4e.texi +++ b/mu4e/mu4e.texi @@ -1483,7 +1483,7 @@ functionality is available, as well some @t{mu4e}-specifics. Its major mode is @code{mu4e-compose-mode}. @menu -* Overview:EV Overview. What is the Editor view +* Overview: EV Overview. What is the Editor view * Keybindings: EV Keybindings. Doing things with your keyboard * Address autocompletion:: Quickly entering known addresses * Compose hooks::Calling functions when composing