1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 19:46:05 +01:00
home-manager/modules/programs/neomutt-accounts.nix
Austin Horstman cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00

115 lines
2.8 KiB
Nix

{ config, lib, ... }:
let
inherit (lib) mkOption types;
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";
};
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";
};
};
};
in
{
options.notmuch.neomutt = {
enable = lib.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";
};
};
options.neomutt = {
enable = lib.mkEnableOption "NeoMutt";
sendMailCommand = mkOption {
type = types.nullOr types.str;
default = if config.msmtp.enable then "msmtpq --read-envelope-from --read-recipients" else null;
defaultText = lib.literalExpression ''
if config.msmtp.enable then
"msmtpq --read-envelope-from --read-recipients"
else
null
'';
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.
'';
};
showDefaultMailbox = mkOption {
type = types.bool;
default = true;
description = "Show the default mailbox (INBOX)";
};
mailboxName = mkOption {
type = types.nullOr types.str;
default = null;
example = "==== <mailbox-name> ===";
description = "Use a different name as mailbox name";
};
mailboxType = mkOption {
type = types.enum [
"maildir"
"imap"
];
default = "maildir";
example = "imap";
description = "Whether this account uses maildir folders or IMAP mailboxes";
};
extraMailboxes = mkOption {
type = with types; listOf (either str (submodule extraMailboxOptions));
default = [ ];
description = "List of extra mailboxes";
};
};
}