;;; -*- lexical-binding: t; -*- (setq kj/fastmail-maildir (expand-file-name "~/Maildir/fastmail")) (setq notmuch-show-all-tags-list t notmuch-show-relative-dates t notmuch-hello-tag-list-make-query "tag:unread" notmuch-archive-tags '("-inbox" "-unread") notmuch-fcc-dirs nil) (add-hook 'message-mode-hook 'turn-off-auto-fill) (add-hook 'message-mode-hook 'visual-line-mode) (setq notmuch-saved-searches '((:name "inbox" :query "tag:inbox -tag:_gz" :key "i" :search-type tree) (:name "unread" :query "tag:unread" :key "u" :search-type tree) (:name "flagged" :query "tag:flagged" :key "f" :search-type tree) (:name "sent" :query "tag:sent" :key "t" :search-type tree) (:name "drafts" :query "tag:draft" :key "d" :search-type tree) (:name "all mail" :query "*" :key "a" :search-type tree) (:name "d" :query "tag:d-team tag:inbox" :search-type tree))) (defun kj/notmuch-tree-by-tag (tag) (interactive (list (notmuch-select-tag-with-completion "Notmuch search tag: "))) (notmuch-tree (concat "tag:" tag))) (define-key notmuch-hello-mode-map "T" 'kj/notmuch-tree-by-tag) (define-key notmuch-show-mode-map "!" (lambda () "mark message as spam" (interactive) (notmuch-show-tag (list "+_gz" "-inbox")))) (define-key notmuch-search-mode-map "!" (lambda (&optional beg end) "mark thread as spam" (interactive (notmuch-interactive-region)) (notmuch-search-tag (list "+_gz" "-inbox") beg end))) (when (file-exists-p kj/fastmail-maildir) (use-package notmuch) (setq message-mail-user-agent 'notmuch-user-agent message-kill-buffer-on-exit t message-send-mail-function 'message-send-mail-with-sendmail) (setq sendmail-program "mujmap" message-sendmail-extra-arguments (list "-C" kj/fastmail-maildir "send"))) (provide 'kj-email)