diff options
| author | Szymon Szukalski <szymon@szymonszukalski.com> | 2026-04-02 12:35:17 +1100 |
|---|---|---|
| committer | Szymon Szukalski <szymon@szymonszukalski.com> | 2026-04-02 12:35:17 +1100 |
| commit | fb8528863313758d4d38e107b04be229709971ef (patch) | |
| tree | 26d691b7bafd0b8e7c1c88383e2e8008bcee60ed /config.org | |
| parent | ae9cc5a3404fb8e286374a0c7851ee899b1c1873 (diff) | |
Revise Org note workflow
Diffstat (limited to 'config.org')
| -rw-r--r-- | config.org | 46 |
1 files changed, 19 insertions, 27 deletions
@@ -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)) |
