mu4e: Fix Gmail trash management
parent
5748a8b7ca
commit
4509d86d79
|
@ -152,11 +152,15 @@
|
|||
"[" 'mu4e-headers-prev-unread
|
||||
;; "R" 'mu4e-headers-mark-for-refile
|
||||
"p" 'mu4e-headers-toggle-include-related
|
||||
"r" 'mu4e-compose-reply)
|
||||
"r" 'mu4e-compose-reply
|
||||
;; Custom
|
||||
"d" 'ambrevar/mu4e-headers-move-to-trash)
|
||||
(evil-define-key 'visual mu4e-headers-mode-map
|
||||
"d" 'mu4e-headers-mark-for-trash
|
||||
"m" 'mu4e-headers-mark-for-move
|
||||
"D" 'mu4e-headers-mark-for-delete
|
||||
"u" 'mu4e-headers-mark-for-unmark)
|
||||
"u" 'mu4e-headers-mark-for-unmark
|
||||
;; Custom
|
||||
"d" 'ambrevar/mu4e-headers-move-to-trash)
|
||||
(evil-define-key 'motion mu4e-view-mode-map
|
||||
(kbd "SPC") 'mu4e-view-scroll-up-or-next
|
||||
(kbd "<tab>") 'shr-next-link
|
||||
|
@ -172,7 +176,9 @@
|
|||
(kbd "M-k") 'mu4e-view-headers-prev ; Custom
|
||||
"h" 'evil-backward-char
|
||||
"zh" 'mu4e-view-toggle-html
|
||||
"gx" 'mu4e-view-go-to-url)
|
||||
"gx" 'mu4e-view-go-to-url
|
||||
;; Custom
|
||||
"d" 'ambrevar/mu4e-view-move-to-trash)
|
||||
(evil-set-initial-state 'mu4e-compose-mode 'insert)
|
||||
(evil-define-key 'normal mu4e-compose-mode-map
|
||||
"gg" 'mu4e-compose-goto-top)))
|
||||
|
|
|
@ -147,6 +147,41 @@ This function is suitable for `mu4e-compose-mode-hook'."
|
|||
(define-key map (kbd "C-c C-t") 'org-mu4e-store-and-capture))
|
||||
(setq org-mu4e-link-query-in-headers-mode nil))
|
||||
|
||||
;;; Gmail trash fix.
|
||||
(defvar ambrevar/mu4e-move-to-trash-patterns nil
|
||||
"List of regexps to match for moving to trash instead of deleting them.
|
||||
Matches are done against the :maildir field of the e-mail at
|
||||
point. See `ambrevar/mu4e-headers-move-to-trash' and
|
||||
`ambrevar/mu4e-view-move-to-trash'.")
|
||||
|
||||
(defun ambrevar/mu4e-headers-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))
|
||||
ambrevar/mu4e-move-to-trash-patterns))
|
||||
(mu4e-headers-mark-for-delete)
|
||||
(mu4e-mark-set 'move (funcall mu4e-trash-folder (mu4e-message-at-point)))
|
||||
(mu4e-headers-next))))
|
||||
|
||||
(defun ambrevar/mu4e-view-move-to-trash ()
|
||||
(interactive)
|
||||
(mu4e~view-in-headers-context
|
||||
(ambrevar/mu4e-headers-move-to-trash)
|
||||
(mu4e~headers-move (or n 1))))
|
||||
|
||||
;;; Don't display trashed messages in bookmarks. This is useful for Gmail where
|
||||
;;; the "delete" flag is not used.
|
||||
(defvar ambrevar/mu4e-trash-folders nil
|
||||
"List of trash folders to filter out from bookmarks.")
|
||||
|
||||
(load "~/personal/mail/mu4e.el" t)
|
||||
|
||||
;; Do this after setting `ambrevar/mu4e-trash-folders'.
|
||||
(dolist (bookmark mu4e-bookmarks)
|
||||
;; TODO: Why mu4e-bookmark-query does not work here?
|
||||
(setf (car bookmark) (concat (mapconcat (lambda (s) (format "NOT maildir:\"%s\" and " s))
|
||||
ambrevar/mu4e-trash-folders "")
|
||||
(car bookmark))))
|
||||
|
||||
(provide 'init-mu4e)
|
||||
|
|
Loading…
Reference in New Issue