tvl-depot/users/glittershark/system/home/modules/email.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

88 lines
2 KiB
Nix
Raw Normal View History

{ lib, pkgs, ... }:
with lib;
let
# from home-manager/modules/services/lieer.nix
escapeUnitName = name:
let
good = upperChars ++ lowerChars ++ stringToCharacters "0123456789-_";
subst = c: if any (x: x == c) good then c else "-";
in stringAsChars subst name;
accounts = {
work = {
primary = true;
address = "griffin@urbint.com";
aliases = [ "grfn@urbint.com" ];
passEntry = "urbint/msmtp-app-password";
};
personal = {
address = "root@gws.fyi";
passEntry = "root-gws-msmtp";
};
};
in {
2020-03-29 18:49:51 +02:00
programs.lieer.enable = true;
programs.notmuch.enable = true;
services.lieer.enable = true;
programs.msmtp.enable = true;
home.packages = with pkgs; [
mu
2020-03-31 23:11:32 +02:00
msmtp
2020-03-29 18:49:51 +02:00
];
nixpkgs.overlays = [(self: super: {
notifymuch = self.python3Packages.callPackage ../../pkgs/notifymuch.nix {};
})];
systemd.user.services = mapAttrs' (name: account: {
name = escapeUnitName "lieer-${name}";
value.Service.ExecStart = mkForce "${pkgs.writeShellScript "sync-${name}" ''
${pkgs.gmailieer}/bin/gmi sync
${pkgs.notifymuch}/bin/notifymuch
''}";
}) accounts;
xdg.configFile."notifymuch/notifymuch.cfg".text = generators.toINI {} {
notifymuch = {
query = "is:unread and is:important";
mail_client = "";
recency_interval_hours = "48";
hidden_tags = "inbox unread attachment replied sent encrypted signed";
};
};
2020-03-29 18:49:51 +02:00
accounts.email.maildirBasePath = "mail";
accounts.email.accounts = mapAttrs (_: params@{ passEntry, ... }: {
realName = "Griffin Smith";
passwordCommand = "pass ${passEntry}";
flavor = "gmail.com";
imapnotify = {
enable = true;
boxes = [ "Inbox" ];
};
gpg = {
key = "0F11A989879E8BBBFDC1E23644EF5B5E861C09A7";
signByDefault = true;
};
2020-03-29 18:49:51 +02:00
notmuch.enable = true;
lieer = {
enable = true;
sync = {
enable = true;
frequency = "*:*";
2020-03-29 18:49:51 +02:00
};
};
msmtp.enable = true;
} // builtins.removeAttrs params ["passEntry"]) accounts;
2020-03-29 18:49:51 +02:00
}