2021-04-01 18:37:55 +02:00
|
|
|
{ lib, pkgs, config, ... }:
|
2020-07-15 20:02:00 +02:00
|
|
|
|
|
|
|
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 "-";
|
2022-01-30 17:06:58 +01:00
|
|
|
in
|
|
|
|
stringAsChars subst name;
|
2020-07-15 20:02:00 +02:00
|
|
|
|
|
|
|
accounts = {
|
|
|
|
personal = {
|
2020-11-26 02:44:31 +01:00
|
|
|
primary = true;
|
2020-07-15 20:02:00 +02:00
|
|
|
address = "root@gws.fyi";
|
2024-08-15 03:20:50 +02:00
|
|
|
aliases = [ "aspen@gws.fyi" ];
|
2020-07-15 20:02:00 +02:00
|
|
|
passEntry = "root-gws-msmtp";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-01-30 17:06:58 +01:00
|
|
|
in
|
|
|
|
{
|
2022-09-26 19:33:05 +02:00
|
|
|
# 2022-09-26: workaround for home-manager defaulting to removed pkgs.gmailieer
|
|
|
|
# attribute, can likely be removed soon
|
|
|
|
programs.lieer.package = pkgs.lieer;
|
|
|
|
|
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
|
2024-02-12 04:00:40 +01:00
|
|
|
config.lib.depot.users.aspen.pkgs.notmuch-extract-patch
|
2020-03-29 18:49:51 +02:00
|
|
|
];
|
|
|
|
|
2022-01-30 17:06:58 +01:00
|
|
|
systemd.user.services = mapAttrs'
|
|
|
|
(name: account: {
|
|
|
|
name = escapeUnitName "lieer-${name}";
|
|
|
|
value.Service = {
|
|
|
|
ExecStart = mkForce "${pkgs.writeShellScript "sync-${name}" ''
|
2022-09-26 19:33:05 +02:00
|
|
|
${pkgs.lieer}/bin/gmi sync --path ~/mail/${name}
|
2021-04-01 18:37:55 +02:00
|
|
|
''}";
|
2024-02-19 21:20:10 +01:00
|
|
|
Environment =
|
|
|
|
"NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}";
|
2022-01-30 17:06:58 +01:00
|
|
|
};
|
2021-04-01 18:37:55 +02:00
|
|
|
|
2022-01-30 17:06:58 +01:00
|
|
|
})
|
|
|
|
accounts;
|
2020-07-15 20:02:00 +02:00
|
|
|
|
2020-03-29 18:49:51 +02:00
|
|
|
accounts.email.maildirBasePath = "mail";
|
2022-01-30 17:06:58 +01:00
|
|
|
accounts.email.accounts = mapAttrs
|
2024-02-19 21:20:10 +01:00
|
|
|
(_:
|
|
|
|
params@{ passEntry, ... }:
|
|
|
|
{
|
|
|
|
realName = "Aspen Smith";
|
|
|
|
passwordCommand = "pass ${passEntry}";
|
2020-07-15 20:02:00 +02:00
|
|
|
|
2024-02-19 21:20:10 +01:00
|
|
|
flavor = "gmail.com";
|
2020-07-15 20:02:00 +02:00
|
|
|
|
2024-02-19 21:20:10 +01:00
|
|
|
imapnotify = {
|
|
|
|
enable = true;
|
|
|
|
boxes = [ "Inbox" ];
|
|
|
|
};
|
2020-07-15 20:02:00 +02:00
|
|
|
|
2024-02-19 21:20:10 +01:00
|
|
|
gpg = {
|
|
|
|
key = "0F11A989879E8BBBFDC1E23644EF5B5E861C09A7";
|
|
|
|
signByDefault = true;
|
|
|
|
};
|
2020-03-29 18:49:51 +02:00
|
|
|
|
2024-02-19 21:20:10 +01:00
|
|
|
notmuch.enable = true;
|
|
|
|
lieer = {
|
2022-01-30 17:06:58 +01:00
|
|
|
enable = true;
|
2024-02-19 21:20:10 +01:00
|
|
|
sync = {
|
|
|
|
enable = true;
|
|
|
|
frequency = "*:*";
|
|
|
|
};
|
2022-01-30 17:06:58 +01:00
|
|
|
};
|
2024-02-19 21:20:10 +01:00
|
|
|
msmtp.enable = true;
|
|
|
|
} // builtins.removeAttrs params [ "passEntry" ])
|
2022-01-30 17:06:58 +01:00
|
|
|
accounts;
|
2020-03-29 18:49:51 +02:00
|
|
|
}
|