himalaya: fix notmuch backend

Previously, IMAP was preferred over notmuch, even if notmuch was
configured, causing problems with setting account flavor (which
automatically sets IMAP settings). The new backend order is:

    notmuch > IMAP > maildir

This also fixes the notmuch DB path being set to the wrong location.
The notmuch DB is located at the maildir base path, not in each
account's maildir.
This commit is contained in:
SiriusStarr 2023-07-03 11:30:11 -07:00 committed by Robert Helgesson
parent 98282a481d
commit 24805d3ca7
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
2 changed files with 11 additions and 7 deletions

View File

@ -8,14 +8,18 @@ let
# attrs util that removes entries containing a null value
compactAttrs = lib.filterAttrs (_: val: !isNull val);
# Needed for notmuch config, because the DB is here, and not in each account's dir
maildirBasePath = config.accounts.email.maildirBasePath;
# make a himalaya config from a home-manager email account config
mkAccountConfig = _: account:
let
imapEnabled = !isNull account.imap;
maildirEnabled = !imapEnabled && !isNull account.maildir
&& !account.notmuch.enable;
notmuchEnabled = !imapEnabled && !isNull account.maildir
&& account.notmuch.enable;
# Use notmuch if it's enabled, otherwise fallback to IMAP then maildir
# Maildir is always set, so there's no easy way to detect if it's being used
notmuchEnabled = account.notmuch.enable;
imapEnabled = !isNull account.imap && !notmuchEnabled;
maildirEnabled = !isNull account.maildir && !imapEnabled
&& !notmuchEnabled;
globalConfig = {
email = account.address;
@ -55,7 +59,7 @@ let
notmuchConfig = lib.optionalAttrs notmuchEnabled (compactAttrs {
backend = "notmuch";
notmuch-db-path = account.maildir.absPath;
notmuch-db-path = maildirBasePath;
});
smtpConfig = lib.optionalAttrs (!isNull account.smtp) (compactAttrs {

View File

@ -5,7 +5,7 @@ backend = "notmuch"
default = true
display-name = "H. M. Test"
email = "hm@example.com"
notmuch-db-path = "/home/hm-user/Maildir/hm@example.com"
notmuch-db-path = "/home/hm-user/Maildir"
sender = "sendmail"
sendmail-cmd = "msmtp"