summaryrefslogtreecommitdiff
path: root/home/mail
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-04-17 11:52:48 -0600
committerAlejandro Soto <alejandro@34project.org>2025-04-19 11:10:00 -0600
commit94082eb5943f483dda4c1c71e50e57ee665bcddf (patch)
tree89613077cf5cd74ee7676dc21657dc81da8f20de /home/mail
parent6074fd428ca87e6964416e299a6d341acd1f97dc (diff)
home/pim: merge home/mail, home/syncthing
Diffstat (limited to 'home/mail')
-rw-r--r--home/mail/.gitignore1
-rw-r--r--home/mail/default.nix160
-rw-r--r--home/mail/sieve/mail.sieve1
3 files changed, 0 insertions, 162 deletions
diff --git a/home/mail/.gitignore b/home/mail/.gitignore
deleted file mode 100644
index 1d9a3a0..0000000
--- a/home/mail/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.svbin
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
- '';
- }
- )
- ];
- };
-}
diff --git a/home/mail/sieve/mail.sieve b/home/mail/sieve/mail.sieve
deleted file mode 100644
index 1bb3788..0000000
--- a/home/mail/sieve/mail.sieve
+++ /dev/null
@@ -1 +0,0 @@
-# This file has been lustrated.