1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00

feat(mail): configure notmuch

This commit is contained in:
Kierán Meinhardt
2020-09-24 10:35:53 +02:00
parent 16205c3655
commit 699796d06e

View File

@@ -1,5 +1,31 @@
{ config, pkgs, lib, ... }:
let
generateTaggingScript = filters:
let template = index: { tags, query, message ? "tagging ${query} -> ${lib.concatStringsSep " " tags}", ... }:
let
command = ''
${pkgs.notmuch}/bin/notmuch tag ${lib.concatStringsSep " " tags} -- "${query}"
'';
in ''
echo '${message}'
${command}
''; in lib.concatStringsSep "\n" (lib.imap0 template filters);
taggingConfig = [
{
query = "from:nebenan.de";
tags = [ "-inbox" "-unread" ];
}
{
query = "subject:fd-noti";
tags = [ "-inbox -unread" ];
}
{
query = "subject:miaEngiadina AND subject:\"PR run failed\"";
tags = [ "+deleted" ];
}
];
pass = id: "${pkgs.pass}/bin/pass ${id}";
enableDefaults = lib.recursiveUpdate {
mbsync = {
@@ -19,7 +45,18 @@ let
'';
};
in {
environment.systemPackages = [ pkgs.neomutt pkgs.haskellPackages.much pkgs.notmuch ];
environment.systemPackages = [
pkgs.neomutt
pkgs.haskellPackages.much
(pkgs.writers.writeDashBin "fetch-mail" ''
${pkgs.isync}/bin/mbsync --all
${pkgs.notmuch}/bin/notmuch new
'')
(pkgs.writers.writeDashBin "notmuch-rm-deleted" ''
${pkgs.notmuch}/bin/notmuch search --output files --format=text0 tag:deleted | ${pkgs.findutils}/bin/xargs -r0 rm
${pkgs.notmuch}/bin/notmuch new
'')
];
home-manager.users.me = let maildir = "${config.users.users.me.home}/mail";
in {
@@ -509,6 +546,11 @@ in {
programs.msmtp.enable = true;
programs.mbsync.enable = true;
programs.notmuch.enable = false;
programs.notmuch = {
enable = true;
new.tags = [ "unread" "inbox" ];
search.excludeTags = [ "deleted" "spam" ];
hooks.postNew = generateTaggingScript taggingConfig;
};
};
}