It is starting to work nicely, and as it automatically fetches parents of notes, I often see entire threads I don't care to read, so I want to efficiently mark them as read and move on.
Searching the Gnus interface and manual I found T⃣k⃣ - gnus-summary-kill-thread - which almost does what I want. Actually it does too much, it also collapses the thread, which confuses my eyes "huh, suddenly some lines disappeared, is something awry?"
So I made a copy of gnus-summary-kill-thread and simplified it to this:
; My own version of gnus-summary-kill-thread: (defun asjo-gnus-summary-mark-thread-read () "Mark articles under current thread as read." (interactive "" gnus-summary-mode) (let ((articles (gnus-summary-articles-in-thread))) (save-excursion ;; Expand the thread. (gnus-summary-show-thread) ;; Mark all the articles. (while articles (gnus-summary-goto-subject (car articles)) (gnus-summary-mark-article-as-read gnus-read-mark) (setq articles (cdr articles))))) ;; Go to next unread subject. (gnus-summary-next-subject 1 t) (gnus-set-mode-line 'summary))
and bound it to the unused shortcut T⃣r⃣:
(define-key gnus-summary-mode-map [(T) (r)] 'asjo-gnus-summary-mark-thread-read)
and won't you know it, when my timeline suddenly had a 400+ note long thread, I pressed T⃣r⃣, and Bob's became my uncle, as the thread was marked read and the first article after the thread was opened.