{ config, lib, pkgs, ... }: let cfg = config.features.cli.apps.khal; mkCalendarPath = name: lib.concatStrings [ "~/Sync/.calendars/" name ]; in { options.features.cli.apps.khal.enable = lib.mkEnableOption "khal"; config = lib.mkIf cfg.enable { home.packages = [ pkgs.khal ]; home.shellAliases = { ka = "khal at"; kc = "khal calendar"; ke = "khal edit"; ki = "khal interactive"; kn = "khal new"; kp = "khal printcalendars"; ks = "khal search"; kl = "khal list"; klw = "khal list today 7d"; klm = "khal list today 30d"; }; home.file."khal-config" = { target = ".config/khal/config"; text = '' [default] default_calendar = school highlight_event_days = true [calendars] [[personal]] path = ${mkCalendarPath "personal"} [[school]] path = ${mkCalendarPath "school"} [view] frame = color [highlight_days] color = "light blue" multiple = "light magenta" [locale] # dateformat = %m/%d/%Y # datetimeformat = %m/%d/%Y %I:%M %p firstweekday = 6 # longdateformat = %m/%d/%Y # longdatetimeformat = %m/%d/%Y %I:%M %p # timeformat = %I:%M %p unicode_symbols = true weeknumbers = off ''; }; }; }