mirror of
https://git.sr.ht/~rouven/nixos-config
synced 2024-11-15 13:23:11 +01:00
314 lines
8.7 KiB
Nix
314 lines
8.7 KiB
Nix
{ pkgs, lib, ... }:
|
|
let
|
|
gpg-default-key = "116987A8DD3F78FF8601BF4DB95E8FE6B11C4D09";
|
|
in
|
|
{
|
|
sops.secrets = {
|
|
"email/rfive" = { };
|
|
"email/tu-dresden" = { };
|
|
"email/ifsr" = { };
|
|
"email/google" = { };
|
|
};
|
|
home.packages = with pkgs; [
|
|
imv
|
|
w3m
|
|
urlview
|
|
];
|
|
services.mbsync.enable = true;
|
|
systemd.user.services.mbsync.Unit.After = [ "sops-nix.service" ];
|
|
programs = {
|
|
neomutt = {
|
|
enable = true;
|
|
sidebar.enable = true;
|
|
checkStatsInterval = 30;
|
|
extraConfig = ''
|
|
bind pager <Space> noop
|
|
bind index,pager \Cp sidebar-prev
|
|
# Move the highlight to the next mailbox
|
|
bind index,pager \Cn sidebar-next
|
|
# Open the highlighted mailbox
|
|
bind index,pager <space><return> sidebar-open
|
|
set mailcap_path = ${./mailcap}
|
|
source ${./vim-keys.muttrc}
|
|
source ${./dracula.muttrc}
|
|
source ${./powerline.muttrc}
|
|
'';
|
|
};
|
|
mbsync.enable = true;
|
|
msmtp.enable = true;
|
|
};
|
|
accounts.email.accounts = {
|
|
"rouven@rfive.de" = rec {
|
|
address = "rouven@rfive.de";
|
|
gpg.key = gpg-default-key;
|
|
realName = "Rouven Seifert";
|
|
userName = address;
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat $XDG_RUNTIME_DIR/secrets/email/rfive";
|
|
imap = {
|
|
host = "falkenstein.vpn.rfive.de";
|
|
port = 993;
|
|
};
|
|
smtp = {
|
|
host = "falkenstein.vpn.rfive.de";
|
|
port = 587;
|
|
tls.useStartTls = true;
|
|
};
|
|
msmtp.enable = true;
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
expunge = "both";
|
|
groups.rfive = {
|
|
channels.inbox = {
|
|
nearPattern = "INBOX";
|
|
farPattern = "INBOX";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.trash = {
|
|
nearPattern = "Trash";
|
|
farPattern = "Trash";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.sent = {
|
|
nearPattern = "Sent";
|
|
farPattern = "Sent";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.junk = {
|
|
nearPattern = "Spam";
|
|
farPattern = "Spam";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.drafts = {
|
|
nearPattern = "Drafts";
|
|
farPattern = "Drafts";
|
|
extraConfig.Create = "near";
|
|
};
|
|
};
|
|
extraConfig = {
|
|
account = {
|
|
AuthMechs = "Login";
|
|
};
|
|
};
|
|
};
|
|
neomutt = let c = mbsync.groups.rfive.channels; in
|
|
{
|
|
enable = true;
|
|
mailboxName = " rfive.de";
|
|
extraMailboxes = lib.lists.forEach [ c.sent c.trash c.junk c.drafts ] (x: x.nearPattern);
|
|
};
|
|
};
|
|
"TU-Dresden" = rec {
|
|
address = "rouven.seifert@mailbox.tu-dresden.de";
|
|
gpg.key = gpg-default-key;
|
|
realName = "Rouven Seifert";
|
|
userName = "rose159e";
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat $XDG_RUNTIME_DIR/secrets/email/tu-dresden";
|
|
imap = {
|
|
host = "msx.tu-dresden.de";
|
|
port = 993;
|
|
};
|
|
smtp = {
|
|
host = "msx.tu-dresden.de";
|
|
port = 587;
|
|
tls.useStartTls = true;
|
|
};
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
expunge = "both";
|
|
groups.tud = {
|
|
channels.inbox = {
|
|
nearPattern = "INBOX";
|
|
farPattern = "INBOX";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.opal = {
|
|
nearPattern = "Opal";
|
|
farPattern = "Opal";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.trash = {
|
|
nearPattern = "Trash";
|
|
farPattern = "Gel&APY-schte Elemente";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.sent = {
|
|
nearPattern = "Sent";
|
|
farPattern = "Gesendete Elemente";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.junk = {
|
|
nearPattern = "Junk";
|
|
farPattern = "Junk-E-Mail";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.drafts = {
|
|
nearPattern = "Drafts";
|
|
farPattern = "Entw&APw-rfe";
|
|
extraConfig.Create = "near";
|
|
};
|
|
};
|
|
extraConfig = {
|
|
account = {
|
|
AuthMechs = "Login";
|
|
};
|
|
};
|
|
};
|
|
msmtp.enable = true;
|
|
neomutt = let c = mbsync.groups.tud.channels; in
|
|
{
|
|
enable = true;
|
|
mailboxName = " TU Dresden";
|
|
extraMailboxes = lib.lists.forEach [ c.opal c.sent c.trash c.junk c.drafts ] (x: x.nearPattern);
|
|
};
|
|
};
|
|
"iFSR" = rec {
|
|
address = "rouven.seifert@ifsr.de";
|
|
signature = {
|
|
showSignature = "append";
|
|
text = ''
|
|
Rouven Seifert
|
|
|
|
Fachschaftsrat Informatik TU Dresden
|
|
Fakultät Informatik
|
|
Nöthnitzer Str. 46, 01187 Dresden
|
|
'';
|
|
};
|
|
primary = true;
|
|
gpg.key = gpg-default-key;
|
|
realName = "Rouven Seifert";
|
|
userName = "rouven.seifert";
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat $XDG_RUNTIME_DIR/secrets/email/ifsr";
|
|
imap = {
|
|
host = "mail.ifsr.de";
|
|
port = 143;
|
|
tls.useStartTls = true;
|
|
};
|
|
smtp = {
|
|
host = "mail.ifsr.de";
|
|
port = 587;
|
|
tls.useStartTls = true;
|
|
};
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
expunge = "both";
|
|
groups.ifsr = {
|
|
channels.inbox = {
|
|
nearPattern = "INBOX";
|
|
farPattern = "INBOX";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.admin = {
|
|
nearPattern = "Admin spam";
|
|
farPattern = "Admin spam";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.trash = {
|
|
nearPattern = "Trash";
|
|
farPattern = "Trash";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.sent = {
|
|
nearPattern = "Sent";
|
|
farPattern = "Sent";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.junk = {
|
|
nearPattern = "Junk";
|
|
farPattern = "Public/Spam";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.drafts = {
|
|
nearPattern = "Drafts";
|
|
farPattern = "Drafts";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.spamtrain = {
|
|
nearPattern = "Spamtrain";
|
|
farPattern = "Spamtrain";
|
|
extraConfig.Create = "near";
|
|
};
|
|
};
|
|
extraConfig = {
|
|
account = {
|
|
AuthMechs = "Login";
|
|
};
|
|
};
|
|
};
|
|
msmtp.enable = true;
|
|
neomutt = let c = mbsync.groups.ifsr.channels; in
|
|
{
|
|
enable = true;
|
|
mailboxName = " iFSR";
|
|
extraMailboxes = lib.lists.forEach [ c.admin c.sent c.spamtrain c.trash c.junk c.drafts ] (x: x.nearPattern);
|
|
};
|
|
};
|
|
"gmail" = rec {
|
|
address = "seifertrouven@gmail.com";
|
|
realName = "Rouven Seifert";
|
|
userName = address;
|
|
passwordCommand = "${pkgs.coreutils}/bin/cat $XDG_RUNTIME_DIR/secrets/email/google";
|
|
imap = {
|
|
host = "imap.gmail.com";
|
|
port = 993;
|
|
};
|
|
smtp = {
|
|
host = "smtp.gmail.com";
|
|
port = 465;
|
|
};
|
|
mbsync = {
|
|
enable = true;
|
|
create = "maildir";
|
|
expunge = "both";
|
|
groups.gmail = {
|
|
channels.inbox = {
|
|
nearPattern = "INBOX";
|
|
farPattern = "INBOX";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.trash = {
|
|
nearPattern = "Trash";
|
|
farPattern = "[Gmail]/Papierkorb";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.sent = {
|
|
nearPattern = "Sent";
|
|
farPattern = "[Gmail]/Gesendet";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.junk = {
|
|
nearPattern = "Junk";
|
|
farPattern = "[Gmail]/Spam";
|
|
extraConfig.Create = "near";
|
|
};
|
|
channels.drafts = {
|
|
nearPattern = "Drafts";
|
|
farPattern = "[Gmail]/Entw&APw-rfe";
|
|
extraConfig.Create = "near";
|
|
};
|
|
};
|
|
extraConfig = {
|
|
account = {
|
|
AuthMechs = "Login";
|
|
};
|
|
};
|
|
};
|
|
msmtp.enable = true;
|
|
neomutt = let c = mbsync.groups.gmail.channels; in
|
|
{
|
|
enable = true;
|
|
mailboxName = " gmail";
|
|
extraMailboxes = lib.lists.forEach [ c.sent c.trash c.junk c.drafts ] (x: x.nearPattern);
|
|
extraConfig = ''
|
|
set copy = no
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
home.file.".urlview".text = ''
|
|
COMMAND ${pkgs.xdg-utils}/bin/xdg-open %s &> /dev/null
|
|
'';
|
|
}
|