From ce0a366e8ba58fb967d4270e9c0e7d3ba759c759 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 24 May 2025 17:40:28 +0530 Subject: Add setup for notmuch+lieer+aerc for email --- modules/email/aerc.home.nix | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 modules/email/aerc.home.nix (limited to 'modules/email/aerc.home.nix') diff --git a/modules/email/aerc.home.nix b/modules/email/aerc.home.nix new file mode 100644 index 0000000..7dcd99e --- /dev/null +++ b/modules/email/aerc.home.nix @@ -0,0 +1,61 @@ +{ config, ... }: +# Create private.nix with work.email, work.name +# Setup with `notmuch setup` +# Authenticate with `take ~/mail/account.gmail/ && gmi init ` +let + private = import ./private.nix; + theme = import ./aerc.theme.nix; + maildir = "${config.home.homeDirectory}/mail"; + work-maildir = "${maildir}/account.gmail"; +in { + imports = [ ./mailbox-sync.module.nix ]; + + services.mailbox-sync = { + enable = true; + name = "work"; + maildir = work-maildir; + sync.frequency = "*:0/5"; + notify.enable = true; + }; + + programs.notmuch = { + enable = true; + new = { + tags = ["new"]; + ignore = ["/.*[.](json|lock|bak)$/"]; + }; + extraConfig = { + database = { + path = maildir; + }; + user = { + name = private.work.name; + primary_email = private.work.email; + }; + search = { + exclude_tags = "ignored"; + }; + }; + }; + + programs.aerc = { + enable = true; + + extraAccounts.Work = { + from = "${private.work.name} <${private.work.email}>"; + source = "notmuch://${maildir}"; + outgoing = "gmi send -t -C ${work-maildir}"; + query-map = "${./query-map.conf}"; + folders-sort = "Inbox,Unread,Important,_sent,_spam"; + default = "INBOX"; + copy-to = "Sent"; + postpone = "[Gmail]/Drafts"; + cache-headers = true; + }; + + extraConfig = builtins.readFile ./aerc.conf; + extraBinds = builtins.readFile ./aerc-binds.conf; + + stylesets.default = theme; + }; +} -- cgit v1.3.1