diff options
| author | 2025-04-28 00:47:41 -0700 | |
|---|---|---|
| committer | 2025-04-28 00:47:41 -0700 | |
| commit | 0f5642213b08adfc7620c1fb398d949fba9aec58 (patch) | |
| tree | e7e4a843fb4f5e52e8777cd8ef45843e43353b59 | |
| parent | 1f033b44132036f8d0dddf2f7a90c1c2ac779c29 (diff) | |
| download | new-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.
| -rw-r--r-- | oni/home/services/emacs.scm | 87 |
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" |
