aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services
diff options
context:
space:
mode:
authorGravatar Tom Willemse2025-04-28 00:47:41 -0700
committerGravatar Tom Willemse2025-04-28 00:47:41 -0700
commit0f5642213b08adfc7620c1fb398d949fba9aec58 (patch)
treee7e4a843fb4f5e52e8777cd8ef45843e43353b59 /oni/home/services
parent1f033b44132036f8d0dddf2f7a90c1c2ac779c29 (diff)
downloadnew-dotfiles-0f5642213b08adfc7620c1fb398d949fba9aec58.tar.gz
new-dotfiles-0f5642213b08adfc7620c1fb398d949fba9aec58.zip
Add org-caldav and deft services
They might not work yet, but when they're not configured they don't get in anything's way.
Diffstat (limited to 'oni/home/services')
-rw-r--r--oni/home/services/emacs.scm87
1 files changed, 86 insertions, 1 deletions
diff --git a/oni/home/services/emacs.scm b/oni/home/services/emacs.scm
index e0af1f9..953e25a 100644
--- a/oni/home/services/emacs.scm
+++ b/oni/home/services/emacs.scm
@@ -137,6 +137,45 @@
"Configuration for emacs-envrc."))
(define-maybe home-emacs-envrc-configuration)
+(define-maybe list-of-strings)
+
+(define-configuration/no-serialization home-emacs-deft-configuration
+ (package
+ (package emacs-deft)
+ "Package to use for setting up emacs deft.")
+ (extensions
+ maybe-list-of-strings
+ "Which extensions to allow for Deft.")
+ (directory
+ maybe-string
+ "Where to store notes.")
+ (configurations
+ (text-config '())
+ "Configuration for emacs-deft."))
+
+(define-maybe home-emacs-deft-configuration)
+
+(define-configuration/no-serialization home-emacs-org-caldav-configuration
+ (package
+ (package emacs-org-caldav)
+ "Package to use for setitng up emacs org caldav.")
+ (url
+ (string "")
+ "URL of the caldav server.")
+ (calendar-id
+ (string "")
+ "Calendar identifier on the server.")
+ (inbox
+ (string "inbox.org")
+ "Org filename where neww entries from calendar are stored")
+ (additional-files
+ (list '())
+ "Additional org files to check for calendar events")
+ (icalendar-timezone
+ (string "")
+ "Time zone."))
+
+(define-maybe home-emacs-org-caldav-configuration)
(define-configuration/no-serialization home-emacs-configuration
(package
@@ -154,6 +193,12 @@
(envrc
maybe-home-emacs-envrc-configuration
"Configuration for envrc.")
+ (deft
+ maybe-home-emacs-deft-configuration
+ "Configuration for deft.")
+ (org-caldav
+ maybe-home-emacs-org-caldav-configuration
+ "Configuration for org-caldav.")
(configurations
(text-config '())
"A list of other configuration files to autoload"))
@@ -175,7 +220,17 @@
(home-emacs-configuration-envrc config))
(home-emacs-envrc-configuration-package
(maybe-value
- (home-emacs-configuration-envrc config)))))))
+ (home-emacs-configuration-envrc config))))
+ (when (maybe-value-set?
+ (home-emacs-configuration-deft config))
+ (home-emacs-deft-configuration-package
+ (maybe-value
+ (home-emacs-configuration-deft config))))
+ (when (maybe-value-set?
+ (home-emacs-configuration-org-caldav config))
+ (home-emacs-org-caldav-configuration-package
+ (maybe-value
+ (home-emacs-configuration-org-caldav config)))))))
(define (home-emacs-extensions original-config extension-configs)
(home-emacs-configuration
@@ -228,6 +283,36 @@
(home-emacs-envrc-configuration-configurations
(maybe-value
(home-emacs-configuration-envrc config))))))
+ (if (maybe-value-set?
+ (home-emacs-configuration-deft config))
+ (serialize-text-config
+ config (append
+ (list (mixed-text-file "deft-config"
+ "(setq deft-extensions \"" (home-emacs-deft-configuration-extensions
+ (maybe-value (home-emacs-configuration-deft config))) "\")\n"))
+ (home-emacs-deft-configuration-configurations
+ (maybe-value
+ (home-emacs-configuration-deft config)))))
+ "")
+ (if (maybe-value-set?
+ (home-emacs-configuration-org-caldav config))
+ (serialize-text-config
+ config (append
+ (list (mixed-text-file "org-caldav-config"
+ "(setq org-caldav-url \"" (home-emacs-org-caldav-configuration-url
+ (maybe-value (home-emacs-configuration-org-caldav config))) "\")\n"
+ "(setq org-caldav-calendar-id \"" (home-emacs-org-caldav-configuration-calendar-id
+ (maybe-value (home-emacs-configuration-org-caldav config))) "\")\n"
+ "(setq org-caldav-indox \"" (home-emacs-org-caldav-configuration-inbox
+ (maybe-value (home-emacs-configuration-org-caldav config))) "\")\n"
+ "(setq org-caldav-files '(" (string-join (home-emacs-org-caldav-configuration-files
+ (maybe-value (home-emacs-configuration-org-caldav config))) " ") "))\n"
+ "(setq org-icalendar-timezone \"" (home-emacs-org-caldav-configuration-icalendar-timezone
+ (maybe-value (home-emacs-configuration-org-caldav config))) "\")\n")
+ (home-emacs-org-caldav-configuration-configurations
+ (maybe-value
+ (home-emacs-configuration-org-caldav config))))))
+ "")
(format #f "(setq custom-file (expand-file-name ~s user-emacs-directory))~%"
(home-emacs-configuration-custom-file config))
"(load custom-file :noerror)\n"