Re: Emacs: how to remove unread tag while reading emails
On Sat, 05 Oct 2013, Austin Clements amdra...@mit.edu wrote: 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. Agreed. And this gets repeated for navigating messages within the thread. Very annoying. This should be fixed. Two other things I find annoying: * I often find myself glancing at the first few lines of the message to decide whether I want to read it now or later (potentially never). I still want the unread information be retained if I decide to archive or move on to the next thread, so I often end up restoring the unread tag. So the marking as read is too eager. * I sometimes use the arrow keys and page down/up to read through messages, and this leaves messages unread even though I've read them. So the marking as read is not eager enough. 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. I'd like to have the visual indication. 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). I think I'd like to keep this message based instead of thread based. However it's very difficult to know for sure until one actually gets to try it. I do switch between show buffers (for example, while reading a message, I need to check something from another message) and the marking as read might get lost. Also, it's not clear to me what happens if you refresh the buffer and new messages show up in the thread. Again, difficult to know in advance. My message based proposal: Don't do anything when you enter a message. This keeps the unread tag visible if it's there. Mark each message as read on actions you do when the point already is within the message: n/N/p/P/SPC/a/x/A/X/q/r/R/f (others?), arrow keys, and page up/down, *unless* the action is prefixed with C-u. Collapsed messages would never be marked as read. RET to expand would mark as read. This still does not provide visual indication of the removal of the unread tag in a way that would be always visible. But I think it's more important to know whether the message *was* unread before or not. Here's a proposal independent of the marking-as-read topic that would help with the visual indication: We currently set header-line-format (the top header in show view) to the subject of the first message. The usefulness of the header line could be improved a lot. We could make it reflect the message the point is currently on, with user configurable format not unlike notmuch-search-result-format. Including tags. And this would provide visual indication for marking as read when the message header is not visible. The header would also help in navigating long threads with long messages. 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]). This might be useful with the message based approach, although it might be too verbose, and a new annoyance... BR, Jani. ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: Emacs: how to remove unread tag while reading emails
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 telegr...@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 ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: Emacs: how to remove unread tag while reading emails
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 telegr...@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 ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: Emacs: how to remove unread tag while reading emails
On Sat, 05 Oct 2013, Austin Clements amdra...@mit.edu wrote: 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. I like the idea of not doing the update until you actually leave the buffer. 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. I like A2 but would like to check exactly what you meant: would this only mark open messages (ie not collapsed messages) up to point? I also like the prefix argument for q etc idea but I have a plausible variation: ctrl-u q (etc) could say mark 4 messages unread y/N? so you could easily see what it would do (but default to not doing it). I am imagining not updating read/unread as the less common case. I guess if we provide functions for each case it is easy for a user to configure. (Actually is it easy for a user to configure how prefix arguments work?) The only time in my use this would do the wrong thing is if I open all messages with M-Ret I think this also simplifies the mark-read code quite substantially which is nice. Best wishes Mark 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 telegr...@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