aboutsummaryrefslogtreecommitdiffstats
path: root/modules/communication/email/default.nix
blob: 969403d86f68ee028e970a9d3f38f22b6ed29520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  config,
  lib,
  ...
}:

let
  mailDir = "${config.home.homeDirectory}/.local/share/mail";
in
{
  options.communication.email = {
    enable = lib.mkEnableOption "Email suite (mbsync + notmuch)";

    accounts = lib.mkOption {
      type = lib.types.attrsOf lib.types.anything;
      default = { };
      description = "Email accounts. Each attribute name is an account identifier.";
    };
  };

  config = lib.mkIf config.communication.email.enable {
    programs.mbsync.enable = true;
    programs.notmuch.enable = true;

    accounts.email.maildirBasePath = mailDir;
    accounts.email.accounts = config.communication.email.accounts;

    home.sessionVariables.MAILDIR = mailDir;
  };
}