On 16Feb2021 11:31, Sam Kuper <sampabloku...@posteo.net> wrote: >On Thu, Jul 16, 2020 at 10:57:13AM +0200, Kai Weber wrote: >> I have a save-hook defined to move all mail into a certain folder. >> >> save-hook "~A" +personal/Archive >> >> Very often I want to move the mail into the archive without opening the >> mail at all but then the mail ends up as unread in the archive. >> >> I want to mark the mail as "read" when moving. How could I achieve this? >> I guess a macro could do it? Should I get rid of the save-hook?
Does it matter if its unread in the archive? I guess to you it does. Do you want to mark _everything_ in the archive as unread? Maybe it would be quicker with a folder-hook which matches your archive folder and marks everything unread as read on entry to the folder. >This macro may do what you want. It marks mail as "read" and moves it >to the $record file. > >Note that it makes use of `<`, which is Mutt's built-in shortcut for the >$record file. Note: I missed this remark, thought it was a typo :-) So the OP might want that replaced with +personal/Archive. > # Unlike index mode, pager mode does not accept this macro without > # an initial `<exit>`. So we need two variants of this macro, one > # for each mode. > macro index ss "<tag-prefix-cond><enter-command>set > auto_tag=yes<enter><end-cond><clear-flag>n<save-message><<Return>y<tag-prefix-cond><enter-command>set > auto_tag=no<enter><end-cond><sync-mailbox>y" > macro pager ss "<exit><tag-prefix-cond><enter-command>set > auto_tag=yes<enter><end-cond><clear-flag>n<save-message><<Return>y<tag-prefix-cond><enter-command>set > auto_tag=no<enter><end-cond><sync-mailbox>y<display-message>" > >If anyone reading this knows of a better solution, please share it. Remarks: I usually spell the pager macro like this: macro pager ss "<exit>ss" which avoids a lot of repetition. I rarely end macros with <sync-mailbox>, it shows things down and I like to only sync when intended, via the $ keystroke. I wouldn't fiddle with auto_tag, I'd just preceed things with <tag-prefix>, since you seem to have made this conditional on beging tagged anyway. In principle, fiddling an option requires unfiddling it at the end of the macro with the usual cumbersome set $my_option=$option set option=whatever ... do stuff set option=$my_option shuffle embedded in the macro. If you set wait_key=no during the macro you can drop the "y" you have embedded after the save. Cheers, Cameron Simpson <c...@cskk.id.au>