summaryrefslogtreecommitdiff
path: root/home-manager/features/cli/apps/khal.nix
diff options
context:
space:
mode:
authortriethyl <triethylammonium@pm.me>2025-11-02 13:53:38 -0500
committertriethyl <triethylammonium@pm.me>2025-11-02 13:54:20 -0500
commit520313a733cd26dbd2692c2a8372aff1e1de657e (patch)
treea90ea9f6f2febbea36581504c637e83a3bf5a7f7 /home-manager/features/cli/apps/khal.nix
parent0457d18e24454663396cf054d8a16b1da635d99b (diff)
features: added calendar cli app
Diffstat (limited to 'home-manager/features/cli/apps/khal.nix')
-rw-r--r--home-manager/features/cli/apps/khal.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/home-manager/features/cli/apps/khal.nix b/home-manager/features/cli/apps/khal.nix
new file mode 100644
index 0000000..0f94499
--- /dev/null
+++ b/home-manager/features/cli/apps/khal.nix
@@ -0,0 +1,52 @@
+{
+ 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";
+ kl = "khal list";
+ kn = "khal new";
+ kp = "khal printcalendars";
+ ks = "khal search";
+ };
+ home.file."khal-config" = {
+ target = ".config/khal/config";
+ text = ''
+ [default]
+ default_calendar = school
+
+ [calendars]
+ [[personal]]
+ path = ${mkCalendarPath "personal"}
+
+ [[school]]
+ path = ${mkCalendarPath "school"}
+
+ [view]
+ frame = color
+
+ [locale]
+ dateformat = %m/%d/%Y
+ datetimeformat = %m/%d/%Y %I:%M %p
+ firstweekday = 0
+ longdateformat = %m/%d/%Y
+ longdatetimeformat = %m/%d/%Y %I:%M %p
+ timeformat = %I:%M %p
+ unicode_symbols = true
+ weeknumbers = off
+ '';
+ };
+ };
+}