Emacs: how to remove "unread" tag while reading emails

Austin Clements amdragon at MIT.EDU
Sat Oct 5 09:22:02 PDT 2013


Great list.

One of the problems with the current approach, which most of these
options share, is that there's no feedback.  For example, when I enter
a thread, I have no idea if the first message was unread or not.  I'd
like a solution that either naturally doesn't have this problem, that
visually indicates that a message *was* unread, or that delays all
unread marking until you leave the thread (possibly combined with a
visual indication of what will be marked unread).  Bonus points if
it's easy to adjust what happens, such as saying "keep everything
unread" or "keep everything unread except this one".

To this end, here are my two proposals:

A1) Mark whole thread read when you leave it (via q, X, A or friends)
and provide a binding to leave a thread without marking it read (C-x k
would do, but we should provide an explicit one; perhaps C-u prefixing
other "leave" bindings?  For once, C-u is easy to remember because u
is the first letter of unread).

A2) Like A1, but mark only messages up to and containing point when
you leave a thread.

In either case, I'd like an echo message when I leave the thread
telling me what happened ("Thread marked as read", "First 3 messages
marked as read; thread archived", etc.).  These would blend especially
well with undo, because they would bundle together all read marking
into a single action that would make sense to undo ("Thread marked as
read [C-/ to undo]").

Both options are highly predictable and easy to understand.  They
don't lose information about which messages were unread when you
entered a thread.  And they're easy to adjust (you can always -unread
a message manually and then C-u q or whatever to leave without
touching anything else).

Quoth Mark Walters on Oct 05 at 10:19 am:
> 
> Hello
> 
> I agree that the unread tag does not work well. There are some instances
> which I would class as plain bugs (notmuch-show-next-message which is
> bound to N marks the new message read even if it is collapsed) and
> other instances where it is not clear what the correct behaviour should
> be.
> 
> I have messed around a bit and there seem to be a lot of possible
> variants and I don't know whether any would have any consensus.
> 
> One clear divide is whether we should only mark "visited messages" (ie
> ones reached using space, n,N,p,P etc in the current bindings) or we
> should also make messages seen by scrolling past (eg with page down).
> 
> Anyway here is a list of some possibilities. In all cases I assume we do
> not mark any collapsed message read.
> 
> 1) Mark a message read when we visit it.
> 2) Mark a message read when we visit it and the leave it with a "visit
> move" (eg n for next message)
> 
> 3) Mark a message read if we see the start of the message in the buffer. 
> 4) Mark a message read if we have seen the start and end of the message
> in the buffer.
> 5) Mark a message read if we see the end of the message after seeing the
> start (rationale moving to the top of the buffer is likely "movement"
> rather than "reading")
> 
> 6) Something based on how we leave the message: eg page down could mark
> all messages which were fully visible read, n (next-open message) could
> mark the message being left read. 
> 7) Similar to 6) but something where read necessarily includes have seen
> the start of the message.
> 
> I think all of these are reasonably easy to implement, and I think I
> know which I would like (something like 5 or 7) but it would be
> interesting to know if there is any general view or any view on how
> customisable this should be.
> 
> Does anyone have any thoughts?
> 
> Best wishes
> 
> Mark
> 
> 
> 
> On Wed, 18 Sep 2013, Gregor Zattler <telegraph at gmx.net> wrote:
> > Dear notmuchers,
> >
> > I had difficulties to reliably remove the "unread" tag from
> > messages.  Mostly I page through threads with the space bar and
> > all is well.  But when the beginning of the thread is already
> > collapsed and I "jump" in the middle of a message pressing space
> > bar does not remove the unread tag.  It's only removed when
> > *entering* the message via space bar from the previous message.
> > So the last press on space bar in the previous message jumps to
> > the next message and at the same time removes its unread tag.
> >
> > This seems strange to me.  I would say the unread tag should be
> > removed when leaving the message with the last press on space
> > bar, indicating that one really paged trough the whole message
> > instead of only seeing the very beginning of it.
> >
> > What’s the rationale to this behaviour?  Am I missing something?  
> >
> > Thanks for your attention, gregor


More information about the notmuch mailing list