diff options
| author | Alejandro Soto <alejandro@34project.org> | 2025-04-17 11:52:48 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2025-04-19 11:10:00 -0600 |
| commit | 94082eb5943f483dda4c1c71e50e57ee665bcddf (patch) | |
| tree | 89613077cf5cd74ee7676dc21657dc81da8f20de /home/mail/default.nix | |
| parent | 6074fd428ca87e6964416e299a6d341acd1f97dc (diff) | |
home/pim: merge home/mail, home/syncthing
Diffstat (limited to 'home/mail/default.nix')
| -rw-r--r-- | home/mail/default.nix | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/home/mail/default.nix b/home/mail/default.nix deleted file mode 100644 index f070b2f..0000000 --- a/home/mail/default.nix +++ /dev/null @@ -1,160 +0,0 @@ -{ config, lib, pkgs, ... }: -with lib; let - cfg = config.local.mail; -in -{ - options.local.mail = with types; { - enable = mkEnableOption "mail"; - - address = mkOption { - type = str; - }; - - realName = mkOption { - type = str; - }; - - sieve.enable = mkEnableOption "sieve filter"; - }; - - config = mkIf cfg.enable { - accounts.email = { - maildirBasePath = "mail"; - - accounts = { - google = { - address = "alejandrosotochacon@gmail.com"; - userName = "alejandrosotochacon"; # Ver salida de: msmtp --configure alejandrosotochacon@gmail.com - inherit (config.local.mail) realName; - - maildir = null; - - msmtp.enable = true; - - passwordCommand = "pass show `hostname -s`/psk/gmail"; - - smtp = { - host = "smtp.gmail.com"; - - tls = { - enable = true; - useStartTls = true; - }; - }; - }; - - local = { - address = "${config.local.mail.address}@34project.org"; - userName = "${config.local.mail.address}@34project.org"; - inherit (config.local.mail) realName; - - primary = true; - - # ${maildirBasePath}/${maildir.path} - maildir.path = ""; - folders.inbox = ""; - - msmtp = { - enable = true; - - extraConfig = { - # con nixpkgs#gnutls: p11tool --login --list-privkeys - auth = "off"; - tls_key_file = "pkcs11:serial=26902048;id=%01"; - tls_cert_file = "${config.local.pki.byPath."root.mail.larsa".cert}"; - - passwordeval = "${pkgs.writeShellScript "read-yk-piv-pin" '' - echo -e 'GETPIN\n' | \ - ${getExe config.services.gpg-agent.pinentryPackage} | \ - sed -nr '0,/^D (.+)/s//\1/p' - ''}"; - }; - }; - - neomutt.enable = true; - - imap = { - host = "badhost"; # Evaluación de home falla sin esto, revisar si ya lo arreglaron - - tls = { - enable = false; - useStartTls = false; - }; - }; - - smtp = { - host = "smtp.34project.org"; - - tls = { - enable = true; - useStartTls = false; - }; - }; - }; - }; - }; - - programs = { - msmtp.enable = true; - - neomutt = { - enable = true; - vimKeys = true; - - settings = { - record = "+.sent"; - postponed = "+.drafts"; - - use_threads = "flat"; - index_format = "'%4C %Z %<[y?%<[m?%<[d?%[%H:%M ]&%[%a %d]>&%[%b %d]>&%[%m/%y ]> %-15.15L (%?l?%4l&%4c?) %s'"; - }; - - extraConfig = '' - auto_view text/html - alternative_order text/plain text/enriched text/html - - reply-hook '~t ^alejandrosotochacon@gmail\.com$' 'my_hdr From: Alejandro Soto <alejandrosotochacon@gmail.com>' - reply-hook '~t ^soto@exdev\.io$' 'my_hdr From: Alejandro Soto <soto@exdev.io>' - - macro compose '\3' "<edit-from><kill-line>Alejandro Soto \<alejandro@34project.org\><enter>" - macro compose '\g' "<edit-from><kill-line>Alejandro Soto \<alejandrosotochacon@gmail.com\><enter>" - macro compose '\x' "<edit-from><kill-line>Alejandro Soto \<soto@exdev.io\><enter>" - ''; - }; - }; - - home = mkMerge - [ - ({ - file.".mailcap".text = '' - text/html; ${pkgs.luakit}/bin/luakit '%s' &; test=test -n "$DISPLAY"; needsterminal; - text/html; ${pkgs.lynx}/bin/lynx -dump %s; nametemplate=%s.html; copiousoutput; - ''; - }) - - # .dovecot.sieve tiene que ser un symlink tal que el readlink -f de su - # dirname (no del symlink en sí) sea la misma cadena que el readlink -f - # de ~/sieve. Dovecot verifica eso y tira "Invalid/unknown path to - # storage" si este check frágil falla. Ni siquiera - # mkOutOfStoreSymlink funciona. Ver código fuente de Dovecot: - # pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c - ( - let - sieve = pkgs.runCommandNoCCLocal "sieve" { src = ./sieve; } '' - cp -r $src $out - chmod -R u+w $out - find $out -name '*.sieve' -exec ${pkgs.dovecot_pigeonhole}/bin/sievec -c /dev/null {} \; - ''; - in - mkIf config.local.mail.sieve.enable { - file."sieve".source = sieve; - - activation.sieve = hm.dag.entryBetween [ "linkGeneration" ] [ "writeBoundary" ] '' - $DRY_RUN_CMD ln -Tsf ${sieve}/mail.sieve .dovecot.sieve - $DRY_RUN_CMD ln -Tsf ${sieve}/mail.svbin .dovecot.svbin - ''; - } - ) - ]; - }; -} |
