blob: a6fe8ff7682d4c95fc65a0db60bf14489173b420 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
{ config, lib, pkgs, ... }:
with lib; {
config = mkIf (!config.home.isolation.active) {
accounts.email = {
maildirBasePath = "mail";
accounts.local = {
address = "alejandro@34project.org";
userName = "alejandro@34project.org";
realName = "Alejandro Soto";
primary = true;
# ${maildirBasePath}/${maildir.path}
maildir.path = "";
folders.inbox = "";
msmtp.enable = true;
neomutt.enable = true;
smtp = {
host = "smtp.34project.org";
tls = {
enable = true;
useStartTls = true;
};
};
};
};
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'";
};
};
};
# .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
home =
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
{
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
'';
};
};
}
|