diff --git a/git-crypt/secrets.nix b/git-crypt/secrets.nix index 1dfe292..d500f2e 100755 Binary files a/git-crypt/secrets.nix and b/git-crypt/secrets.nix differ diff --git a/home-modules/calendar.nix b/home-modules/calendar.nix new file mode 100644 index 0000000..aa168c1 --- /dev/null +++ b/home-modules/calendar.nix @@ -0,0 +1,81 @@ +{ config, lib, user, secrets, domain, ... }: let + calendars = [ + { + name = "Preservation"; + primary = true; + url = "https://dav.${domain}/nx2/preservation/"; + color = "#dddddd"; + } + { + name = "Effort"; + primary = false; + url = "https://dav.${domain}/nx2/effort/"; + color = "#dd2222"; + } + { + name = "Experience"; + primary = false; + url = "https://dav.${domain}/nx2/experience/"; + color = "#2222dd"; + } + { + name = "Exposure"; + primary = false; + url = "https://dav.${domain}/nx2/exposure/"; + color = "#22aa22"; + } + { + name = "Engagement"; + primary = false; + url = "https://dav.${domain}/nx2/engagement/"; + color = "#8800CC"; + } + ]; +in { + accounts.calendar.accounts = let + makeCalendar = url: primary: color: { + inherit primary; + remote = { + type = "caldav"; + userName = user; + inherit url; + }; + }; + m = cc: lib.attrsets.mergeAttrsList ( map (c: { "${c.name}" = makeCalendar c.url c.primary c.color;}) cc ); + in m calendars; + + + # TODO: Replace this once https://github.com/nix-community/home-manager/pull/5484 is merged. + # Make sure it works, though, including the order of calendars. + programs.thunderbird.settings = let + + makeThunderbirdCalendar = cal: let + calendarAccountSafeName = (builtins.replaceStrings ["."] ["-"]) cal.name; + in { + "calendar.registry.${calendarAccountSafeName}.cache.enabled" = true; + "calendar.registry.${calendarAccountSafeName}.calendar-main-default" = cal.primary; + "calendar.registry.${calendarAccountSafeName}.calendar-main-in-composite" = true; + "calendar.registry.${calendarAccountSafeName}.color" = cal.color; + "calendar.registry.${calendarAccountSafeName}.name" = cal.name; + "calendar.registry.${calendarAccountSafeName}.type" = "caldav"; + "calendar.registry.${calendarAccountSafeName}.uri" = config.accounts.calendar.accounts.${cal.name}.remote.url; + "calendar.registry.${calendarAccountSafeName}.username" = config.accounts.calendar.accounts.${cal.name}.remote.userName; + }; + in lib.attrsets.mergeAttrsList ( + map (cal: makeThunderbirdCalendar cal) calendars + ) // { + + "calendar.registry.sleep-as-android.cache.enabled" = true; + "calendar.registry.sleep-as-android.calendar-main-in-composite" = true; + "calendar.registry.sleep-as-android.color" = "#222233"; + "calendar.registry.sleep-as-android.name" = "Sleep As Android"; + "calendar.registry.sleep-as-android.type" = "ics"; + "calendar.registry.sleep-as-android.readOnly" = true; + "calendar.registry.sleep-as-android.uri" = secrets.calendar.sleep-as-android-url; + + "calendar.list.sortOrder" = lib.fold (cal: acc: cal.name + " " + acc) "" calendars; + + # Keep these after removing the above. + "calendar.week.start" = 1; + }; +} diff --git a/home.nix b/home.nix index ff7b659..45f0168 100644 --- a/home.nix +++ b/home.nix @@ -4,6 +4,7 @@ ./home-modules/auto-mount.nix ./home-modules/bash.nix ./home-modules/bitwarden.nix + ./home-modules/calendar.nix ./home-modules/chatterino.nix ./home-modules/color-pallete.nix ./home-modules/direnv.nix @@ -99,7 +100,6 @@ ghostscript inputs.zen-browser.packages."${system}".default - gnome-calendar ] ++ (with pkgs-unstable; [ obsidian