[notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags

Carl Worth cworth at cworth.org
Mon Nov 30 23:27:43 PST 2009

On Sun, 22 Nov 2009 23:20:58 -0800, Keith Packard <keithp at keithp.com> wrote:
> So we need to do the 'mark all that have been seen read' change, then we
> can do the rest of this switch. Not sure how to make that work, as we
> need to know what has been displayed, and you can display bits of the
> window in lots of different ways (even using the mouse!)

Yeah, we're not yet very friendly to reading with the mouse scroll
wheel, (in that doing so won't clear the "unread" tag from messages as
they go by).

Meanwhile, I actually like being able to peek ahead in a thread with 'n'
and 'p' and know that those commands don't touch my "unread" tag.

So I think what I'd like is for 'a' and 'x' to simply remove the unread
tag from any message whose final line is currently visible.

But that's also really orthogonal to making 'x' and 'X' remove the
"inbox" tag from the messages in the current thread. So I've just
committed that change (see below).


commit 55559ea409ad8df367f13752430244b7087dcd23
Author: Carl Worth <cworth at cworth.org>
Date:   Mon Nov 30 23:21:04 2009 -0800

    notmuch.el: Make 'x' and 'X' in show-mode archive the current thread.
    This makes these keys different than 'q' in this mode, (where 'x'
    and 'q' are identical in all of the other modes currently).
    The idea here is to make it easier to do non-linear reading of messages,
    (such as when poking in to read just one or two threads from a search
    result that returned many threads).

diff --git a/notmuch.el b/notmuch.el
index e605d9d..2509651 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -55,7 +55,6 @@
   (let ((map (make-sparse-keymap)))
     (define-key map "?" 'notmuch-help)
     (define-key map "q" 'kill-this-buffer)
-    (define-key map "x" 'kill-this-buffer)
     (define-key map (kbd "C-p") 'notmuch-show-previous-line)
     (define-key map (kbd "C-n") 'notmuch-show-next-line)
     (define-key map (kbd "M-TAB") 'notmuch-show-previous-button)
@@ -70,6 +69,8 @@
     (define-key map "v" 'notmuch-show-view-all-mime-parts)
     (define-key map "-" 'notmuch-show-remove-tag)
     (define-key map "+" 'notmuch-show-add-tag)
+    (define-key map "X" 'notmuch-show-mark-read-then-archive-then-exit)
+    (define-key map "x" 'notmuch-show-archive-thread-then-exit)
     (define-key map "A" 'notmuch-show-mark-read-then-archive-thread)
     (define-key map "a" 'notmuch-show-archive-thread)
     (define-key map "p" 'notmuch-show-previous-message)
@@ -273,6 +274,18 @@ buffer."
   (notmuch-show-archive-thread-maybe-mark-read nil))
+(defun notmuch-show-archive-thread-then-exit ()
+  "Archive each message in thread, then exit back to search results."
+  (interactive)
+  (notmuch-show-archive-thread)
+  (kill-this-buffer))
+(defun notmuch-show-mark-read-then-archive-then-exit ()
+  "Remove unread tags from thread, then archive and exit to search results."
+  (interactive)
+  (notmuch-show-mark-read-then-archive-thread)
+  (kill-this-buffer))
 (defun notmuch-show-view-raw-message ()
   "View the raw email of the current message."

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20091130/54214019/attachment-0001.pgp>

More information about the notmuch mailing list