2020-01-21 23:52:01 +00:00
|
|
|
{ config, lib, ... }:
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
2021-08-19 04:33:53 +00:00
|
|
|
let
|
|
|
|
extraMailboxOptions = {
|
|
|
|
options = {
|
|
|
|
mailbox = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
example = "Sent";
|
|
|
|
description = "Name of mailbox folder to be included";
|
|
|
|
};
|
|
|
|
|
|
|
|
name = mkOption {
|
|
|
|
type = types.nullOr types.str;
|
|
|
|
example = "Junk";
|
|
|
|
default = null;
|
|
|
|
description = "Name to display";
|
|
|
|
};
|
2024-02-11 17:22:37 +00:00
|
|
|
|
|
|
|
type = mkOption {
|
|
|
|
type = types.nullOr (types.enum [ "maildir" "imap" ]);
|
|
|
|
example = "imap";
|
|
|
|
default = null;
|
|
|
|
description =
|
|
|
|
"Whether this mailbox is a maildir folder or an IMAP mailbox";
|
|
|
|
};
|
2021-08-19 04:33:53 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
in {
|
2023-04-24 14:41:29 +00:00
|
|
|
options.notmuch.neomutt = {
|
|
|
|
enable = mkEnableOption "Notmuch support in NeoMutt" // { default = true; };
|
|
|
|
|
|
|
|
virtualMailboxes = mkOption {
|
|
|
|
type = types.listOf (types.submodule ./notmuch-virtual-mailbox.nix);
|
|
|
|
example = [{
|
|
|
|
name = "My INBOX";
|
|
|
|
query = "tag:inbox";
|
|
|
|
}];
|
|
|
|
default = [{
|
|
|
|
name = "My INBOX";
|
|
|
|
query = "tag:inbox";
|
|
|
|
}];
|
|
|
|
description = "List of virtual mailboxes using Notmuch queries";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2020-01-21 23:52:01 +00:00
|
|
|
options.neomutt = {
|
|
|
|
enable = mkEnableOption "NeoMutt";
|
|
|
|
|
|
|
|
sendMailCommand = mkOption {
|
|
|
|
type = types.nullOr types.str;
|
2020-02-16 22:08:37 +00:00
|
|
|
default = if config.msmtp.enable then
|
|
|
|
"msmtpq --read-envelope-from --read-recipients"
|
|
|
|
else
|
|
|
|
null;
|
2021-10-09 09:14:08 +00:00
|
|
|
defaultText = literalExpression ''
|
2020-02-16 22:08:37 +00:00
|
|
|
if config.msmtp.enable then
|
|
|
|
"msmtpq --read-envelope-from --read-recipients"
|
|
|
|
else
|
|
|
|
null
|
|
|
|
'';
|
2020-01-21 23:52:01 +00:00
|
|
|
example = "msmtpq --read-envelope-from --read-recipients";
|
|
|
|
description = ''
|
|
|
|
Command to send a mail. If not set, neomutt will be in charge of sending mails.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
extraConfig = mkOption {
|
|
|
|
type = types.lines;
|
|
|
|
default = "";
|
|
|
|
example = "color status cyan default";
|
|
|
|
description = ''
|
|
|
|
Extra lines to add to the folder hook for this account.
|
|
|
|
'';
|
|
|
|
};
|
2021-08-19 04:33:53 +00:00
|
|
|
|
2022-08-13 23:37:46 +00:00
|
|
|
showDefaultMailbox = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
default = true;
|
|
|
|
description = "Show the default mailbox (INBOX)";
|
|
|
|
};
|
|
|
|
|
2021-08-19 04:33:53 +00:00
|
|
|
mailboxName = mkOption {
|
|
|
|
type = types.nullOr types.str;
|
|
|
|
default = null;
|
|
|
|
example = "==== <mailbox-name> ===";
|
|
|
|
description = "Use a different name as mailbox name";
|
|
|
|
};
|
|
|
|
|
2024-02-11 17:22:37 +00:00
|
|
|
mailboxType = mkOption {
|
|
|
|
type = types.enum [ "maildir" "imap" ];
|
|
|
|
default = "maildir";
|
|
|
|
example = "imap";
|
|
|
|
description =
|
|
|
|
"Whether this account uses maildir folders or IMAP mailboxes";
|
|
|
|
};
|
|
|
|
|
2021-08-19 04:33:53 +00:00
|
|
|
extraMailboxes = mkOption {
|
|
|
|
type = with types; listOf (either str (submodule extraMailboxOptions));
|
|
|
|
default = [ ];
|
|
|
|
description = "List of extra mailboxes";
|
|
|
|
};
|
2020-01-21 23:52:01 +00:00
|
|
|
};
|
|
|
|
}
|