2025-07-03 21:35:44 -04:00

226 lines
5.1 KiB
Nix

{
pkgs,
config,
...
}: {
home.packages = with pkgs; [
w3m
inetutils
];
services = {
# mbsync = {
# enable = true;
# frequency = "*-*-* *:*/5:00";
# postExec = "\${pkgs.notmuch} new";
# };
vdirsyncer = {
enable = true;
#frequency = "*-*-* *:*/5:00";
};
};
programs = {
aerc = {
enable = true;
templates = {
thanks = ''
Thanks!
{{exec "{ git remote get-url --push origin; git reflog -2 origin/master --pretty=format:%h | xargs printf '%s\n' | tac; } | xargs printf 'To %s\n %s..%s master -> master'" ""}}
'';
};
# extraBinds = {
# messages = {
# ga = ":flag<Enter>:pipe -mb git am -3<Enter>";
# gp = ":term git push<Enter>";
# gl = ":term git log<Enter>";
# rt = ":reply -a -Tthanks<Enter>";
# };
# };
extraConfig = {
ui = {
sort = "-r arrival";
threading-enabled = true;
fuzzy-complete = true;
};
general = {
default-save-path = "~/Downloads";
log-file = "~/.aerc.log";
unsafe-accounts-conf = true;
};
compose = {
address-book-cmd = "khard email --parsable --remove-first-line %s";
};
filters = {
"text/plain" = "colorize";
"text/calendar" = "calendar";
"text/html" = "html | colorize";
};
};
};
msmtp = {
enable = true;
};
mbsync = {
enable = true;
};
notmuch = {
enable = true;
new.tags = [ "new" ];
hooks = {
postNew = ''
notmuch tag +personal "path:personal/**"
notmuch tag +work "path:work/**"
notmuch tag +sent -new tag:new from:michael@michaelthomson.dev
notmuch tag +sent -new tag:new from:mthomson@konradgroup.com
notmuch tag +cal attachment:.ics
notmuch tag +inbox +unread -new "tag:new"
'';
preNew = ''
mbsync -a
(cd ~/Maildir/work/ && gmi sync)
'';
};
};
lieer = {
enable = true;
};
vdirsyncer = {
enable = true;
};
khal = {
enable = true;
};
khard = {
enable = true;
};
mu = {
enable = true;
};
};
accounts = {
email = {
accounts.personal = {
primary = true;
address = "michael@michaelthomson.dev";
realName = "Michael Thomson";
userName = "michael@michaelthomson.dev";
passwordCommand = "rbw get --folder email michael@michaelthomson.dev";
aerc = {
enable = true;
};
mbsync = {
enable = true;
create = "both";
expunge = "both";
};
imap = {
host = "mail.michaelthomson.dev";
port = 993;
tls = {
enable = true;
};
};
msmtp = {
enable = true;
};
smtp = {
host = "mail.michaelthomson.dev";
port = 465;
tls = {
enable = true;
};
};
notmuch = {
enable = true;
};
mu = {
enable = true;
};
};
accounts.work = {
primary = false;
flavor = "gmail.com";
address = "mthomson@konradgroup.com";
realName = "Michael Thomson";
aerc = {
enable = true;
};
notmuch = {
enable = true;
};
lieer = {
enable = true;
settings = {
replace_slash_with_dot = true;
ignore_tags = [ "new" "personal" "work" ];
};
};
};
};
calendar = {
basePath = ".calendar";
accounts.personal = {
primary = true;
primaryCollection = "personal";
remote = {
type = "caldav";
url = "https://nextcloud.michaelthomson.dev/remote.php/dav";
userName = "michael@michaelthomson.dev";
passwordCommand = [
"rbw"
"get"
"nextcloud.michaelthomson.dev"
];
};
vdirsyncer = {
enable = true;
auth = "basic";
collections = ["personal"];
};
khal = {
enable = true;
type = "calendar";
};
};
};
contact = {
basePath = ".contacts";
accounts.personal = {
local = {
type = "filesystem";
fileExt = ".vcf";
};
remote = {
type = "carddav";
url = "https://nextcloud.michaelthomson.dev/remote.php/dav";
userName = "michael@michaelthomson.dev";
passwordCommand = [
"rbw"
"get"
"nextcloud.michaelthomson.dev"
];
};
vdirsyncer = {
enable = true;
auth = "basic";
collections = ["contacts"];
};
khal = {
enable = true;
collections = ["contacts"];
};
khard = {
enable = true;
defaultCollection = "contacts";
};
};
};
};
}