73 lines
1.9 KiB
Nix
73 lines
1.9 KiB
Nix
|
{ lib
|
||
|
, config
|
||
|
, pkgs
|
||
|
, ...
|
||
|
}:
|
||
|
|
||
|
with lib;
|
||
|
let
|
||
|
cfg = config.my.profiles.personal;
|
||
|
|
||
|
filterHtml = pkgs.writeScript "filter_html" ''
|
||
|
${lib.getExe pkgs.w3m} -T text/html \
|
||
|
-cols $(tput cols) \
|
||
|
-dump \
|
||
|
-o display_image=false \
|
||
|
-o display_link_number=true "$@"
|
||
|
'';
|
||
|
in
|
||
|
{
|
||
|
options.my.profiles.personal.mail = mkEnableOption "personal email";
|
||
|
|
||
|
config = mkIf cfg.mail {
|
||
|
home-manager.users.moritz = {
|
||
|
home.packages = with pkgs; [
|
||
|
w3m
|
||
|
];
|
||
|
programs.aerc = {
|
||
|
enable = true;
|
||
|
extraConfig = {
|
||
|
general.unsafe-accounts-conf = true;
|
||
|
viewer = {
|
||
|
alternatives = "text/plain,text/html";
|
||
|
header-layout = "From,To,Cc,Bcc,Date,Subject";
|
||
|
};
|
||
|
filters = {
|
||
|
"text/html" = "${filterHtml}";
|
||
|
"text/plain" = "colorize";
|
||
|
"text/calendar" = "calendar";
|
||
|
"message/delivery-status" = "colorize";
|
||
|
"message/rfc822" = "colorize";
|
||
|
".headers" = "colorize";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
services.mbsync.enable = true;
|
||
|
services.imapnotify.enable = true;
|
||
|
programs.mbsync.enable = true;
|
||
|
accounts.email.accounts.personal = {
|
||
|
imapnotify.enable = true;
|
||
|
imapnotify.boxes = [ "Inbox" ];
|
||
|
imapnotify.onNotify = "systemctl start --user mbsync.service";
|
||
|
primary = true;
|
||
|
address = "mail@moritzboeh.me";
|
||
|
userName = "mail@moritzboeh.me";
|
||
|
aerc.enable = true;
|
||
|
gpg.signByDefault = true;
|
||
|
gpg.key = "0xE4F362A3F5C338A0";
|
||
|
imap.host = "mail.your-server.de";
|
||
|
smtp.host = "mail.your-server.de";
|
||
|
realName = "Moritz Böhme";
|
||
|
mbsync.enable = true;
|
||
|
mbsync.create = "both";
|
||
|
passwordCommand = "cat /run/agenix/email";
|
||
|
};
|
||
|
accounts.email.maildirBasePath = "Documents/Mail";
|
||
|
};
|
||
|
age.secrets.email = {
|
||
|
file = ../../secrets/email.age;
|
||
|
owner = "1000";
|
||
|
};
|
||
|
};
|
||
|
}
|