blob: f398eb284cf1ee9d66ae3586f3df1a72beb56625 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
;;; -*- lexical-binding: t; -*-
(setq kj/fastmail-maildir (expand-file-name "~/Maildir/fastmail"))
(when (file-exists-p (expand-file-name "~/Maildir"))
(use-package notmuch
:config
(setq message-mail-user-agent 'notmuch-user-agent
message-kill-buffer-on-exit t
message-send-mail-function 'message-send-mail-with-sendmail)
(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
notmuch-show-logo nil)
(add-hook 'message-mode-hook 'turn-off-auto-fill)
(add-hook 'message-mode-hook 'visual-line-mode)
(defun kj/confirm-empty-subject ()
"Allow user to quit when current message subject is empty."
(or (message-field-value "Subject")
(yes-or-no-p "Really send without Subject? ")
(keyboard-quit)))
(add-hook 'message-send-hook #'kj/confirm-empty-subject)
(advice-add
'notmuch :before (defun kj/notmuch-switch-to-local ()
(when (file-remote-p default-directory)
(cd (expand-file-name "~")))))
(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)
)))
(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)
(setq sendmail-program "mujmap"
message-sendmail-extra-arguments (list "-C" kj/fastmail-maildir "send")))
(provide 'kj-email)
|