From c8045aa11f4d9a56f72955f1189dbea3f46deef7 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Mon, 4 Oct 2021 18:16:01 +0200 Subject: xdg-open: add ics files to the calendar & sync to webdav Sync the calendar every 15 minutes with a user service, and add ics file support to xdg-open. --- pkgs/profpatsch/xdg-open/config.dhall | 5 +++++ pkgs/profpatsch/xdg-open/default.nix | 22 +++++++++++++++++++++- pkgs/profpatsch/xdg-open/types.dhall | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) (limited to 'pkgs/profpatsch') diff --git a/pkgs/profpatsch/xdg-open/config.dhall b/pkgs/profpatsch/xdg-open/config.dhall index dac815f9..6e5bacfe 100644 --- a/pkgs/profpatsch/xdg-open/config.dhall +++ b/pkgs/profpatsch/xdg-open/config.dhall @@ -53,6 +53,10 @@ in λ(pkgs : { package : Text, binary : Text } → Executable) → } , xml = { mime = [ "text", "xml" ], cmd = special.open-in-browser } + , ical = + { mime = [ "text", "calendar" ] + , cmd = special.add-to-calendar + } , any = { mime = [ "text", "any" ], cmd = special.open-in-editor } } @@ -116,6 +120,7 @@ in λ(pkgs : { package : Text, binary : Text } → Executable) → , mime.text.gemini , mime.text.gopher , mime.text.xml + , mime.text.ical , mime.text.any , mime.mail-address , mime.torrent diff --git a/pkgs/profpatsch/xdg-open/default.nix b/pkgs/profpatsch/xdg-open/default.nix index 97418958..30ff275e 100644 --- a/pkgs/profpatsch/xdg-open/default.nix +++ b/pkgs/profpatsch/xdg-open/default.nix @@ -26,6 +26,7 @@ let // getBins pkgs.firefox [ "firefox" ] // getBins pkgs.lilyterm-git [ "lilyterm" ] // getBins pkgs.ranger [ "ranger" ] + // getBins pkgs.khal [ "khal" ] ; notify = msg: { @@ -54,7 +55,24 @@ let args = file: [ file ]; }; - + # TODO: interactive adding? Don’t want to add all ics files to my calendar + add-to-calendar = { + exe = writeExecline "add-to-calendar" { readNArgs = 1; } [ + "if" [ + bins.khal + "import" + "--batch" + # the private calendar is called calendar + "--include-calendar" "calendar" + "$1" + ] + "systemctl" "--user" + "start" + # defined as a user service (TODO: config variable?) + "calendar-sync" + ]; + args = file: [ file ]; + }; open-in-browser = { exe = bins.firefox; @@ -120,6 +138,7 @@ let , open-in-browser : Command , open-in-editor : Command , notify : Text -> Command + , add-to-calendar : Command } ) → Text @@ -150,6 +169,7 @@ let dmenu-list-binaries-and-exec exec-in-terminal-emulator notify + add-to-calendar ; }; diff --git a/pkgs/profpatsch/xdg-open/types.dhall b/pkgs/profpatsch/xdg-open/types.dhall index e878ce86..9b0456f1 100644 --- a/pkgs/profpatsch/xdg-open/types.dhall +++ b/pkgs/profpatsch/xdg-open/types.dhall @@ -20,6 +20,7 @@ let Special = , exec-in-terminal-emulator : ∀(args : Command) → Command , dmenu-list-binaries-and-exec : Command , notify : ∀(message : Text) → Command + , add-to-calendar : Command } let -- cgit 1.4.1