From 4b246b7375879d3c609014bf03cacb40a5f90dc6 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Tue, 29 Apr 2025 12:29:28 +0800 Subject: [PATCH] users/foo-dogsquared/programs/email: add Himalaya and aerc config --- .../foo-dogsquared/modules/programs/email.nix | 81 ++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/configs/home-manager/foo-dogsquared/modules/programs/email.nix b/configs/home-manager/foo-dogsquared/modules/programs/email.nix index 21500365..8d0afb29 100644 --- a/configs/home-manager/foo-dogsquared/modules/programs/email.nix +++ b/configs/home-manager/foo-dogsquared/modules/programs/email.nix @@ -29,13 +29,17 @@ in { enable = lib.mkEnableOption "foo-dogsquared's email setup"; thunderbird.enable = lib.mkEnableOption "foo-dogsquared's Thunderbird configuration"; + himalaya.enable = + lib.mkEnableOption "foo-dogsquared's email client on the command line"; + aerc.enable = + lib.mkEnableOption "foo-dogsquared's TUI email client"; }; config = lib.mkIf cfg.enable (lib.mkMerge [ { accounts.email.accounts = { # TODO: Enable offlineimap once maildir support is stable in Thunderbird. - personal = lib.mkMerge [ + work = lib.mkMerge [ (mkEmailAccount { name = "foodogsquared"; }) { @@ -57,10 +61,22 @@ in { } ]; + personal = lib.mkMerge [ + (mkEmailAccount { name = "__personal__"; }) + + { + realName = "Gabriel Arazas"; + signature = { + delimiter = "--<----<---->---->--"; + text = "HEYHEYComeOnOverAndHaveFunWithSomeCRAZYTAXI"; + }; + } + ]; + postmaster = mkEmailAccount { name = "postmaster"; }; webmaster = mkEmailAccount { name = "webmaster"; }; - old_personal = { + old_work = { address = "foo.dogsquared@gmail.com"; realName = config.accounts.email.accounts.personal.realName; userName = "foo.dogsquared@gmail.com"; @@ -156,5 +172,66 @@ in { "thunderbird.vacuum" ]; }) + + (lib.mkIf cfg.himalaya.enable { + accounts.email.accounts = + let + enabledEmails = [ + "personal" + "work" + "old_work" + ]; + + mkEmailAccount = name: { himalaya.enable = true; }; + in + lib.genAttrs enabledEmails mkEmailAccount; + + programs.himalaya = { + enable = true; + settings = { + signature-delim = "-- \n"; + downloads-dir = config.xdg.userDirs.download; + }; + }; + }) + + (lib.mkIf cfg.aerc.enable { + accounts.email.accounts = + let + enabledEmails = [ + "personal" + "work" + "old_work" + ]; + + mkEmailAccount = name: { aerc.enable = true; }; + in + lib.genAttrs enabledEmails mkEmailAccount; + + programs.aerc = { + enable = true; + extraConfig = { + general = { + default-save-path = config.xdg.userDirs.download; + unsafe-accounts-conf = false; + enable-osc8 = userCfg.setups.development.enable; + }; + + viewer.pager = config.systemd.user.sessionVariables.PAGER; + + ui = { + fuzzy-complete = true; + empty-subject = "[EMPTY SUBJECT]"; + empty-message = "[EMPTY MESSAGE]"; + mouse-enabled = true; + }; + + compose = { + empty-subject-warning = true; + focus-body = true; + }; + }; + }; + }) ]); }