;; Notmuch (require 'init-message) (require 'patch-notmuch) (require 'init-notmuch-sync) ;; To find files matching email: ;; notmuch search --output=files FOO ;; The following is good enough for multiple-account support if they use the ;; same SMTP server. (setq notmuch-fcc-dirs '(("mail@ambrevar.xyz" . "mail/Sent +sent -inbox -unread") ("pierre@atlas.engineer" . "atlas/Sent +sent -inbox -unread"))) (defun notmuch-change-sender () (interactive) (unless (derived-mode-p 'message-mode) (error "Must be in message mode")) (let ((sender (completing-read "Sender: " (mapcar 'car notmuch-fcc-dirs)))) (message-replace-header "From" sender) (message-remove-header "Fcc") (notmuch-fcc-header-setup))) (when (require 'patch-helm nil 'noerror) (helm-defswitcher "notmuch" (lambda (b) (with-current-buffer b (or (derived-mode-p 'notmuch-hello-mode) (derived-mode-p 'notmuch-search-mode) (derived-mode-p 'notmuch-tree-mode) (derived-mode-p 'notmuch-show-mode) (derived-mode-p 'notmuch-message-mode)))) notmuch-hello)) (when (require 'helm-notmuch nil t) (setq helm-notmuch-match-incomplete-words t) (require 'patch-helm-notmuch) (dolist (map (list notmuch-search-mode-map notmuch-hello-mode-map notmuch-show-mode-map notmuch-tree-mode-map)) (define-key map "s" 'helm-notmuch))) (when (require 'org-notmuch nil 'noerror) (dolist (map (list notmuch-show-mode-map notmuch-tree-mode-map)) (define-key map (kbd "C-c C-t") 'org-capture)) (add-to-list 'org-capture-templates `("t" "Mark e-mail in agenda" entry (file+headline ,(car org-agenda-files) "E-mails") "* %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"++7d\" nil (notmuch-show-get-date)))\n%a\n"))) (defun notmuch-show-bounce (&optional address) "Bounce the current message." (interactive "sBounce To: ") (notmuch-show-view-raw-message) (message-resend address)) (define-key notmuch-show-mode-map "b" #'notmuch-show-bounce) (provide 'init-notmuch)