omniflake/home/mail/default.nix
2026-02-12 15:28:48 +01:00

193 lines
5.4 KiB
Nix

{ config, pkgs, lib, ... }:
{
programs.msmtp.enable = true;
programs.mbsync.enable = true;
programs.notmuch.enable = true;
programs.neomutt = {
enable = true;
vimKeys = true;
extraConfig = builtins.readFile ./config.neomuttrc;
};
xdg.configFile."neomutt/bindings.neomuttrc".source = ./bindings.neomuttrc;
xdg.configFile."neomutt/mailcap".source = ./neomutt_mailcap;
accounts.email = {
maildirBasePath = "${config.xdg.dataHome}/mail";
accounts = {
gu = { name, ... }: {
primary = true;
address = "straube@geo.uni-frankfurt.de";
realName = "Till Straube";
imap.host = "imap.server.uni-frankfurt.de";
smtp.host = "smtpauth.rz.uni-frankfurt.de";
smtp.tls.useStartTls = true;
userName = "tstraube";
passwordCommand = "pass uni/hrz";
signature = {
text = ''
Dr. Till Straube (he/him)
Dept. of Human Geography
Goethe University Frankfurt
'';
showSignature = "append";
};
notmuch.enable = true;
mbsync = {
enable = true;
create = "maildir";
expunge = "both";
};
msmtp.enable = true;
neomutt = {
enable = true;
sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ name }";
extraConfig = ''
set my_account='${ name }'
set mbox='+Archive'
set my_nm_mbox='Archive'
set my_junk='+Spamverdacht'
set my_nm_junk='Spamverdacht'
set crypt_auto_smime
unset crypt_auto_pgp
set crypt_autosign
set crypt_replyencrypt
set crypt_replysign
set crypt_replysignencrypted
set crypt_verify_sig
set smime_sign_as = "f1355556.0"
set pgp_default_key = ""
unalternates *
alternates ^straube@em.uni-frankfurt.de$ \
^tstraube@em.uni-frankfurt.de$ \
^tstraube@rz.uni-frankfurt.de$ \
^tstraube@uni-frankfurt.de$
unset reverse_name
set my_signature = ${ pkgs.writeText "signature.txt" config.accounts.email.accounts.gu.signature.text }
color status blue default
'';
};
};
t9e = { name, ... }: {
address = "till.straube@t9e.me";
realName = "Till Straube";
imap.host = "arielle.ktiu.net";
smtp.host = "arielle.ktiu.net";
smtp.tls.useStartTls = true;
userName = "till.straube@t9e.me";
signature.text = ''
Till Straube (he/him)
PGP key: https://keys.openpgp.org/search?q=till.straube@t9e.me
'';
gpg.signByDefault = true;
notmuch.enable = true;
neomutt = {
enable = true;
sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ name }";
extraConfig = ''
set my_mbsync_account='${ name }'
set mbox='+Archive'
set my_nm_mbox='Archive'
set my_junk='+Junk'
set my_nm_junk='Junk'
set crypt_auto_pgp
unset crypt_auto_smime
unalternates *
alternates @t9e.me$ @ktiu.net$
set reverse_name
set my_signature = ${ pkgs.writeText "signature.txt" config.accounts.email.accounts.t9e.signature.text }
color status green default
'';
};
mbsync = {
enable = true;
create = "maildir";
expunge = "both";
};
msmtp = {
enable = true;
extraConfig.port = "587";
};
passwordCommand = "pass accounts/ktiu-imap";
};
ksh = { name, ...}: {
address = "kein_schlussstrich_hessen@systemli.org";
realName = "Kein Schlussstrich Hessen";
imap.host = "mail.systemli.org";
smtp.host = "mail.systemli.org";
smtp.tls.useStartTls = true;
userName = "kein_schlussstrich_hessen@systemli.org";
signature.text = ''
Kein Schlussstrich Hessen
PGP Key: https://keys.openpgp.org/search?q=kein_schlussstrich_hessen@systemli.org
'';
signature.showSignature = "append";
gpg.signByDefault = true;
notmuch.enable = true;
neomutt = {
enable = true;
sendMailCommand = "${lib.getExe pkgs.msmtp} -a ${ name }";
extraConfig = ''
set my_mbsync_account='${ name }'
set mbox='+Erledigt'
set my_nm_mbox='Erledigt'
set my_junk='+Junk'
set my_nm_junk='Junk'
set crypt_auto_pgp
unset crypt_auto_smime
unalternates *
set reverse_name
set my_signature = ${
pkgs.writeText
"signature.txt"
config.accounts.email.accounts.ksh.signature.text
}
color status cyan default
'';
};
mbsync = {
enable = true;
create = "maildir";
expunge = "both";
};
msmtp.enable = true;
passwordCommand = "pass ksh/systemli";
};
};
};
programs.neovim.plugins = with pkgs.vimPlugins; [
{
plugin = vim-pathogen;
config = "execute pathogen#infect()";
}
];
xdg.configFile."nvim/bundle/woof-vim" = {
source = config.lib.file.mkOutOfStoreSymlink "/home/till/devel/woof-vim";
recursive = true;
};
}