From b98d15a34ce6769556ff737c9f63e7de38b35fb1 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Mon, 5 Oct 2026 14:25:02 +0200 Subject: [PATCH] feat(thunderbird): calendars --- nixos/users/tdpeuter/mail.nix | 205 +++++++++++++++++++++------------- 1 file changed, 129 insertions(+), 76 deletions(-) diff --git a/nixos/users/tdpeuter/mail.nix b/nixos/users/tdpeuter/mail.nix index 2e05b4b..41d016d 100644 --- a/nixos/users/tdpeuter/mail.nix +++ b/nixos/users/tdpeuter/mail.nix @@ -26,96 +26,132 @@ let in { config = lib.mkIf cfg.enable { home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { - accounts.email.accounts = { - Telenet = { - address = "tibo.depeuter@telenet.be"; - userName = "tibo.depeuter@telenet.be"; - imap = { - host = "imap.telenet.be"; - port = 993; - tls.enable = true; - }; - smtp = { - host = "smtp.telenet.be"; - port = 587; - tls = { + accounts = { + email.accounts = { + Telenet = { + address = "tibo.depeuter@telenet.be"; + userName = "tibo.depeuter@telenet.be"; + imap = { + host = "imap.telenet.be"; + port = 993; + tls.enable = true; + }; + smtp = { + host = "smtp.telenet.be"; + port = 587; + tls = { + enable = true; + useStartTls = true; + }; + }; + + realName = config.users.users.tdpeuter.description; + signature = { + showSignature = "append"; + text = signatures.default; + }; + + primary = true; + thunderbird = { enable = true; - useStartTls = true; + settings = id: { + "mail.identity.id_${id}.htmlSigText" = signatures.default; + }; }; }; + UGent = { + flavor = "outlook.office365.com"; + address = "tibo.depeuter@ugent.be"; - realName = config.users.users.tdpeuter.description; - signature = { - showSignature = "append"; - text = signatures.default; + realName = config.users.users.tdpeuter.description; + signature = { + showSignature = "append"; + text = signatures.academic; + }; + + thunderbird = { + enable = true; + settings = id: { + "mail.server.server_${id}.authMethod" = 10; + "mail.smtpserver.smtp_${id}.authMethod" = 10; + "mail.identity.id_${id}.htmlSigText" = signatures.academic; + + # Allow PGP + "mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key + "mail.identity.id_${id}.attachPgpKey" = true; + }; + }; }; + Gmail = { + flavor = "gmail.com"; + address = "tibo.depeuter@gmail.com"; - primary = true; - thunderbird = { - enable = true; - settings = id: { - "mail.identity.id_${id}.htmlSigText" = signatures.default; + realName = config.users.users.tdpeuter.description; + signature = { + showSignature = "append"; + text = signatures.default; + }; + thunderbird = { + enable = true; + settings = id: { + "mail.identity.id_${id}.htmlSigText" = signatures.default; + }; + }; + }; + MrFortem = { + flavor = "gmail.com"; + address = "fortemfiducia@gmail.com"; + + realName = "Fortem Fiducia"; + signature = { + showSignature = "append"; + text = signatures.MrFortem; + }; + + thunderbird = { + enable = true; + settings = id: { + "mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem"; + "mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem"; + "mail.identity.id_${id}.htmlSigText" = signatures.alias; + }; }; }; }; - UGent = { - flavor = "outlook.office365.com"; - address = "tibo.depeuter@ugent.be"; - realName = config.users.users.tdpeuter.description; - signature = { - showSignature = "append"; - text = signatures.academic; - }; - - thunderbird = { - enable = true; - settings = id: { - "mail.server.server_${id}.authMethod" = 10; - "mail.smtpserver.smtp_${id}.authMethod" = 10; - "mail.identity.id_${id}.htmlSigText" = signatures.academic; - - # Allow PGP - "mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key - "mail.identity.id_${id}.attachPgpKey" = true; + calendar.accounts = let + makeNextcloudCalendar = calendarName: color: { + remote = { + type = "caldav"; + url = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/${calendarName}"; + userName = "tdpeuter"; + }; + thunderbird = { + enable = true; + inherit color; }; }; - }; - Gmail = { - flavor = "gmail.com"; - address = "tibo.depeuter@gmail.com"; - - realName = config.users.users.tdpeuter.description; - signature = { - showSignature = "append"; - text = signatures.default; - }; - thunderbird = { - enable = true; - settings = id: { - "mail.identity.id_${id}.htmlSigText" = signatures.default; - }; - }; - - }; - MrFortem = { - flavor = "gmail.com"; - address = "fortemfiducia@gmail.com"; - - realName = "Fortem Fiducia"; - signature = { - showSignature = "append"; - text = signatures.MrFortem; - }; - - thunderbird = { - enable = true; - settings = id: { - "mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem"; - "mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem"; - "mail.identity.id_${id}.htmlSigText" = signatures.alias; + in { + Personal = makeNextcloudCalendar "personal" "#2ec27e"; + UGent = { + remote = { + type = "caldav"; + url = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/ugent/"; + userName = "tdpeuter"; + }; + thunderbird = { + enable = true; + color = "#1e64c8"; + settings = id: { + # Link to UGent mail + "calendar.registry.${id}.imip.identity.key" = "id_${builtins.hashString "sha256" "ugent"}"; + }; }; }; + Tasks = makeNextcloudCalendar "tasks-2" "#813d9c"; + Work = makeNextcloudCalendar "vts" "#ff0000"; + Planning = makeNextcloudCalendar "planning" "#102457"; + Joetz = makeNextcloudCalendar "joetz" "#ea1c0f"; }; }; @@ -124,7 +160,24 @@ in { enable = true; profiles.tdpeuter = { isDefault = true; + accountsOrder = [ + "Telenet" + "UGent" + "Gmail" + "MrFortem" + ]; + calendarAccountsOrder = [ + "Personal" + "UGent" + "Tasks" + "Work" + "Planning" + "Joetz" + ]; settings = { + "mail.shell.checkDefaultClient" = false; + "mail.threadpane.listview" = 0; + # View "mailnews.default_sort_order" = 2; # Sort descending "mailnews.mark_message_read.delay" = true;