summaryrefslogtreecommitdiff
path: root/config.org
diff options
context:
space:
mode:
authorSzymon Szukalski <szymon@szymonszukalski.com>2026-04-02 12:35:17 +1100
committerSzymon Szukalski <szymon@szymonszukalski.com>2026-04-02 12:35:17 +1100
commitfb8528863313758d4d38e107b04be229709971ef (patch)
tree26d691b7bafd0b8e7c1c88383e2e8008bcee60ed /config.org
parentae9cc5a3404fb8e286374a0c7851ee899b1c1873 (diff)
Revise Org note workflow
Diffstat (limited to 'config.org')
-rw-r--r--config.org46
1 files changed, 19 insertions, 27 deletions
diff --git a/config.org b/config.org
index f1cff0d..935f5c6 100644
--- a/config.org
+++ b/config.org
@@ -365,8 +365,7 @@ subdirectories easy to create from the minibuffer before capturing into them.
(defconst ss/org-agenda-directories
(list ss/org-projects-directory
- ss/org-areas-directory
- ss/org-resources-directory)
+ ss/org-areas-directory)
"Directories whose Org files feed the agenda.")
(defconst ss/org-subdirectory-roots
@@ -374,7 +373,7 @@ subdirectories easy to create from the minibuffer before capturing into them.
("areas" . ,ss/org-areas-directory)
("people" . ,ss/org-people-directory)
("resources" . ,ss/org-resources-directory))
- "PARA roots offered when creating note subdirectories.")
+ "Capture roots offered when creating note subdirectories.")
(defun ss/denote-capture-in-directory (directory &optional keywords &rest prompts)
"Start a Denote Org capture in DIRECTORY with KEYWORDS and PROMPTS.
@@ -410,7 +409,7 @@ If PROMPTS is empty, rely on `denote-prompts'."
"Create a PARA subdirectory using minibuffer completion."
(interactive)
(let* ((root-name (completing-read
- "PARA root: "
+ "Capture root: "
(mapcar #'car ss/org-subdirectory-roots)
nil t))
(root (alist-get root-name ss/org-subdirectory-roots nil nil #'string=))
@@ -463,7 +462,7 @@ If TIME is nil, use the current date."
(defun ss/daily-note-template (&optional time)
"Return the initial contents for the daily note at TIME."
- (format "#+title: %s\n\n* Tasks\n\n* Meetings\n\n* Notes\n\n* Open loops\n"
+ (format "#+title: %s\n\n* Tasks\n\n* Notes\n\n* Open Loops\n"
(format-time-string "%Y-%m-%d" (or time (current-time)))))
(defun ss/ensure-daily-note (&optional time)
@@ -506,10 +505,11 @@ Return the path to the note."
** Capture entry points
-Daily capture goes to today's plain Org file. Denote capture uses Denote's own
-Org integration so note identity, metadata, and directories stay under Denote's
-control rather than custom code. The convenience templates set a few durable
-defaults and prompt for subdirectory placement within the relevant PARA root.
+Daily capture goes to today's plain Org file. Tasks land under =Tasks= while
+notes and meetings land under =Notes=. Denote capture uses Denote's own Org
+integration so note identity, metadata, and directories stay under Denote's
+control rather than custom code. The convenience templates keep the familiar
+entry points, but only project capture injects a structural keyword by default.
#+begin_src emacs-lisp
(use-package org-capture
@@ -525,8 +525,8 @@ defaults and prompt for subdirectory placement within the relevant PARA root.
(file+headline ,#'ss/ensure-daily-note "Notes")
"* %?")
("dm" "Meeting" entry
- (file+headline ,#'ss/ensure-daily-note "Meetings")
- "* %<%H:%M> %?")
+ (file+headline ,#'ss/ensure-daily-note "Notes")
+ "* %<%H:%M> meeting %?")
("n" "Denote")
("nn" "Generic" plain
(file denote-last-path)
@@ -552,7 +552,7 @@ defaults and prompt for subdirectory placement within the relevant PARA root.
(function
(lambda ()
(ss/denote-capture-in-directory
- ss/org-areas-directory '("area") :title :keywords :subdirectory)))
+ ss/org-areas-directory nil :title :keywords :subdirectory)))
:no-save t
:immediate-finish nil
:kill-buffer t
@@ -562,7 +562,7 @@ defaults and prompt for subdirectory placement within the relevant PARA root.
(function
(lambda ()
(ss/denote-capture-in-directory
- ss/org-people-directory '("person") :title :keywords :subdirectory)))
+ ss/org-people-directory nil :title :keywords :subdirectory)))
:no-save t
:immediate-finish nil
:kill-buffer t
@@ -572,17 +572,7 @@ defaults and prompt for subdirectory placement within the relevant PARA root.
(function
(lambda ()
(ss/denote-capture-in-directory
- ss/org-resources-directory '("resource") :title :keywords :subdirectory)))
- :no-save t
- :immediate-finish nil
- :kill-buffer t
- :jump-to-captured t)
- ("nm" "Meeting" plain
- (file denote-last-path)
- (function
- (lambda ()
- (ss/denote-capture-in-directory
- ss/org-directory '("meeting") :title :keywords :subdirectory)))
+ ss/org-resources-directory nil :title :keywords :subdirectory)))
:no-save t
:immediate-finish nil
:kill-buffer t
@@ -591,8 +581,10 @@ defaults and prompt for subdirectory placement within the relevant PARA root.
** Denote
-Denote manages the durable notes. The folder layout reflects lifecycle, while
-Denote handles naming, metadata, linking, and retrieval.
+Denote manages the durable notes. Folder placement carries most of the
+structural meaning, while Denote handles naming, metadata, linking, and
+retrieval. Built-in keywords stay intentionally sparse, with =project=
+retained because project note titles are often ambiguous outside their folder.
#+begin_src emacs-lisp
(use-package denote
@@ -602,7 +594,7 @@ Denote handles naming, metadata, linking, and retrieval.
("C-c n l" . denote-link))
:config
(setq denote-directory ss/org-directory
- denote-known-keywords '("area" "project" "person" "meeting" "1on1" "resource" "decision")
+ denote-known-keywords '("project")
denote-prompts '(title keywords)
denote-org-capture-specifiers "%?")
(denote-rename-buffer-mode 1))