{ 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"];}; }; }; }