This patch series adds the feature emacs-org-dynamic-agenda, and the feature emacs-org-ql, which provides optimizations for emacs-org-dynamic-agenda. It adds a patch to allow using org-agenda-files as a path, as in the org-mode manual. Nicolas Graves (4): rde: Add feature-emacs-org-dynamic-agenda. feature: emacs-org-agenda: maybe-path-or-list? for org-agenda-files. rde: Add feature-emacs-org-ql. feature: emacs-org-dynamic-agenda: Properly integrate with org-ql. src/rde/features/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) -- 2.41.0
This patch series adds the feature emacs-org-agenda-files-track, and the feature emacs-org-ql, which provides optimizations for emacs-org-agenda-files-track. It adds a patch to allow using org-agenda-files as a path, as in the org-mode manual. Nicolas Graves (4): rde: Add feature-emacs-org-agenda-files-track rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files rde: Add feature-emacs-org-ql rde: emacs-org-agenda-files-track: org-ql integration src/rde/features/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-)
This patch series adds feature-emacs-org-agenda-files-track and feature-emacs-org-ql. Nicolas Graves (4): rde: Add feature-emacs-org-agenda-files-track rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files rde: Add feature-emacs-org-ql rde: emacs-org-agenda-files-track: org-ql integration src/rde/features/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-)
Looks good! Thank you. Pushed as https://git.sr.ht/~abcdw/rde/commit/d8062d3f
This patch series adds the feature emacs-org-agenda-files-track, and the feature emacs-org-ql, which provides optimizations for emacs-org-agenda-files-track. It adds a patch to allow using org-agenda-files as a path, as in the org-mode manual. Nicolas Graves (4): rde: Add feature-emacs-org-agenda-files-track rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files rde: Add feature-emacs-org-ql rde: emacs-org-agenda-files-track: org-ql integration src/rde/features/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-)
I briefly reviewed v4 revision, it looks good and I'm ready to merge it. However, I can't apply it on top of master branch, can you rebase it on latest commit, please?
Copy & paste the following snippet into your terminal to import this patchset into git:
curl -s https://lists.sr.ht/~abcdw/rde-devel/patches/44893/mbox | git am -3Learn more about email & git
--- src/rde/features/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index d670bc2a..51aa2306 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -112,6 +112,7 @@ feature-emacs-org-roam feature-emacs-org-agenda feature-emacs-org-dailies + feature-emacs-org-dynamic-agenda feature-emacs-citar feature-emacs-org-protocol feature-emacs-spelling @@ -4494,6 +4495,32 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-dynamic-agenda + #:key + (emacs-org-dynamic-agenda emacs-org-dynamic-agenda)) + "Configure org-dynamic-agenda for GNU Emacs." + (ensure-pred file-like? emacs-org-dynamic-agenda) + + (define emacs-f-name 'org-dynamic-agenda) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `((require 'org-dynamic-agenda)) + #:summary "\ +Org dynamic agenda" + #:commentary "" + #:keywords '(convenience) + #:elisp-packages (list emacs-org-dynamic-agenda)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + ;; TODO: rewrite to states (define* (feature-emacs-org-roam #:key -- 2.41.0
This patch series adds the feature emacs-org-agenda-files-track, and the feature emacs-org-ql, which provides optimizations for emacs-org-agenda-files-track. It adds a patch to allow using org-agenda-files as a path, as in the org-mode manual. Nicolas Graves (4): rde: Add feature-emacs-org-agenda-files-track rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files rde: Add feature-emacs-org-ql rde: emacs-org-agenda-files-track: org-ql integration src/rde/features/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-)
This patch series adds feature-emacs-org-agenda-files-track and feature-emacs-org-ql. Nicolas Graves (4): rde: Add feature-emacs-org-agenda-files-track rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files rde: Add feature-emacs-org-ql rde: emacs-org-agenda-files-track: org-ql integration src/rde/features/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-)
This patch series adds the feature emacs-org-agenda-files-track, and the feature emacs-org-ql, which provides optimizations for emacs-org-agenda-files-track. It adds a patch to allow using org-agenda-files as a path, as in the org-mode manual. Nicolas Graves (4): rde: Add feature-emacs-org-agenda-files-track rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files rde: Add feature-emacs-org-ql rde: emacs-org-agenda-files-track: org-ql integration src/rde/features/emacs-xyz.scm | 70 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-)
--- src/rde/features/emacs-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index f7a65041..d1355d1a 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -114,6 +114,8 @@ feature-emacs-org-roam feature-emacs-org-agenda feature-emacs-citation + feature-emacs-org-dailies + feature-emacs-org-agenda-files-track feature-emacs-citar feature-emacs-org-dailies feature-emacs-org-protocol @@ -4535,6 +4537,32 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-agenda-files-track + #:key + (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + "Configure org-agenda-files-track for GNU Emacs." + (ensure-pred file-like? emacs-org-agenda-files-track) + + (define emacs-f-name 'org-agenda-files-track) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `((require 'org-agenda-files-track)) + #:summary "\ +Org dynamic agenda" + #:commentary "" + #:keywords '(convenience) + #:elisp-packages (list emacs-org-agenda-files-track)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + ;; TODO: rewrite to states (define* (feature-emacs-org-roam #:key -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 3ef5cccc..a8f77109 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -111,6 +111,7 @@ feature-emacs-org feature-emacs-org-roam feature-emacs-org-agenda + feature-emacs-org-agenda-files-track feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-protocol @@ -4465,6 +4466,32 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-agenda-files-track + #:key + (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + "Configure org-agenda-files-track for GNU Emacs." + (ensure-pred file-like? emacs-org-agenda-files-track) + + (define emacs-f-name 'org-agenda-files-track) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `((require 'org-agenda-files-track)) + #:summary "\ +Org dynamic agenda" + #:commentary "" + #:keywords '(convenience) + #:elisp-packages (list emacs-org-agenda-files-track)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + ;; TODO: rewrite to states (define* (feature-emacs-org-roam #:key -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 452f26b0..ac8f888d 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -107,6 +107,7 @@ feature-emacs-org feature-emacs-org-roam feature-emacs-org-agenda + feature-emacs-org-agenda-files-track feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-protocol @@ -4376,6 +4377,32 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-agenda-files-track + #:key + (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + "Configure org-agenda-files-track for GNU Emacs." + (ensure-pred file-like? emacs-org-agenda-files-track) + + (define emacs-f-name 'org-agenda-files-track) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `((require 'org-agenda-files-track)) + #:summary "\ +Org dynamic agenda" + #:commentary "" + #:keywords '(convenience) + #:elisp-packages (list emacs-org-agenda-files-track)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + ;; TODO: rewrite to states (define* (feature-emacs-org-roam #:key -- 2.41.0
I briefly reviewed v4 revision, it looks good and I'm ready to merge it. However, I can't apply it on top of master branch, can you rebase it on latest commit, please?
org-roam-dailies-directory was defined twice in the feature-emacs-org-roam. --- src/rde/features/emacs-xyz.scm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 0abd54e4..6e10824b 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4455,10 +4455,6 @@ the node, relative to `org-roam-directory'." ,@(if org-roam-capture-templates `((setq org-roam-capture-templates ',org-roam-capture-templates)) - '()) - - ,@(if org-roam-dailies-directory - `((setq org-roam-dailies-directory ,org-roam-dailies-directory)) '())) ,@(if org-roam-todo? (org-roam-todo config) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 11a89506..9ee51980 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -107,6 +107,7 @@ feature-emacs-org feature-emacs-org-roam feature-emacs-org-agenda + feature-emacs-org-agenda-files-track feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-protocol @@ -4435,6 +4436,32 @@ or with a org-roam-less copy of the package." (values `((,f-name . #t))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-agenda-files-track + #:key + (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + "Configure org-agenda-files-track for GNU Emacs." + (ensure-pred file-like? emacs-org-agenda-files-track) + + (define emacs-f-name 'org-agenda-files-track) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `((require 'org-agenda-files-track)) + #:summary "\ +Org dynamic agenda" + #:commentary "" + #:keywords '(convenience) + #:elisp-packages (list emacs-org-agenda-files-track)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + ;; TODO: rewrite to states (define* (feature-emacs-org-roam #:key -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 51aa2306..cf2b8094 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4258,7 +4258,9 @@ Indentation and refile configurations, visual adjustment." (org-agenda-prefix-format '()) (org-agenda-appt? #f)) "Configure org-agenda for GNU Emacs." - (ensure-pred maybe-list? org-agenda-files) + (define (maybe-path-or-list? elt) + (or (maybe-path? elt) (maybe-list? elt))) + (ensure-pred maybe-path-or-list? org-agenda-files) (ensure-pred list? org-agenda-custom-commands) (ensure-pred maybe-list? org-agenda-prefix-format) (ensure-pred boolean? org-agenda-appt?) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index d1355d1a..ab137602 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4303,7 +4303,9 @@ Indentation and refile configurations, visual adjustment." (org-agenda-prefix-format '()) (org-agenda-appt? #f)) "Configure org-agenda for GNU Emacs." - (ensure-pred maybe-list? org-agenda-files) + (define (maybe-path-or-list? elt) + (or (maybe-path? elt) (maybe-list? elt))) + (ensure-pred maybe-path-or-list? org-agenda-files) (ensure-pred list? org-agenda-custom-commands) (ensure-pred maybe-list? org-agenda-prefix-format) (ensure-pred boolean? org-agenda-appt?) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index a8f77109..796072cc 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4232,7 +4232,9 @@ Indentation and refile configurations, visual adjustment." (org-agenda-prefix-format '()) (org-agenda-appt? #f)) "Configure org-agenda for GNU Emacs." - (ensure-pred maybe-list? org-agenda-files) + (define (maybe-path-or-list? elt) + (or (maybe-path? elt) (maybe-list? elt))) + (ensure-pred maybe-path-or-list? org-agenda-files) (ensure-pred list? org-agenda-custom-commands) (ensure-pred maybe-list? org-agenda-prefix-format) (ensure-pred boolean? org-agenda-appt?) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index ac8f888d..d4fd740a 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4140,7 +4140,9 @@ Indentation and refile configurations, visual adjustment." (org-agenda-prefix-format #f) (org-agenda-appt? #f)) "Configure org-agenda for GNU Emacs." - (ensure-pred maybe-list? org-agenda-files) + (define (maybe-path-or-list? elt) + (or (maybe-path? elt) (maybe-list? elt))) + (ensure-pred maybe-path-or-list? org-agenda-files) (ensure-pred list? org-agenda-custom-commands) (ensure-pred maybe-list? org-agenda-prefix-format) (ensure-pred boolean? org-agenda-appt?) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 52 +++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 6e10824b..0d3d611c 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -108,6 +108,7 @@ feature-emacs-org-roam feature-emacs-org-agenda feature-emacs-citation + feature-emacs-org-dailies feature-emacs-org-protocol feature-emacs-spelling feature-emacs-org-recur @@ -4350,30 +4351,72 @@ If NODE doesn't exist, create a new org-roam node with REF." (add-hook 'before-save-hook 'rde-org-roam-update-todo-tag)) (advice-add 'org-agenda :before 'rde-org-roam-update-todo-files))) +(define* (feature-emacs-org-dailies + #:key + (emacs-org-dailies emacs-org-dailies) + (org-dailies-directory "daily/") + (org-dailies-capture-templates #f)) + "Configure org-dailies for GNU Emacs." + (ensure-pred file-like? emacs-org-dailies) + (ensure-pred maybe-path? org-dailies-directory) + (ensure-pred maybe-list? org-dailies-capture-templates) + + (define emacs-f-name 'org-dailies) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (when (and (not (get-value 'org-roam-dailies? config)) + org-dailies-capture-templates) + (raise + (formatted-message + (G_ "org-dailies package does't handle capture templates for now.")))) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `(,@(if (get-value 'org-roam-dailies? config) + '() + `((require 'org-dailies) + (setq org-dailies-directory ,org-dailies-directory)))) + #:summary "Daily journaling functionality for Emacs" + #:commentary "\ +This feature configure daily journaling functionality, either with org-roam-dailies, +or with a org-roam-less copy of the package." + #:keywords '(convenience) + #:elisp-packages (if (get-value 'org-roam-dailies? config) + '() + (list emacs-org-dailies))))) + + (feature + (name f-name) + (values `((,f-name . #t) + (org-dailies-directory . ,org-dailies-directory) + (org-dailies-capture-templates . ,org-dailies-capture-templates))) + (home-services-getter get-home-services))) + ;; TODO: rewrite to states (define* (feature-emacs-org-roam #:key (emacs-org-roam emacs-org-roam) (org-roam-directory #f) - (org-roam-dailies-directory #f) (org-roam-capture-templates #f) - (org-roam-dailies-capture-templates #f) (org-roam-todo? #f) + (org-roam-dailies? #f) (use-node-types? #t)) "Configure org-roam for GNU Emacs." (ensure-pred file-like? emacs-org-roam) (define (not-boolean? x) (not (boolean? x))) (ensure-pred not-boolean? org-roam-directory) - (ensure-pred maybe-path? org-roam-dailies-directory) (ensure-pred maybe-list? org-roam-capture-templates) (ensure-pred boolean? use-node-types?) - (ensure-pred maybe-list? org-roam-dailies-capture-templates) (ensure-pred boolean? org-roam-todo?) + (ensure-pred boolean? org-roam-dailies?) (define emacs-f-name 'org-roam) (define f-name (symbol-append 'emacs- emacs-f-name)) (define (get-home-services config) + (if org-roam-dailies? (require-value 'org-dailies-directory config)) (list (rde-elisp-configuration-service emacs-f-name @@ -4520,6 +4563,7 @@ marginalia annotations." (feature (name f-name) (values `((,f-name . #t) + (org-roam-dailies? . ,org-roam-dailies?) (org-roam-todo? . ,org-roam-todo?))) (home-services-getter get-home-services))) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 9ee51980..94737ab0 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4176,7 +4176,9 @@ Indentation and refile configurations, visual adjustment." (org-agenda-prefix-format #f) (org-agenda-appt? #f)) "Configure org-agenda for GNU Emacs." - (ensure-pred maybe-list? org-agenda-files) + (define (maybe-path-or-list? elt) + (or (maybe-path? elt) (maybe-list? elt))) + (ensure-pred maybe-path-or-list? org-agenda-files) (ensure-pred list? org-agenda-custom-commands) (ensure-pred maybe-list? org-agenda-prefix-format) (ensure-pred boolean? org-agenda-appt?) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index cf2b8094..eee4e6b5 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -112,6 +112,7 @@ feature-emacs-org-roam feature-emacs-org-agenda feature-emacs-org-dailies + feature-emacs-org-ql feature-emacs-org-dynamic-agenda feature-emacs-citar feature-emacs-org-protocol @@ -4497,6 +4498,35 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-ql + #:key + (emacs-org-ql emacs-org-ql)) + "Configure org-ql for GNU Emacs." + (ensure-pred file-like? emacs-org-ql) + + (define emacs-f-name 'org-ql) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `() + #:summary "\ +An Org-mode query language, including search commands and saved views" + #:commentary "\ +This package provides a query language for Org files. It offers two syntax +styles: Lisp-like sexps and search engine-like keywords. Currently this +package is unconfigured but it plays along with emacs-org-dynamic-agenda." + #:keywords '(convenience) + #:elisp-packages (list emacs-org-ql)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + (define* (feature-emacs-org-dynamic-agenda #:key (emacs-org-dynamic-agenda emacs-org-dynamic-agenda)) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index ab137602..4994086c 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -116,6 +116,7 @@ feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-agenda-files-track + feature-emacs-org-ql feature-emacs-citar feature-emacs-org-dailies feature-emacs-org-protocol @@ -4539,6 +4540,35 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-ql + #:key + (emacs-org-ql emacs-org-ql)) + "Configure org-ql for GNU Emacs." + (ensure-pred file-like? emacs-org-ql) + + (define emacs-f-name 'org-ql) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `() + #:summary "\ +An Org-mode query language, including search commands and saved views" + #:commentary "\ +This package provides a query language for Org files. It offers two syntax +styles: Lisp-like sexps and search engine-like keywords. Currently this +package is unconfigured but it plays along with emacs-org-agenda-files-track." + #:keywords '(convenience) + #:elisp-packages (list emacs-org-ql)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + (define* (feature-emacs-org-agenda-files-track #:key (emacs-org-agenda-files-track emacs-org-agenda-files-track)) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 796072cc..34d8bc53 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -115,6 +115,7 @@ feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-protocol + feature-emacs-org-ql feature-emacs-spelling feature-emacs-org-recur feature-emacs-graphviz @@ -4468,6 +4469,35 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-ql + #:key + (emacs-org-ql emacs-org-ql)) + "Configure org-ql for GNU Emacs." + (ensure-pred file-like? emacs-org-ql) + + (define emacs-f-name 'org-ql) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `() + #:summary "\ +An Org-mode query language, including search commands and saved views" + #:commentary "\ +This package provides a query language for Org files. It offers two syntax +styles: Lisp-like sexps and search engine-like keywords. Currently this +package is unconfigured but it plays along with emacs-org-agenda-files-track." + #:keywords '(convenience) + #:elisp-packages (list emacs-org-ql)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + (define* (feature-emacs-org-agenda-files-track #:key (emacs-org-agenda-files-track emacs-org-agenda-files-track)) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index d4fd740a..d226f0af 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -111,6 +111,7 @@ feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-protocol + feature-emacs-org-ql feature-emacs-spelling feature-emacs-org-recur feature-emacs-graphviz @@ -4379,6 +4380,35 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-ql + #:key + (emacs-org-ql emacs-org-ql)) + "Configure org-ql for GNU Emacs." + (ensure-pred file-like? emacs-org-ql) + + (define emacs-f-name 'org-ql) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `() + #:summary "\ +An Org-mode query language, including search commands and saved views" + #:commentary "\ +This package provides a query language for Org files. It offers two syntax +styles: Lisp-like sexps and search engine-like keywords. Currently this +package is unconfigured but it plays along with emacs-org-agenda-files-track." + #:keywords '(convenience) + #:elisp-packages (list emacs-org-ql)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + (define* (feature-emacs-org-agenda-files-track #:key (emacs-org-agenda-files-track emacs-org-agenda-files-track)) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 59 ++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 0d3d611c..f739dad7 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4415,6 +4415,14 @@ or with a org-roam-less copy of the package." (define emacs-f-name 'org-roam) (define f-name (symbol-append 'emacs- emacs-f-name)) + (define emacs-org-roam-package + (if org-roam-dailies? + emacs-org-roam + (package/inherit emacs-org-roam + (source (origin (inherit (package-source emacs-org-roam)) + (snippet + '(delete-file "extensions/org-roam-dailies.el"))))))) + (define (get-home-services config) (if org-roam-dailies? (require-value 'org-dailies-directory config)) (list @@ -4492,12 +4500,27 @@ the node, relative to `org-roam-directory'." (define-key map (kbd "C-c r a") 'org-roam-alias-add) (define-key map (kbd "C-c r A") 'org-roam-alias-remove) (define-key map (kbd "C-c r O") 'rde-org-roam-open-ref) - (define-key map (kbd "C-c n N") 'org-roam-dailies-goto-next-note) - (define-key map (kbd "C-c n P") - 'org-roam-dailies-goto-previous-note))) + ,@(if org-roam-dailies? + `((define-key map (kbd "C-c n N") + 'org-roam-dailies-goto-next-note) + (define-key map (kbd "C-c n P") + 'org-roam-dailies-goto-previous-note)) + '()))) ,@(if org-roam-capture-templates `((setq org-roam-capture-templates ',org-roam-capture-templates)) + '()) + + ,@(if org-roam-dailies? + `((with-eval-after-load 'org-roam-dailies + ,@(if org-dailies-capture-templates + `((setq org-roam-dailies-capture-templates + ',(get-value + 'org-dailies-capture-templates + config))) + '()) + (setq org-roam-dailies-directory + ,(get-value 'org-dailies-directory config)))) '())) ,@(if org-roam-todo? (org-roam-todo config) @@ -4521,25 +4544,19 @@ the node, relative to `org-roam-directory'." '()))) '()) - (with-eval-after-load 'org-roam-dailies - ,@(if org-roam-dailies-capture-templates - `((setq org-roam-dailies-capture-templates - ',org-roam-dailies-capture-templates)) - '()) - ,@(if org-roam-dailies-directory - `((setq org-roam-dailies-directory - ,org-roam-dailies-directory)) - '())) - (let ((map mode-specific-map)) - (define-key map (kbd "n t") 'org-roam-dailies-goto-today) - (define-key map (kbd "n y") 'org-roam-dailies-goto-yesterday) - (define-key map (kbd "n m") 'org-roam-dailies-goto-tomorrow) - (define-key map (kbd "n d") 'org-roam-dailies-goto-date) - (define-key map (kbd "n c t") 'org-roam-dailies-capture-today) - (define-key map (kbd "n c y") 'org-roam-dailies-capture-yesterday) - (define-key map (kbd "n c m") 'org-roam-dailies-capture-tomorrow) - (define-key map (kbd "n c d") 'org-roam-dailies-capture-date) + ,@(if org-roam-dailies? + `((define-key map (kbd "n t") 'org-roam-dailies-goto-today) + (define-key map (kbd "n y") 'org-roam-dailies-goto-yesterday) + (define-key map (kbd "n m") 'org-roam-dailies-goto-tomorrow) + (define-key map (kbd "n d") 'org-roam-dailies-goto-date) + (define-key map (kbd "n c t") 'org-roam-dailies-capture-today) + (define-key map (kbd "n c y") + 'org-roam-dailies-capture-yesterday) + (define-key map (kbd "n c m") + 'org-roam-dailies-capture-tomorrow) + (define-key map (kbd "n c d") 'org-roam-dailies-capture-date)) + '()) (define-key map (kbd "n n") 'org-roam-buffer-toggle) (define-key map (kbd "n f") 'org-roam-node-find) (define-key map (kbd "n i") 'org-roam-node-insert) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 94737ab0..73045571 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -111,6 +111,7 @@ feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-protocol + feature-emacs-org-ql feature-emacs-spelling feature-emacs-org-recur feature-emacs-graphviz @@ -4438,6 +4439,35 @@ or with a org-roam-less copy of the package." (values `((,f-name . #t))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-ql + #:key + (emacs-org-ql emacs-org-ql)) + "Configure org-ql for GNU Emacs." + (ensure-pred file-like? emacs-org-ql) + + (define emacs-f-name 'org-ql) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `() + #:summary "\ +An Org-mode query language, including search commands and saved views" + #:commentary "\ +This package provides a query language for Org files. It offers two syntax +styles: Lisp-like sexps and search engine-like keywords. Currently this +package is unconfigured but it plays along with emacs-org-agenda-files-track." + #:keywords '(convenience) + #:elisp-packages (list emacs-org-ql)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + (define* (feature-emacs-org-agenda-files-track #:key (emacs-org-agenda-files-track emacs-org-agenda-files-track)) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index eee4e6b5..64a397bc 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4529,9 +4529,11 @@ package is unconfigured but it plays along with emacs-org-dynamic-agenda." (define* (feature-emacs-org-dynamic-agenda #:key - (emacs-org-dynamic-agenda emacs-org-dynamic-agenda)) - "Configure org-dynamic-agenda for GNU Emacs." + (emacs-org-dynamic-agenda emacs-org-dynamic-agenda) + (emacs-org-ql-dynamic-agenda emacs-org-ql-dynamic-agenda)) + "Configure org-dynamic-agenda or org-ql-dynamic-agenda for GNU Emacs." (ensure-pred file-like? emacs-org-dynamic-agenda) + (ensure-pred file-like? emacs-org-ql-dynamic-agenda) (define emacs-f-name 'org-dynamic-agenda) (define f-name (symbol-append 'emacs- emacs-f-name)) @@ -4541,12 +4543,19 @@ package is unconfigured but it plays along with emacs-org-dynamic-agenda." (rde-elisp-configuration-service emacs-f-name config - `((require 'org-dynamic-agenda)) + `(,@(if (get-value 'emacs-org-ql config) + '((require 'org-ql-dynamic-agenda) + (setq org-agenda-include-diary nil)) + '((require 'org-dynamic-agenda)))) #:summary "\ Org dynamic agenda" - #:commentary "" + #:commentary "\ +This hook records files that should be saved as agenda-files, making the refreshing +and loading of org-agenda faster (and even faster with org-ql cache)." #:keywords '(convenience) - #:elisp-packages (list emacs-org-dynamic-agenda)))) + #:elisp-packages (list (if (get-value 'emacs-org-ql config) + emacs-org-ql-dynamic-agenda + emacs-org-dynamic-agenda))))) (feature (name f-name) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 4994086c..9a10c080 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4571,9 +4571,11 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (define* (feature-emacs-org-agenda-files-track #:key - (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + (emacs-org-agenda-files-track emacs-org-agenda-files-track) + (emacs-org-agenda-files-track-ql emacs-org-agenda-files-track-ql)) "Configure org-agenda-files-track for GNU Emacs." (ensure-pred file-like? emacs-org-agenda-files-track) + (ensure-pred file-like? emacs-org-agenda-files-track-ql) (define emacs-f-name 'org-agenda-files-track) (define f-name (symbol-append 'emacs- emacs-f-name)) @@ -4583,12 +4585,19 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (rde-elisp-configuration-service emacs-f-name config - `((require 'org-agenda-files-track)) + `(,@(if (get-value 'emacs-org-ql config) + '((require 'org-agenda-files-track-ql) + (setq org-agenda-include-diary nil)) + '((require 'org-agenda-files-track)))) #:summary "\ Org dynamic agenda" - #:commentary "" + #:commentary "\ +This hook records files that should be saved as agenda-files, making the refreshing +and loading of org-agenda faster (and even faster with org-ql cache)." #:keywords '(convenience) - #:elisp-packages (list emacs-org-agenda-files-track)))) + #:elisp-packages (list (if (get-value 'emacs-org-ql config) + emacs-org-agenda-files-track-ql + emacs-org-agenda-files-track))))) (feature (name f-name) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 34d8bc53..bdaa75e4 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4500,9 +4500,11 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (define* (feature-emacs-org-agenda-files-track #:key - (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + (emacs-org-agenda-files-track emacs-org-agenda-files-track) + (emacs-org-agenda-files-track-ql emacs-org-agenda-files-track-ql)) "Configure org-agenda-files-track for GNU Emacs." (ensure-pred file-like? emacs-org-agenda-files-track) + (ensure-pred file-like? emacs-org-agenda-files-track-ql) (define emacs-f-name 'org-agenda-files-track) (define f-name (symbol-append 'emacs- emacs-f-name)) @@ -4512,12 +4514,19 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (rde-elisp-configuration-service emacs-f-name config - `((require 'org-agenda-files-track)) + `(,@(if (get-value 'emacs-org-ql config) + '((require 'org-agenda-files-track-ql) + (setq org-agenda-include-diary nil)) + '((require 'org-agenda-files-track)))) #:summary "\ Org dynamic agenda" - #:commentary "" + #:commentary "\ +This hook records files that should be saved as agenda-files, making the refreshing +and loading of org-agenda faster (and even faster with org-ql cache)." #:keywords '(convenience) - #:elisp-packages (list emacs-org-agenda-files-track)))) + #:elisp-packages (list (if (get-value 'emacs-org-ql config) + emacs-org-agenda-files-track-ql + emacs-org-agenda-files-track))))) (feature (name f-name) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index d226f0af..c78504ea 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4411,9 +4411,11 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (define* (feature-emacs-org-agenda-files-track #:key - (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + (emacs-org-agenda-files-track emacs-org-agenda-files-track) + (emacs-org-agenda-files-track-ql emacs-org-agenda-files-track-ql)) "Configure org-agenda-files-track for GNU Emacs." (ensure-pred file-like? emacs-org-agenda-files-track) + (ensure-pred file-like? emacs-org-agenda-files-track-ql) (define emacs-f-name 'org-agenda-files-track) (define f-name (symbol-append 'emacs- emacs-f-name)) @@ -4423,12 +4425,19 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (rde-elisp-configuration-service emacs-f-name config - `((require 'org-agenda-files-track)) + `(,@(if (get-value 'emacs-org-ql config) + '((require 'org-agenda-files-track-ql) + (setq org-agenda-include-diary nil)) + '((require 'org-agenda-files-track)))) #:summary "\ Org dynamic agenda" - #:commentary "" + #:commentary "\ +This hook records files that should be saved as agenda-files, making the refreshing +and loading of org-agenda faster (and even faster with org-ql cache)." #:keywords '(convenience) - #:elisp-packages (list emacs-org-agenda-files-track)))) + #:elisp-packages (list (if (get-value 'emacs-org-ql config) + emacs-org-agenda-files-track-ql + emacs-org-agenda-files-track))))) (feature (name f-name) -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index f739dad7..285c69dd 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -107,6 +107,7 @@ feature-emacs-org feature-emacs-org-roam feature-emacs-org-agenda + feature-emacs-org-agenda-files-track feature-emacs-citation feature-emacs-org-dailies feature-emacs-org-protocol @@ -4394,6 +4395,32 @@ or with a org-roam-less copy of the package." (org-dailies-capture-templates . ,org-dailies-capture-templates))) (home-services-getter get-home-services))) +(define* (feature-emacs-org-agenda-files-track + #:key + (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + "Configure org-agenda-files-track for GNU Emacs." + (ensure-pred file-like? emacs-org-agenda-files-track) + + (define emacs-f-name 'org-agenda-files-track) + (define f-name (symbol-append 'emacs- emacs-f-name)) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + emacs-f-name + config + `((require 'org-agenda-files-track)) + #:summary "\ +Org dynamic agenda" + #:commentary "" + #:keywords '(convenience) + #:elisp-packages (list emacs-org-agenda-files-track)))) + + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + ;; TODO: rewrite to states (define* (feature-emacs-org-roam #:key -- 2.41.0
--- src/rde/features/emacs-xyz.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm index 73045571..d0e3866e 100644 --- a/src/rde/features/emacs-xyz.scm +++ b/src/rde/features/emacs-xyz.scm @@ -4470,9 +4470,11 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (define* (feature-emacs-org-agenda-files-track #:key - (emacs-org-agenda-files-track emacs-org-agenda-files-track)) + (emacs-org-agenda-files-track emacs-org-agenda-files-track) + (emacs-org-agenda-files-track-ql emacs-org-agenda-files-track-ql)) "Configure org-agenda-files-track for GNU Emacs." (ensure-pred file-like? emacs-org-agenda-files-track) + (ensure-pred file-like? emacs-org-agenda-files-track-ql) (define emacs-f-name 'org-agenda-files-track) (define f-name (symbol-append 'emacs- emacs-f-name)) @@ -4482,12 +4484,19 @@ package is unconfigured but it plays along with emacs-org-agenda-files-track." (rde-elisp-configuration-service emacs-f-name config - `((require 'org-agenda-files-track)) + `(,@(if (get-value 'emacs-org-ql config) + '((require 'org-agenda-files-track-ql) + (setq org-agenda-include-diary nil)) + '((require 'org-agenda-files-track)))) #:summary "\ Org dynamic agenda" - #:commentary "" + #:commentary "\ +This hook records files that should be saved as agenda-files, making the refreshing +and loading of org-agenda faster (and even faster with org-ql cache)." #:keywords '(convenience) - #:elisp-packages (list emacs-org-agenda-files-track)))) + #:elisp-packages (list (if (get-value 'emacs-org-ql config) + emacs-org-agenda-files-track-ql + emacs-org-agenda-files-track))))) (feature (name f-name) -- 2.41.0