aboutsummaryrefslogtreecommitdiff
path: root/.emacs.local.d/modes/notmuch.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.local.d/modes/notmuch.el')
-rw-r--r--.emacs.local.d/modes/notmuch.el133
1 files changed, 0 insertions, 133 deletions
diff --git a/.emacs.local.d/modes/notmuch.el b/.emacs.local.d/modes/notmuch.el
deleted file mode 100644
index 19ea823..0000000
--- a/.emacs.local.d/modes/notmuch.el
+++ /dev/null
@@ -1,133 +0,0 @@
-;; --------
-;; notmuch mode
-;; --------
-(require 'notmuch)
-(require 'notmuch-indicator)
-(require 'rul-config-mail)
-
-;;;; General UI
-(setq notmuch-show-logo nil
- notmuch-column-control 1.0
- notmuch-hello-auto-refresh t
- notmuch-hello-recent-searches-max 20
- notmuch-hello-thousands-separator ""
- notmuch-show-all-tags-list t)
-
-;; Keymaps
-(defun rul/capture-mail()
- "Capture mail to org mode."
- (interactive)
- (org-store-link nil)
- (org-capture nil "m")
- )
-
-(bind-key "c" 'rul/capture-mail notmuch-show-mode-map)
-
-(define-key notmuch-show-mode-map "R" 'notmuch-show-reply)
-(define-key notmuch-search-mode-map "R" 'notmuch-search-reply-to-thread)
-
-; Spam
-(define-key notmuch-show-mode-map "S"
- (lambda ()
- "mark message as spam"
- (interactive)
- (notmuch-show-tag (list "+spam" "-inbox" "-unread"))))
-
-(define-key notmuch-search-mode-map "S"
- (lambda (&optional beg end)
- "mark thread as spam"
- (interactive (notmuch-search-interactive-region))
- (notmuch-search-tag (list "+spam" "-inbox" "-unread") beg end)))
-
-; Archive
-(setq notmuch-archive-tags (list "-inbox" "+archive"))
-(define-key notmuch-show-mode-map "A"
- (lambda ()
- "archive"
- (interactive)
- (notmuch-show-tag (list "+archive" "-inbox" "-unread"))
- (notmuch-refresh-this-buffer)))
-
-(define-key notmuch-search-mode-map "A"
- (lambda (&optional beg end)
- "archive thread"
- (interactive (notmuch-search-interactive-region))
- (notmuch-search-tag (list "+archive" "-inbox" "-unread") beg end)
- (notmuch-refresh-this-buffer)))
-
-; Mark as read
-(define-key notmuch-search-mode-map "r"
- (lambda (&optional beg end)
- "mark thread as read"
- (interactive (notmuch-search-interactive-region))
- (notmuch-search-tag (list "-unread") beg end)
- (notmuch-search-next-thread)))
-
-(define-key notmuch-search-mode-map (kbd "RET")
- (lambda ()
- "Show the selected thread with notmuch-tree if it has more
-than one email. Use notmuch-show otherwise."
- (interactive)
- (if (= (plist-get (notmuch-search-get-result) :total) 1)
- (notmuch-search-show-thread)
- (notmuch-tree (notmuch-search-find-thread-id)
- notmuch-search-query-string
- nil
- (notmuch-prettify-subject (notmuch-search-find-subject))))))
-
-(defun color-inbox-if-unread () (interactive)
- (save-excursion
- (goto-char (point-min))
- (let ((cnt (car (process-lines "notmuch" "count" "tag:inbox and tag:unread"))))
- (when (> (string-to-number cnt) 0)
- (save-excursion
- (when (search-forward "inbox" (point-max) t)
- (let* ((overlays (overlays-in (match-beginning 0) (match-end 0)))
- (overlay (car overlays)))
- (when overlay
- (overlay-put overlay 'face '((:inherit bold) (:foreground "green")))))))))))
-
-(defvar notmuch-hello-refresh-count 0)
-(defun notmuch-hello-refresh-status-message ()
- (let* ((new-count
- (string-to-number
- (car (process-lines notmuch-command "count"))))
- (diff-count (- new-count notmuch-hello-refresh-count)))
- (cond
- ((= notmuch-hello-refresh-count 0)
- (message "You have %s messages."
- (notmuch-hello-nice-number new-count)))
- ((> diff-count 0)
- (message "You have %s more messages since last refresh."
- (notmuch-hello-nice-number diff-count)))
- ((< diff-count 0)
- (message "You have %s fewer messages since last refresh."
- (notmuch-hello-nice-number (- diff-count)))))
- (setq notmuch-hello-refresh-count new-count)))
-
-(add-hook 'notmuch-hello-refresh-hook 'color-inbox-if-unread)
-(add-hook 'notmuch-hello-refresh-hook 'notmuch-hello-refresh-status-message)
-
-(setq notmuch-hello-sections '(notmuch-hello-insert-saved-searches
- notmuch-hello-insert-search
- notmuch-hello-insert-recent-searches
- notmuch-hello-insert-alltags
- ))
-
-;; https://git.sr.ht/~tslil/dotfiles/tree/4e51afbb/emacs/notmuch-config.el#L76-82
-(defmacro make-binds (mode-map binds argfunc &rest body)
- "Create keybindings in `mode-map' using a list of (keystr . arg)
-pairs in `binds' of the form ( ... (argfunc arg) body)."
- `(progn ,@(mapcar (lambda (pair)
- `(define-key ,mode-map (kbd ,(car pair))
- (lambda () (interactive) (,argfunc ,(cdr pair)) ,@body)))
- (eval binds))))
-
-(defvar notmuch-hello-tree-searches '(("u" . "tag:unread")
- ("i" . "tag:inbox")
- ("*" . "*"))
- "List of (key . query) pairs to bind in notmuch-hello.")
-
-(make-binds notmuch-hello-mode-map
- notmuch-hello-tree-searches
- notmuch-search)
nihil fit ex nihilo