{ pkgs, lib, config, ... }: let inherit (import ./const.nix) homedir gpgid; common = { alot.sendMailCommand = "${homedir}/bin/sendmail"; imap = { host = "bensima.com"; port = 993; }; smtp = { host = "bensima.com"; port = 587; tls = { enable = true; useStartTls = true; }; }; gpg = { key = gpgid; signByDefault = true; encryptByDefault = false; }; mbsync = { create = "both"; expunge = "both"; remove = "both"; extraConfig.channel = { MaxMessages = 1000; }; }; passwordCommand = "${pkgs.pass}/bin/pass ben@bensima.com"; msmtp.enable = true; mu.enable = true; }; in { accounts = { email = { maildirBasePath = "${homedir}/Mail"; accounts = { "ben@bensima.com" = common // { primary = true; realName = "Ben Sima"; address = "ben@bensima.com"; userName = "ben@bensima.com"; mbsync.enable = true; }; "dev@bensima.com" = common // { realName = "Ben Sima"; address = "dev@bensima.com"; userName = "dev@bensima.com"; mbsync.enable = false; }; }; }; }; programs = { notmuch = { enable = false; new.tags = [ "new" ]; maildir.synchronizeFlags = true; hooks = { postNew = '' ${pkgs.afew}/bin/afew --tag --new ${pkgs.afew}/bin/afew --tag tag:inbox ${pkgs.afew}/bin/afew --move-mail ''; }; extraConfig = { search = { exclude_tags = "deleted;spam;"; }; }; }; afew = { enable = false; extraConfig = builtins.readFile ./afew.ini; }; alot = { enable = false; extraConfig = '' theme = solarized_light ''; }; mbsync.enable = true; msmtp = { enable = true; }; mu.enable = true; }; services = { mbsync.enable = false; # just update manually in emacs mbsync.frequency = "hourly"; mbsync.postExec = "${config.programs.mu.package}/bin/mu index"; }; }