blob: 158f0e0fdb64ac9bc15b9a871931a96910968854 [file] [log] [blame]
Skyler Grey8753c522022-09-02 00:04:02 +01001{
2 pkgs,
3 config,
4 username,
5 home-manager-unstable,
6 home,
Skyler Grey3c388982022-09-11 00:41:10 +01007 lib,
Skyler Grey8753c522022-09-02 00:04:02 +01008 ...
9}: {
10 home = {
11 imports = ["${home-manager-unstable}/modules/programs/aerc.nix"];
12 accounts.email = {
13 maildirBasePath = "Mail";
14 accounts = {
15 collabora = {
16 astroid = {
17 enable = true;
18 sendMailCommand = "${pkgs.msmtp}/bin/msmtpq --read-envelope-from --read-recipients";
19 };
20 msmtp.enable = true;
21 aerc = {
22 enable = true;
23 extraAccounts = {
24 source = "notmuch://~/${home.accounts.email.maildirBasePath}/collabora";
25 };
26 };
27 himalaya.enable = true;
28 neomutt.enable = true;
29 mbsync = {
30 enable = true;
31 create = "maildir";
32 };
33 notmuch.enable = true;
34 address = "skyler.grey@collabora.com";
35 imap = {
36 host = "mail.collabora.com";
37 port = 143;
38 tls.useStartTls = true;
39 };
40 smtp = {
41 host = "mail.collabora.com";
42 port = 587;
43 tls.useStartTls = true;
44 };
45 userName = "skyler";
46 realName = "Skyler Grey";
47 primary = true;
48 signature = {
49 showSignature = "append";
50 text = ''
51 Miss Skyler Grey
52 Intern
53
54 Collabora Ltd.
55 Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
56 Registered in England & Wales, no. 5513718'';
57 };
58 passwordCommand = "${pkgs.coreutils}/bin/cat ${config.sops.secrets.collaboraPassword.path}";
59 };
60 };
61 };
62 programs.astroid.enable = true;
63 programs.msmtp.enable = true;
64 services.mbsync = {
65 enable = true;
66 postExec = "${pkgs.notmuch}/bin/notmuch new";
67 };
68 programs.mbsync.enable = true;
69 programs.himalaya.enable = true;
70 programs.neomutt = {
71 enable = true;
72 sidebar.enable = true;
73 settings = {
74 preferred_languages = "en";
75 };
76 extraConfig = ''
77 auto_view text/html
78 '';
79 };
80 programs.notmuch.enable = true;
81 programs.aerc = {
82 enable = true;
83 extraConfig.general.unsafe-accounts-conf = true;
Skyler Grey3c388982022-09-11 00:41:10 +010084 extraBinds = lib.pipe ./email/aerc-default-binds.toml [builtins.readFile builtins.fromTOML];
85 extraConfig.filters = let
86 defaultFilters = lib.pipe "${pkgs.aerc}/share/aerc/filters" [
87 builtins.readDir
88 builtins.attrNames
89 (builtins.map (f: {
90 name = f;
91 value = "${pkgs.aerc}/share/aerc/filters/${f}";
92 }))
93 builtins.listToAttrs
94 ];
Skyler Greya9addb32022-10-31 00:22:55 +000095 in
96 with defaultFilters; {
97 "text/plain" = colorize;
98 "text/calendar" = defaultFilters."show-ics-details.py";
99 "text/html" = html;
100 };
Skyler Grey8753c522022-09-02 00:04:02 +0100101 };
102 home.packages = with pkgs; [lynx];
103 home.file.".mailcap".text = ''
104 text/html; ${pkgs.lynx}/bin/lynx -force_html -dump %s; copiousoutput
105 image/*; ${pkgs.kitty}/bin/kitty +kitten icat && read -r -n1 key
106 '';
107 home.shellAliases = {
108 mutt = "${pkgs.neomutt}/bin/neomutt";
109 };
110 };
111 config = {
112 sops.secrets.collaboraPassword = {
113 mode = "0400";
114 owner = config.users.users.${username}.name;
115 group = config.users.users.nobody.group;
116 };
117 environment.persistence."/nix/persist".users.${username}.directories = ["Mail"];
118 };
119}