mirror of https://github.com/djcb/mu.git
mu4e: Implement mu4e-*-mark-or-move-to-trash (e.g. for Gmail)
This commit is contained in:
parent
f9b615c3bb
commit
bbc055d75a
|
@ -742,6 +742,29 @@ after the end of the search results."
|
||||||
(mu4e~headers-defun-mark-for unread)
|
(mu4e~headers-defun-mark-for unread)
|
||||||
(mu4e~headers-defun-mark-for action)
|
(mu4e~headers-defun-mark-for action)
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
(defvar mu4e-move-to-trash-patterns '()
|
||||||
|
"List of regexps to match for moving to trash instead of flagging them.
|
||||||
|
This is particularly useful for mailboxes that don't use the
|
||||||
|
trash flag like Gmail. See `mu4e-headers-mark-or-move-to-trash'
|
||||||
|
and `mu4e-view-mark-or-move-to-trash'.")
|
||||||
|
|
||||||
|
(defun mu4e-headers-mark-or-move-to-trash ()
|
||||||
|
"Mark message for \"move\" to the trash folder if the message
|
||||||
|
maildir matches any regexp in `mu4e-move-to-trash-patterns'.
|
||||||
|
Otherwise mark with the \"trash\" flag.
|
||||||
|
Also see `mu4e-view-mark-or-move-to-trash'."
|
||||||
|
(interactive)
|
||||||
|
(let ((msg-dir (mu4e-message-field (mu4e-message-at-point) :maildir)))
|
||||||
|
(if (not (seq-filter (lambda (re)
|
||||||
|
(string-match re msg-dir))
|
||||||
|
mu4e-move-to-trash-patterns))
|
||||||
|
(mu4e-headers-mark-for-trash)
|
||||||
|
(mu4e-mark-set 'move (if (functionp mu4e-trash-folder)
|
||||||
|
(funcall mu4e-trash-folder (mu4e-message-at-point))
|
||||||
|
mu4e-trash-folder))
|
||||||
|
(mu4e-headers-next))))
|
||||||
|
|
||||||
;;; headers-mode and mode-map ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;; headers-mode and mode-map ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
(defvar mu4e-headers-mode-map nil
|
(defvar mu4e-headers-mode-map nil
|
||||||
"Keymap for *mu4e-headers* buffers.")
|
"Keymap for *mu4e-headers* buffers.")
|
||||||
|
@ -801,8 +824,8 @@ after the end of the search results."
|
||||||
(define-key map "y" 'mu4e-select-other-view)
|
(define-key map "y" 'mu4e-select-other-view)
|
||||||
|
|
||||||
;; marking/unmarking ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; marking/unmarking ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
(define-key map (kbd "<backspace>") 'mu4e-headers-mark-for-trash)
|
(define-key map (kbd "<backspace>") 'mu4e-headers-mark-or-move-to-trash)
|
||||||
(define-key map (kbd "d") 'mu4e-headers-mark-for-trash)
|
(define-key map (kbd "d") 'mu4e-headers-mark-or-move-to-trash)
|
||||||
(define-key map (kbd "<delete>") 'mu4e-headers-mark-for-delete)
|
(define-key map (kbd "<delete>") 'mu4e-headers-mark-for-delete)
|
||||||
(define-key map (kbd "<deletechar>") 'mu4e-headers-mark-for-delete)
|
(define-key map (kbd "<deletechar>") 'mu4e-headers-mark-for-delete)
|
||||||
(define-key map (kbd "D") 'mu4e-headers-mark-for-delete)
|
(define-key map (kbd "D") 'mu4e-headers-mark-for-delete)
|
||||||
|
|
|
@ -743,7 +743,7 @@ FUNC should be a function taking two arguments:
|
||||||
(define-key map "A" (if mu4e-view-use-gnus 'ignore 'mu4e-view-attachment-action))
|
(define-key map "A" (if mu4e-view-use-gnus 'ignore 'mu4e-view-attachment-action))
|
||||||
|
|
||||||
;; marking/unmarking
|
;; marking/unmarking
|
||||||
(define-key map "d" 'mu4e-view-mark-for-trash)
|
(define-key map "d" 'mu4e-view-mark-or-move-to-trash)
|
||||||
(define-key map (kbd "<delete>") 'mu4e-view-mark-for-delete)
|
(define-key map (kbd "<delete>") 'mu4e-view-mark-for-delete)
|
||||||
(define-key map (kbd "<deletechar>") 'mu4e-view-mark-for-delete)
|
(define-key map (kbd "<deletechar>") 'mu4e-view-mark-for-delete)
|
||||||
(define-key map (kbd "D") 'mu4e-view-mark-for-delete)
|
(define-key map (kbd "D") 'mu4e-view-mark-for-delete)
|
||||||
|
@ -1487,6 +1487,13 @@ list."
|
||||||
(mu4e~view-in-headers-context
|
(mu4e~view-in-headers-context
|
||||||
(mu4e-mark-execute-all)))
|
(mu4e-mark-execute-all)))
|
||||||
|
|
||||||
|
(defun mu4e-view-mark-or-move-to-trash (&optional n)
|
||||||
|
"See `mu4e-headers-mark-or-move-to-trash'."
|
||||||
|
(interactive "P")
|
||||||
|
(mu4e~view-in-headers-context
|
||||||
|
(mu4e-headers-mark-or-move-to-trash)
|
||||||
|
(mu4e~headers-move (or n 1))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; URL handling
|
;; URL handling
|
||||||
(defun mu4e~view-get-urls-num (prompt &optional multi)
|
(defun mu4e~view-get-urls-num (prompt &optional multi)
|
||||||
|
|
Loading…
Reference in New Issue