This thread contains a patchset. You're looking at the original emails,
but you may wish to use the patch review UI.
Review patch
17
2
[PATCH 0/3] Add feature emacs-org-dailies.
This patch series splits the org-dailies functionality from the
feature-org-roam, to allow users to have similar org-dailies outside
org-roam.
Nicolas Graves (3):
feature: emacs-org-roam: Delete duplicate definition.
rde: Add feature emacs-org-dailies.
feature: emacs-org-roam: Properly integrate with feature-org-dailies.
src/rde/features/emacs-xyz.scm | 115 ++++++++++++++++++++++++---------
1 file changed, 86 insertions(+), 29 deletions(-)
--
2.41.0
[PATCH 1/3] feature: emacs-org-roam: Delete duplicate definition.
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 4be38b7d..112f0154 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4557,10 +4557,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-file-exclude-regexp
--
2.41.0
[PATCH 2/3] rde: Add feature emacs-org-dailies.
---
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 112f0154..316470b9 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-dailies
feature-emacs-citar
feature-emacs-org-protocol
feature-emacs-spelling
@@ -4450,32 +4451,74 @@ 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-file-exclude-regexp #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 maybe-list? org-roam-file-exclude-regexp)
(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
@@ -4627,6 +4670,7 @@ marginalia annotations."
(feature
(name f-name)
(values `((,f-name . ,emacs-org-roam)
+ (org-roam-dailies? . ,org-roam-dailies?)
(org-roam-todo? . ,org-roam-todo?)))
(home-services-getter get-home-services)))
--
2.41.0
[PATCH 3/3] feature: emacs-org-roam: Properly integrate with feature-org-dailies.
---
src/rde/features/emacs-xyz.scm | 63 +++++++++++++++++++++ -------------
1 file changed, 40 insertions(+), 23 deletions(-)
diff --git a/src/rde/features/emacs-xyz.scm b/src/rde/features/emacs-xyz.scm
index 316470b9..d670bc2a 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4517,6 +4517,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
@@ -4594,12 +4602,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-file-exclude-regexp
@@ -4628,25 +4651,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)
@@ -4660,7 +4677,7 @@ Set roam directory, basic keybindings, reasonable defaults and adjust
marginalia annotations."
#:keywords '(convenience org-mode roam knowledgebase)
#:elisp-packages (append
- (list emacs-org-roam)
+ (list emacs-org-roam-package)
(or (and=> (get-value 'emacs-embark config) list)
'())
(or (and=> (get-value 'emacs-org-recur config)
@@ -4669,7 +4686,7 @@ marginalia annotations."
(feature
(name f-name)
- (values `((,f-name . ,emacs-org-roam)
+ (values `((,f-name . ,emacs-org-roam-package)
(org-roam-dailies? . ,org-roam-dailies?)
(org-roam-todo? . ,org-roam-todo?)))
(home-services-getter get-home-services)))
--
2.41.0
[PATCH v3 2/3] rde: Add feature emacs-org-dailies
---
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 e7a553a7..abcd7f7b 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-citation
+ feature-emacs-org-dailies
feature-emacs-org-protocol
feature-emacs-spelling
feature-emacs-org-recur
@@ -4421,32 +4422,74 @@ 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-file-exclude-regexp #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 maybe-list? org-roam-file-exclude-regexp)
(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
@@ -4600,6 +4643,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 v3 1/3] feature: emacs-org-roam: Delete duplicate definition
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 5cac732f..e7a553a7 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4528,10 +4528,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-file-exclude-regexp
--
2.41.0
[PATCH v3 3/3] feature: emacs-org-roam: Properly integrate with feature-org-dailies
---
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 abcd7f7b..3ef5cccc 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4488,6 +4488,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
@@ -4565,12 +4573,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-file-exclude-regexp
@@ -4599,25 +4622,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 v4 2/3] rde: Add feature emacs-org-dailies
---
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 e7a553a7..abcd7f7b 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-citation
+ feature-emacs-org-dailies
feature-emacs-org-protocol
feature-emacs-spelling
feature-emacs-org-recur
@@ -4421,32 +4422,74 @@ 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-file-exclude-regexp #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 maybe-list? org-roam-file-exclude-regexp)
(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
@@ -4600,6 +4643,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 v4 3/3] rde: emacs-org-roam: Properly integrate with feature-org-dailies
---
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 abcd7f7b..3ef5cccc 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4488,6 +4488,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
@@ -4565,12 +4573,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-file-exclude-regexp
@@ -4599,25 +4622,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 v4 1/3] rde: emacs-org-roam: Delete duplicate definition
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 5cac732f..e7a553a7 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4528,10 +4528,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-file-exclude-regexp
--
2.41.0
Re: [PATCH v4 1/3] rde: emacs-org-roam: Delete duplicate definition
On 2024-01-14 19:43, Nicolas Graves wrote:
> 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 5cac732f..e7a553a7 100644
> --- a/src/rde/features/emacs-xyz.scm
> +++ b/src/rde/features/emacs-xyz.scm
> @@ -4528,10 +4528,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-file-exclude-regexp
Hi Nicolas! Thank you for working on it, overall it looks good, but I
can't apply it on current master, can you rebase it please?
Please, add cover letters to rerolls too, otherwise they get
missaligned:
--8<---------------cut here---------------start------------->8---
└┬>[PATCH v4 1/3] rde: emacs-org-roam: Delete duplicate definition
├─>[PATCH v4 2/3] rde: Add feature emacs-org-dailies
└─>[PATCH v4 3/3] rde: emacs-org-roam: Properly integrate with fe
--8<---------------cut here---------------end--------------->8---
--
Best regards,
Andrew Tropin
[PATCH v5 0/3] Add feature emacs-org-dailies.
This patch series splits the org-dailies functionality from the
feature-org-roam, to allow users to have similar org-dailies outside
org-roam.
Nicolas Graves (3):
rde: emacs-org-roam: Delete duplicate definition
rde: Add feature emacs-org-dailies
rde: emacs-org-roam: Properly integrate with feature-org-dailies
src/rde/features/emacs-xyz.scm | 111 +++++++++++++++++++++++++--------
1 file changed, 84 insertions(+), 27 deletions(-)
--
2.41.0
[PATCH v5 1/3] rde: emacs-org-roam: Delete duplicate definition
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 02cdcc64..7a3cc580 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4437,10 +4437,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 v5 2/3] rde: Add feature emacs-org-dailies
---
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 7a3cc580..1cdfa059 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
@@ -4332,30 +4333,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
@@ -4502,6 +4545,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 v5 3/3] rde: emacs-org-roam: Properly integrate with feature-org-dailies
---
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 1cdfa059..452f26b0 100644
--- a/src/rde/features/emacs-xyz.scm
+++ b/src/rde/features/emacs-xyz.scm
@@ -4397,6 +4397,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
@@ -4474,12 +4482,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)
@@ -4503,25 +4526,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
Re: [PATCH v5 0/3] Add feature emacs-org-dailies.
On 2024-01-19 13:40, Nicolas Graves wrote:
> This patch series splits the org-dailies functionality from the
> feature-org-roam, to allow users to have similar org-dailies outside
> org-roam.
>
> Nicolas Graves (3):
> rde: emacs-org-roam: Delete duplicate definition
> rde: Add feature emacs-org-dailies
> rde: emacs-org-roam: Properly integrate with feature-org-dailies
>
> src/rde/features/emacs-xyz.scm | 111 +++++++++++++++++++++++++--------
> 1 file changed, 84 insertions(+), 27 deletions(-)
Hi Nicolas!
Fixed original patch series and highly reworked the integration logic.
https://git.sr.ht/~abcdw/rde/commit/37f1b50d
Thank you for your work, it's on master now.
--
Best regards,
Andrew Tropin
Re: [PATCH v5 0/3] Add feature emacs-org-dailies.
On 2024-02-08 15:40, Andrew Tropin wrote:
> On 2024-01-19 13:40, Nicolas Graves wrote:
>
>> This patch series splits the org-dailies functionality from the
>> feature-org-roam, to allow users to have similar org-dailies outside
>> org-roam.
>>
>> Nicolas Graves (3):
>> rde: emacs-org-roam: Delete duplicate definition
>> rde: Add feature emacs-org-dailies
>> rde: emacs-org-roam: Properly integrate with feature-org-dailies
>>
>> src/rde/features/emacs-xyz.scm | 111 +++++++++++++++++++++++++--------
>> 1 file changed, 84 insertions(+), 27 deletions(-)
>
> Hi Nicolas!
>
> Fixed original patch series and highly reworked the integration logic.
>
> https://git.sr.ht/~abcdw/rde/commit/37f1b50d
>
> Thank you for your work, it's on master now.
Thanks, I'll try from there. IIRC, the package transformation used in
https://git.sr.ht/~abcdw/rde/commit/64845bec380310fa01878c368f7b6c8b9edc298c
was necessary to not have the dailies from org-roam take over the
bindings for org-dailies (which is, really, just a copy of
org-roam-dailies but without forcing org-roam on daily notes, which I do
not find useful).
I'll try without and see if the problem arises again.
--
Best regards,
Nicolas Graves
Re: [PATCH v5 0/3] Add feature emacs-org-dailies.
On 2024-02-08 14:50, Nicolas Graves wrote:
> On 2024-02-08 15:40, Andrew Tropin wrote:
>
>> On 2024-01-19 13:40, Nicolas Graves wrote:
>>
>>> This patch series splits the org-dailies functionality from the
>>> feature-org-roam, to allow users to have similar org-dailies outside
>>> org-roam.
>>>
>>> Nicolas Graves (3):
>>> rde: emacs-org-roam: Delete duplicate definition
>>> rde: Add feature emacs-org-dailies
>>> rde: emacs-org-roam: Properly integrate with feature-org-dailies
>>>
>>> src/rde/features/emacs-xyz.scm | 111 +++++++++++++++++++++++++--------
>>> 1 file changed, 84 insertions(+), 27 deletions(-)
>>
>> Hi Nicolas!
>>
>> Fixed original patch series and highly reworked the integration logic.
>>
>> https://git.sr.ht/~abcdw/rde/commit/37f1b50d
>>
>> Thank you for your work, it's on master now.
>
> Thanks, I'll try from there. IIRC, the package transformation used in
> https://git.sr.ht/~abcdw/rde/commit/64845bec380310fa01878c368f7b6c8b9edc298c
> was necessary to not have the dailies from org-roam take over the
> bindings for org-dailies (which is, really, just a copy of
> org-roam-dailies but without forcing org-roam on daily notes, which I do
> not find useful).
>
> I'll try without and see if the problem arises again.
I reworked it a bit more: https://git.sr.ht/~abcdw/rde/commit/809b42ac
and removed all daily-related functionality from org-roam feature.
--
Best regards,
Andrew Tropin