~abcdw/rde-devel

Add feature emacs-org-dynamic-agenda. v1 APPLIED

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(-)



          
          
          
        
      
      
        
      
      
        
      
      
        
      
      
        
          






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?
Export patchset (mbox)
How do I use this?

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 -3
Learn more about email & git

[PATCH 1/4] rde: Add feature-emacs-org-dynamic-agenda. Export this patch

---
 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(-)

[PATCH v2 1/4] rde: Add feature-emacs-org-agenda-files-track. Export this patch

---
 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

[PATCH v3 1/4] rde: Add feature-emacs-org-agenda-files-track Export this patch

---
 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

[PATCH v4 1/4] rde: Add feature-emacs-org-agenda-files-track Export this patch

---
 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?

[PATCH v5 1/4] rde: emacs-org-roam: Delete duplicate definition Export this patch

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

[PATCH v6 1/4] rde: Add feature-emacs-org-agenda-files-track Export this patch

---
 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

[PATCH 2/4] feature: emacs-org-agenda: maybe-path-or-list? for org-agenda-files. Export this patch

---
 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

[PATCH v2 2/4] feature: emacs-org-agenda: maybe-path-or-list? for org-agenda-files. Export this patch

---
 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

[PATCH v3 2/4] rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files Export this patch

---
 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

[PATCH v4 2/4] rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files Export this patch

---
 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

[PATCH v5 2/4] rde: Add feature emacs-org-dailies Export this patch

---
 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

[PATCH v6 2/4] rde: emacs-org-agenda: maybe-path-or-list? for org-agenda-files Export this patch

---
 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

[PATCH 3/4] rde: Add feature-emacs-org-ql. Export this patch

---
 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

[PATCH v2 3/4] rde: Add feature-emacs-org-ql. Export this patch

---
 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

[PATCH v3 3/4] rde: Add feature-emacs-org-ql Export this patch

---
 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

[PATCH v4 3/4] rde: Add feature-emacs-org-ql Export this patch

---
 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

[PATCH v5 3/4] rde: emacs-org-roam: Properly integrate with feature-org-dailies Export this patch

---
 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

[PATCH v6 3/4] rde: Add feature-emacs-org-ql Export this patch

---
 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

[PATCH 4/4] feature: emacs-org-dynamic-agenda: Properly integrate with org-ql. Export this patch

---
 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

[PATCH v2 4/4] feature: emacs-org-agenda-files-track: org-ql integration. Export this patch

---
 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

[PATCH v3 4/4] rde: emacs-org-agenda-files-track: org-ql integration Export this patch

---
 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

[PATCH v4 4/4] rde: emacs-org-agenda-files-track: org-ql integration Export this patch

---
 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

[PATCH v5 4/4] rde: Add feature-emacs-org-agenda-files-track Export this patch

---
 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

[PATCH v6 4/4] rde: emacs-org-agenda-files-track: org-ql integration Export this patch

---
 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