summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Wolfe Gordon <awg@xvx.ca>2012-10-23 15:21:56 -0600
committerAdam Wolfe Gordon <awg@xvx.ca>2012-10-23 15:21:56 -0600
commit5607447c06ac11eac7fe2c991a76e41d316e08a4 (patch)
tree5bd4564b3514a594e89fb79a28a94097c8dbaf3e
parentc813b3d7bbc90a5fb666db00aac4f3be09fc0f32 (diff)
Add some emacs tips about the inbox
-rw-r--r--emacstips.mdwn41
1 files changed, 41 insertions, 0 deletions
diff --git a/emacstips.mdwn b/emacstips.mdwn
index 90b7a25..887f242 100644
--- a/emacstips.mdwn
+++ b/emacstips.mdwn
@@ -613,3 +613,44 @@ notmuch version 0.15):
(replace-regexp-in-string "\t" " " (notmuch-show-get-subject)))))
(add-hook 'notmuch-show-hook 'notmuch-show-header-tabs-to-spaces)
+
+## Hiding unread messages in notmuch-show
+
+I like to have an inbox saved search, but only show unread messages when they
+view a thread. This takes two steps:
+
+1. Apply
+[this patch from Mark Walters](http://notmuchmail.org/pipermail/notmuch/2012/010817.html)
+to add the `notmuch-show-filter-thread` function.
+1. Add the following hook to your emacs configuration:
+
+ (defun expand-only-unread-hook () (interactive)
+ (let ((unread nil)
+ (open (notmuch-show-get-message-ids-for-open-messages)))
+ (notmuch-show-mapc (lambda ()
+ (when (member "unread" (notmuch-show-get-tags))
+ (setq unread t))))
+ (when unread
+ (let ((notmuch-show-hook (remove 'expand-only-unread-hook notmuch-show-hook)))
+ (notmuch-show-filter-thread "tag:unread")))))
+
+ (add-hook 'notmuch-show-hook 'expand-only-unread-hook)
+
+## Changing the color of a saved search based on some other search
+
+I like to have a saved search for my inbox, but have it change color when there
+are thread with unread messages in the inbox. I accomplish this with the
+following code in my emacs config:
+
+ (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")))))))))))
+ (add-hook 'notmuch-hello-refresh-hook 'color-inbox-if-unread)