NixOS-Configs/home/common/mail.nix
2025-12-08 23:24:32 -06:00

92 lines
2.1 KiB
Nix

{
config,
pkgs,
...
}: {
accounts.email.accounts = {
gmail = {
primary = true;
realName = "Don Harper";
userName = "don";
address = "don@donharper.org";
# secondaries = ["duck@duckland.org" "duckunix@gmail.com"];
notmuch.enable = true;
imap = {
host = "imap.gmail.com";
authentication = "login";
};
signature = {
text = ''
Don Harper
'';
showSignature = "append";
};
};
};
programs.notmuch = {
enable = true;
new = {
tags = ["new" "unread" "inbox"];
ignore = [
".mbsyncstate"
".uidvalidity"
".mbsyncstate.journal"
".mbsyncstate.new"
".mbsyncstate.lock"
];
};
maildir.synchronizeFlags = true;
extraConfig = {
database = {
path = "/home/don/Mail";
hook_dir = "/home/don/.config/notmuch/hooks";
};
};
};
xdg.configFile."notmuch/hooks/post-new".source = ./files/notmuch/post-new;
xdg.configFile."neomutt/neomuttrc".source = ./files/neomutt/neomuttrc;
xdg.configFile."neomutt/mailcap".source = ./files/neomutt/mailcap;
home.file.".mbsyncrc".source = ./files/mbsyncrc;
home.file.".signature".text = ''
Don Harper
'';
systemd.user = {
timers.mbsync = {
Timer = {
OnUnitActiveSec = "5m";
AccuracySec = "1m";
};
Install = {WantedBy = ["timers.target"];};
};
services.mbsync = {
Service = {
ExecStart = "/home/don/bin/mbsync";
Environment = "PATH=/run/current-system/sw/bin";
Type = "oneshot";
};
Install = {WantedBy = ["mbsync.timer"];};
};
services."mbsync-all" = {
Service = {
ExecStart = "/home/don/bin/mbsync gmail";
Environment = "PATH=/run/current-system/sw/bin";
Type = "oneshot";
};
Install = {WantedBy = ["mbsync-all.timer"];};
};
timers."mbsync-all" = {
Timer = {
AccuracySec = "1m";
OnUnitActiveSec = "14m";
};
Install = {WantedBy = ["timers.target"];};
};
};
}