I'm finally giving aerc a serious try. Thanks for all the great work on
it! I'm coming from neomutt (+notmuch) but am hoping aerc can give some
performance gains and better user experience. Aerc's new dynamic styling
support for individual messages was the missing feature I needed to draw
me in.
I'm going back to plain maildir(++) (without notmuch) to keep things as simple
as possible (it is over NFS though). Or would using IMAP as an intermediary
result in better performance/usability?
I wanted to write down here a few issues I encountered with my aerc experience thus-far, in
the hope it may be useful feedback for the devs, or so people can point me in
the right direction if there are already solutions I might have missed:
* New mail in inbox doesn't seem to show as it comes in.
I don't have any check-mail command set, I just set up the maildir++ that dovecot writes.
Do I need to setup something more?
* How can I manually do a refresh of the current folder? (other than switching away and back to it)
* The unread counts on other folders don't seem to automatically update unless I move to them.
(I suppose this is https://todo.sr.ht/~rjarry/aerc/147 ?)
* More feedback in status line would be nice, often when switching to a folder
it says (no messages) in the panel for a while until some unadvertised background process finishes
and fills it. Why no spinner there like on startup?
* When scrolling past a few huge folders (:next-folder), the system bogs
down and new content hardly loads anymore.
* There doesn't seem to be a way to scroll further (pageup/pagedown)
in the sidebar other than per item? (unless using mouse)
* I have the impression there is a worker thread launched for each
folder I scroll past, but they're not being cancelled when I
leave?
* I do get various log messages about invalid mails like in https://todo.sr.ht/~rjarry/aerc/129 , is this
indeed a main cause of things slowing down?
* Initial startup takes a long time when there are many big folders in the maildir, I was
thinking perhaps the default folder (usually INBOX) could be prioritized and already shown? Especially
for things like TOTP login codes the long loading times are an issue.
* I set dynamic styling rules (great feature!) like the following:
"msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.fg" = green
"msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.bg" = #4e075b
However, it seems only one match (the first) registers if the condition is identical.
How would I set both fg and bf for a single header match?
* If the root Maildir++ directory is a symlink, then setting `source = maildirpp://~/Maildir` doesn't work,
but it does with a trailing slash.
--
Maarten van Gompel
https://proycon.anaproy.nl
GnuPG key: 0x39FE11201A31555C
XMPP: proycon@anaproy.nl Matrix: @proycon:matrix.anaproy.nl
Telegram: proycon IRC: proycon (libera.chat + oftc)
Mastodon: https://social.anaproy.nl/@proycon (@proycon@social.anaproy.nl)
Keyoxide: https://keyoxide.org/8AC624881EF2AC30C0E68E2C39FE11201A31555C
vCard: https://proycon.anaproy.nl/proycon.vcf
Hi, Maarten,
Thanks for your report. Some comments follow:
El 15/15/2023 a las 11:50, Maarten van Gompel dejó escrito:
> I'm going back to plain maildir(++) (without notmuch) to keep things as> simple as possible (it is over NFS though).
For context, I use the notmuch interface (with maildir access enabled) myself.
> Or would using IMAP as an intermediary result in better> performance/usability?
Well, it depends. While the IMAP interface of aerc is definitely more polished,
it of course forces you to an entirely different approach to mail.
> I wanted to write down here a few issues I encountered with my aerc> experience thus-far, in the hope it may be useful feedback for the devs, or> so people can point me in the right direction if there are already solutions> I might have missed:>> * New mail in inbox doesn't seem to show as it comes in. I don't have any> check-mail command set, I just set up the maildir++ that dovecot writes. Do I> need to setup something more?
If you refer to new messages not showing in the message list, this happens to
me as well. I manually refresh the message list regularly.
> * How can I manually do a refresh of the current folder? (other than> switching away and back to it)
:clear (bound to ESC, in my case)
> * The unread counts on other folders don't seem to automatically update> unless I move to them. (I suppose this is https://todo.sr.ht/~rjarry/aerc/147> ?)
This works for me on notmuch virtual folders (aka queries).
> * More feedback in status line would be nice, often when switching to a> folder it says (no messages) in the panel for a while until some unadvertised> background process finishes and fills it. Why no spinner there like on> startup?
I'm also missing that spinner.
> * When scrolling past a few huge folders (:next-folder), the system bogs> down and new content hardly loads anymore.> * There doesn't seem to be a way to scroll further (pageup/pagedown)> in the sidebar other than per item? (unless using mouse)
Being able to jump bigger jumps would be nice, yes.
> * I have the impression there is a worker thread launched for each> folder I scroll past, but they're not being cancelled when I> leave?
I'm on the same boat here. Don't know about the internals, though.
> * I do get various log messages about invalid mails like in> https://todo.sr.ht/~rjarry/aerc/129 , is this indeed a main cause of> things slowing down?
I did trace some of the sluggishness to that. But I also think that the
slowness comes from the fact that aerc needs to load every message in a folder
in order to sort and thread them. There were recent discussions on irc about
this, and someone proposed a possible solution (for the notmuch interface,
unfortunately not available for maildir).
> * Initial startup takes a long time when there are many big folders in the> maildir, I was thinking perhaps the default folder (usually INBOX) could be> prioritized and already shown? Especially for things like TOTP login codes> the long loading times are an issue.
+1
> * I set dynamic styling rules (great feature!) like the following:>> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.fg" = green> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.bg" = #4e075b>> However, it seems only one match (the first) registers if the condition is identical.> How would I set both fg and bf for a single header match?> * If the root Maildir++ directory is a symlink, then setting `source => maildirpp://~/Maildir` doesn't work, but it does with a trailing slash.
These last two definitely look like bugs, but I haven't tried to reproduce them.
Hey all,
> > Or would using IMAP as an intermediary result in better> > performance/usability?> Well, it depends. While the IMAP interface of aerc is definitely more polished,> it of course forces you to an entirely different approach to mail.
I'd argue the maildir interface is also pretty polished, notmuch isn't as great
as it could be though for sure, although I just recently started using the imap
backend at work so we'll see how I feel in a few weeks :)
>> > I wanted to write down here a few issues I encountered with my aerc> > experience thus-far, in the hope it may be useful feedback for the devs, or> > so people can point me in the right direction if there are already solutions> > I might have missed:> >> > * New mail in inbox doesn't seem to show as it comes in. I don't have any> > check-mail command set, I just set up the maildir++ that dovecot writes. Do I> > need to setup something more?> If you refer to new messages not showing in the message list, this happens to> me as well. I manually refresh the message list regularly.
Hmm, I don't have that with maildir, only with notmuch.
>> > * How can I manually do a refresh of the current folder? (other than> > switching away and back to it)> :clear (bound to ESC, in my case)>> > * The unread counts on other folders don't seem to automatically update> > unless I move to them. (I suppose this is https://todo.sr.ht/~rjarry/aerc/147> > ?)> This works for me on notmuch virtual folders (aka queries).>
What version are you on Maarten? I have a faint memory of this being already
fixed. Issue #147 is about the new-mail trigger only triggering for the
currently viewed folder. But I might be wrong though ...
>>> > * More feedback in status line would be nice, often when switching to a> > folder it says (no messages) in the panel for a while until some unadvertised> > background process finishes and fills it. Why no spinner there like on> > startup?> I'm also missing that spinner.
As a note: this issue is related: https://todo.sr.ht/~rjarry/aerc/112>> > * When scrolling past a few huge folders (:next-folder), the system bogs> > down and new content hardly loads anymore.> > * There doesn't seem to be a way to scroll further (pageup/pagedown)> > in the sidebar other than per item? (unless using mouse)> Being able to jump bigger jumps would be nice, yes.
You directly `:cf [foldername]`. I personally have bindings to most of my
folders along the line of gX where X is a number or single character that makes
sense to me (e.g. Sent is gs). I also have pairs of mX for these to move
messages to them.
>> > * I have the impression there is a worker thread launched for each> > folder I scroll past, but they're not being cancelled when I> > leave?> I'm on the same boat here. Don't know about the internals, though.
This is the problem, yes, we've already discussed that we should do something
about cancelling "obsolete" background jobs.
>> > * I do get various log messages about invalid mails like in> > https://todo.sr.ht/~rjarry/aerc/129 , is this indeed a main cause of> > things slowing down?> I did trace some of the sluggishness to that. But I also think that the> slowness comes from the fact that aerc needs to load every message in a folder> in order to sort and thread them. There were recent discussions on irc about> this, and someone proposed a possible solution (for the notmuch interface,> unfortunately not available for maildir).>> > * Initial startup takes a long time when there are many big folders in the> > maildir, I was thinking perhaps the default folder (usually INBOX) could be> > prioritized and already shown? Especially for things like TOTP login codes> > the long loading times are an issue.> +1
That would make sense, although I have some pretty large folders and don't
remember feeling the need to wait for Inbox. I just opened a new instance and
that was basically instant, but maybe because of this one already running, so
I'll try again once I sent this message.
>> > * I set dynamic styling rules (great feature!) like the following:> >> > "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.fg" = green> > "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.bg" = #4e075b
This again might be a version thing? There's been some shuffling around of this
recently. Although Robin will know more.
Best,
Bence
--
+36305425054
bence.ferdinandy.com
On Sat Apr 15, 2023 at 4:50 PM CDT, Maarten van Gompel wrote:
> I'm finally giving aerc a serious try. Thanks for all the great work on> it! I'm coming from neomutt (+notmuch) but am hoping aerc can give some> performance gains and better user experience. Aerc's new dynamic styling> support for individual messages was the missing feature I needed to draw> me in.>> I'm going back to plain maildir(++) (without notmuch) to keep things as simple> as possible (it is over NFS though). Or would using IMAP as an intermediary> result in better performance/usability?>> I wanted to write down here a few issues I encountered with my aerc experience thus-far, in> the hope it may be useful feedback for the devs, or so people can point me in> the right direction if there are already solutions I might have missed:
Hey Maarten -
Thanks for the feedback. In addition to what inwit and Bence have
replied with, I'll add a few comments as well. It would help to know
what version you are running, we have pretty active development and
drastic improvements with each version.
> * New mail in inbox doesn't seem to show as it comes in.> I don't have any check-mail command set, I just set up the maildir++ that dovecot writes.> Do I need to setup something more?
This should work. I wonder if you are using macOS? The filewatcher which
does this didn't work on mac previously but has been addressed with
https://git.sr.ht/~rjarry/aerc/commit/27cacdfca581d1f51f3e99a8f94c859fe8576790> * More feedback in status line would be nice, often when switching to a folder> it says (no messages) in the panel for a while until some unadvertised background process finishes> and fills it. Why no spinner there like on startup?
I agree, we should have a spinner here.
> * When scrolling past a few huge folders (:next-folder), the system bogs> down and new content hardly loads anymore.> * I have the impression there is a worker thread launched for each> folder I scroll past, but they're not being cancelled when I> leave?
This is correct. There is a configurable debounce for the loading of
folders, the default I think is 100 or 250 ms. As Bence said as well, in
order to thread or sort the maildir aerc must open every file. This can
take considerable time depending on the size. We have it running on
multiple threads for better speed but it still can take ~10 seconds for
some of my folders. There are two ways around this:
1. Disable sorting and threading for that folder in your config
2. Aerc would need to store an index of your maildir in order to be any
faster than we currently are.
> * Initial startup takes a long time when there are many big folders in the maildir, I was> thinking perhaps the default folder (usually INBOX) could be prioritized and already shown? Especially> for things like TOTP login codes the long loading times are an issue.
You can set a default folder to select at startup. See man aerc-config.
Overall though, we have talked a lot about having cancellation of folder
loads when you change. No one has taken up the task yet, though.
> * I set dynamic styling rules (great feature!) like the following:>> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.fg" = green> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.bg" = #4e075b>> However, it seems only one match (the first) registers if the condition is identical.> How would I set both fg and bf for a single header match?
We are looking at deprecating this feature in favor of templates, which
would address this. You would define a custom user-style like so:
[user]
patch.fg = green
patch.bg = #4e075b
Then in your config you would do something like
column-subject={{if match (.Header "X-Sourcehut-Patchset-Update,~APPLIED") }}{{.Style .Subject "patch"}}{{end}}
The new templating is pretty powerful and adds a ton of options for
custom styling. It's currently only on the master branch.
Again, thanks for the feedback - hopefully some of this is helpful.
--
Tim
On April 16, 2023 4:13:16 PM GMT+02:00, Tim Culverhouse <tim@timculverhouse.com> wrote:
>> * I set dynamic styling rules (great feature!) like the following:>>>> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.fg" = green>> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.bg" = #4e075b>>>> However, it seems only one match (the first) registers if the condition is identical.>> How would I set both fg and bf for a single header match?>>We are looking at deprecating this feature in favor of templates, which>would address this.
I beg to differ :)
This is a brand new feature and I certainly don't want to deprecate it already. The templates are for inline styles. Not for dynamic msg list styles.
Maarten, thanks for the feedback. This is a but and I'll have a look for a fix ASAP.
Cheers,
On Sun Apr 16, 2023 at 9:24 AM CDT, Robin Jarry wrote:
> On April 16, 2023 4:13:16 PM GMT+02:00, Tim Culverhouse <tim@timculverhouse.com> wrote:> >> * I set dynamic styling rules (great feature!) like the following:> >>> >> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.fg" = green> >> "msglist_default.X-Sourcehut-Patchset-Update,~APPLIED.bg" = #4e075b> >>> >> However, it seems only one match (the first) registers if the condition is identical.> >> How would I set both fg and bf for a single header match?> >> >We are looking at deprecating this feature in favor of templates, which> >would address this.>> I beg to differ :)>> This is a brand new feature and I certainly don't want to deprecate it already. The templates are for inline styles. Not for dynamic msg list styles.
Ah, I was mistaken! I was thinking this was the Subject regex we've
talked about...it's a header though :)
--
Tim
On Sun Apr 16, 2023 at 4:13 PM CEST, Tim Culverhouse wrote:
> On Sat Apr 15, 2023 at 4:50 PM CDT, Maarten van Gompel wrote:> > * New mail in inbox doesn't seem to show as it comes in.> > I don't have any check-mail command set, I just set up the maildir++ that dovecot writes.> > Do I need to setup something more?>> This should work. I wonder if you are using macOS? The filewatcher which> does this didn't work on mac previously but has been addressed with> https://git.sr.ht/~rjarry/aerc/commit/27cacdfca581d1f51f3e99a8f94c859fe8576790
Chiming in - this works for me using
aerc 0.14.0-124-gb756cf3f875a +notmuch (go1.20.3 amd64 linux)
My mail is synchronised externally with mbsync run in a cronjob, not internally
by aerc. I don't have to refresh aerc manually in any way to see new mail in the
currently viewing folder.
Hi all,
Thanks for all the replies and pointers!
> You directly `:cf [foldername]`. I personally have bindings to most of my> folders along the line of gX where X is a number or single character that makes> sense to me (e.g. Sent is gs). I also have pairs of mX for these to move> messages to them.
Good idea! I copied your suggestion and it makes things quicker to
manage indeed. I like the great configurability aerc offers.
> > * New mail in inbox doesn't seem to show as it comes in. > > I don't have any check-mail command set, I just set up the maildir++ that dovecot writes. > > Do I need to setup something more? > > This should work. I wonder if you are using macOS? The filewatcher which > does this didn't work on mac previously but has been addressed with > https://git.sr.ht/~rjarry/aerc/commit/27cacdfca581d1f51f3e99a8f94c859fe8576790
No, I'm on Linux (Arch), but my Maildir is mounted over NFS so I wonder
if that might play a role. I'll still have to determine if it
consistently occurs.
> What version are you on Maarten? I have a faint memory of this being already> fixed. Issue #147 is about the new-mail trigger only triggering for the> currently viewed folder. But I might be wrong though ...
I'm on aerc 0.14.0.r148.g8e66f3c +notmuch (go1.20.3 amd64 linux)
Which should be the latest git head unless things were merged in the
past two days or so.
> > > * How can I manually do a refresh of the current folder? (other than> > > switching away and back to it)> > :clear (bound to ESC, in my case)
Ha! Good one, I somehow managed to miss that in the documentation. The
Esc binding is a good idea, copied that too now, Idon't really mind
hitting Esc occasionally to refresh (vim trained me well so that button is
under constant reach anyway).
>> * I have the impression there is a worker thread launched for each >> folder I scroll past, but they're not being cancelled when I >> leave? > This is correct. There is a configurable debounce for the loading of > folders, the default I think is 100 or 250 ms. As Bence said as well, in > order to thread or sort the maildir aerc must open every file. This can > take considerable time depending on the size. We have it running on > multiple threads for better speed but it still can take ~10 seconds for > some of my folders. There are two ways around this: > 1. Disable sorting and threading for that folder in your config > 2. Aerc would need to store an index of your maildir in order to be any > faster than we currently are.
Thanks for the explanation, good to know how it's implemented and also
good to know that cancelling worker threads is a thing on the radar.
Your 1. suggestion is actually not a bad idea, might be good for rare but huge folders.
I guess 2. would be a fairly big thing to implement, and then you
wouldn't want to reinvent notmuch in the process.
Regards,
--
Maarten van Gompel
proycon@anaproy.nlhttps://proycon.anaproy.nl
GnuPG key: 0x39FE11201A31555C
XMPP: proycon@anaproy.nl Matrix: @proycon:matrix.anaproy.nl
Telegram: proycon IRC: proycon (libera.chat + oftc)
Mastodon: https://social.anaproy.nl/@proycon (@proycon@social.anaproy.nl)
Keyoxide: https://keyoxide.org/8AC624881EF2AC30C0E68E2C39FE11201A31555C
vCard: https://proycon.anaproy.nl/proycon.vcf
> > No, I'm on Linux (Arch), but my Maildir is mounted over NFS so I wonder> > if that might play a role. I'll still have to determine if it> > consistently occurs.>> Ah, NFS is not supported by fsnotify>> https://github.com/fsnotify/fsnotify#why-dont-notifications-work-with-nfs-smb-fuse-proc-or-sys
Thanks. That explains it yes. I'm falling back to IMAP now, I guess that
makes most sense if I go over a network. Thus-far (with cached headers
enabled as well) it provides a much snappier experience and barely any
initial loading time (as opposed to over a minute before).
--
Maarten van Gompel