[neomutt-users] *-hook settings. I'm confused

Reto reto at labrat.space
Mon Aug 5 06:53:41 CEST 2019


On Sun, Aug 04, 2019 at 06:40:17PM +0000, Ryan Smith wrote:
> I also find mutt or neomutt syntax very confusing. It does not look like any main stream programming language.
>
> Is neomutt written in C? why not use C syntax directly?

Because it makes no sense to use C as a config interface.
Using `set $option=$value` pairs is perfectly fine.
Heck, you have more or less the same syntax in Bash/Zsh and most other files
you'll find in your /etc directory.

> You are not dumb. It is mutt that has serious design flaws.

So help fix them? As of now it's mostly Flatcap alone and restructuring the code
already takes a substantial amount of time.
Send a PR that supports multiple accounts instead of just complaining.

And to be fair, neomutt has great documentation, for example the hooks thing is
documented here, including a warning regarding a common issue.
https://neomutt.org/guide/advancedusage#6-%C2%A0using-hooks
The regex / pattern syntax is very well documented as well, even in the neomutt
docs themselves.

The hook system is a tad hard to understand, granted. But it also makes it super
flexible and fit any use case given enough motivation to read the docs ;)

> Neomutt should change mutt so that the syntax and configuration of mutipe accounts is just as simple, easy and clear as fetchmail or isync, where you just list emails address and login info and things are done.

If that would be done, you know need to support 2 ways of configuring neomutt.
After all you can't break all existing users, who have a perfectly working config
set up.
Plus, you now can't port some patches to upstream mutt to neomutt.
The question being, do you really want to do that?

> They syntax should resemble major programming language like C or python  or even the script style in fetchmail or isync.

What do you even consider "C syntax"?
There's no need to make a config file look like a programming language, you
only need to set options.
Most configs of larger software either use key=value pairs or something
like yaml / toml / json for the simple reason that they are easy to parse.


More information about the neomutt-users mailing list