[PATCH RFC] notmuch-hello: What's in your inbox

Michal Sojka sojkam1 at fel.cvut.cz
Thu Jun 3 23:37:29 PDT 2010


Hello,

I found myself very often adding something like 'tag:inbox and ...' to
the saved searches. I want my messages to be tagged by mailing list so
whenever I subscribe to a new mailing list I have to update both the
tagging script and saved searches. This work duplication doesn't seem
ideal for me so here is a patch, which shows a section "What's in your
inbox" in notmuch-hello screen. This section contains all tags of
messages that are tagged by "inbox".

It would be nice to have some configuration for the "What's in your
inbox" section - for example to specify which tags are not interesting
for me (e.g. unread).

I'm not sure whether the patch applies to recent dme's notmuch-hello
updates. If not, I'll rebase it as soon as these patches appear in
master.

Signed-off-by: Michal Sojka <sojkam1 at fel.cvut.cz>

---
 emacs/notmuch-hello.el |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index 6a1c56e..e61f37a 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -55,6 +55,11 @@
   :type 'boolean
   :group 'notmuch)
 
+(defcustom notmuch-show-inbox-tags-list nil
+  "Should all tags in your inbox be shown in the notmuch-hello view?"
+  :type 'boolean
+  :group 'notmuch)
+
 (defface notmuch-hello-logo-background
   '((((class color)
       (background dark))
@@ -289,7 +294,36 @@ diagonal."
 				(mapcar '(lambda (tag) (cons tag (concat "tag:" tag)))
 					(process-lines notmuch-command "search-tags"))))
 	     (alltags-widest (notmuch-hello-longest-label alltags-alist))
-	     (widest (max saved-widest alltags-widest)))
+	     (inboxtags-alist (if notmuch-show-inbox-tags-list
+				  (mapcar '(lambda (tag) (cons tag (concat "tag:inbox and tag:" tag)))
+					  (process-lines notmuch-command "search-tags" "tag:inbox"))))
+	     (inboxtags-widest (notmuch-hello-longest-label inboxtags-alist))
+	     (widest (max saved-widest alltags-widest inboxtags-widest)))
+
+
+	(when inboxtags-alist
+	  (widget-insert "What's in your inbox: ")
+	  (widget-create 'push-button
+			 :notify (lambda (widget &rest ignore)
+				   (setq notmuch-show-inbox-tags-list nil)
+				   (notmuch-hello-update))
+			 "hide")
+	  (widget-insert "\n\n")
+	  (setq final-target-pos (point-marker))
+	  (let ((start (point)))
+	    (setq found-target-pos (notmuch-hello-insert-tags inboxtags-alist widest target))
+	    (if (not final-target-pos)
+		(setq final-target-pos found-target-pos))
+	    (indent-rigidly start (point) notmuch-hello-indent)))
+
+	(when (not notmuch-show-inbox-tags-list)
+	  (widget-create 'push-button
+			 :notify (lambda (widget &rest ignore)
+				   (setq notmuch-show-inbox-tags-list t)
+				   (notmuch-hello-update))
+			 "Show tags in your inbox")
+	  (widget-insert "\n"))
+	(widget-insert "\n")
 
 	(when saved-alist
 	  (widget-insert "Saved searches: ")
@@ -297,8 +331,9 @@ diagonal."
 			 :notify (lambda (&rest ignore)
 				   (customize-variable 'notmuch-saved-searches))
 			 "edit")
+	  (if (not final-target-pos)
+	      (setq final-target-pos (point-marker)))
 	  (widget-insert "\n\n")
-	  (setq final-target-pos (point-marker))
 	  (let ((start (point)))
 	    (setq found-target-pos (notmuch-hello-insert-tags saved-alist widest target))
 	    (if found-target-pos
-- 
tg: (1d528f8..) t/emacs-what-is-in-your-inbox (depends on: master)


More information about the notmuch mailing list