feat(emacs): add denote

This commit is contained in:
Ray Andrew 2025-12-26 21:14:37 -06:00
parent d1d3f31634
commit 1a6469420d
Signed by: rayandrew
SSH key fingerprint: SHA256:XYrYrxF0Z3A72n8P/p6mqPRNQZT22F88XcLsG+kX4xw

View file

@ -623,14 +623,17 @@ frame if FRAME is nil, and to 1 if AMT is nil."
:custom
(denote-directory "~/NPersonal/")
(denote-file-type 'markdown-yaml) ;; Use markdown with YAML front matter
(denote-known-keywords '("project" "idea" "ref" "meeting" "paper"))
(denote-prompts '(title keywords))
(denote-known-keywords '("project" "idea" "ref" "meeting" "paper" "misc"))
(denote-prompts '(subdirectory title keywords)) ;; Prompt for subdir first
(denote-excluded-directories-regexp "^\\.\\|^scripts$") ;; Exclude hidden & scripts
:bind
(("C-c n n" . denote) ;; Create new note
(("C-c n n" . denote) ;; Create new note (prompts for subdir)
("C-c n f" . denote-open-or-create)
("C-c n d" . denote-sort-dired) ;; List all notes in dired
("C-c n i" . denote-link) ;; Insert link to note
("C-c n l" . denote-backlinks) ;; Show backlinks
("C-c n r" . denote-rename-file)
("C-c n r" . denote-rename-file) ;; Rename to denote format
("C-c n R" . denote-rename-file-using-front-matter)
("C-c n k" . denote-keywords-add)
("C-c n K" . denote-keywords-remove))
:config
@ -648,6 +651,40 @@ frame if FRAME is nil, and to 1 if AMT is nil."
(("C-c n b" . denote-org-extras-backlinks-for-heading)
("C-c n h" . denote-org-extras-link-to-heading)))
;; Denote journal (daily notes)
(use-package denote-journal
:ensure t
:custom
(denote-journal-directory "journal/") ;; Subdir for journals
(denote-journal-keyword "journal")
(denote-journal-title-format 'day-date-month-year) ;; e.g., "Thursday 26 December 2024"
:bind
(("C-c n j" . denote-journal-new-entry) ;; New journal entry
("C-c n J" . denote-journal-new-or-existing-entry))) ;; Open today's or create
;; Denote sequence (Folgezettel / sequential notes)
(use-package denote-sequence
:ensure t
:bind
(("C-c n s s" . denote-sequence) ;; Create sequence note
("C-c n s c" . denote-sequence-new-child-of-current) ;; Child of current
("C-c n s S" . denote-sequence-new-sibling-of-current) ;; Sibling of current
("C-c n s f" . denote-sequence-find) ;; Find in sequence
("C-c n s l" . denote-sequence-link) ;; Link to sequence note
("C-c n s d" . denote-sequence-dired))) ;; Dired of sequence
;; Denote explore (visualize connections)
(use-package denote-explore
:ensure t
:bind
(("C-c n e n" . denote-explore-count-notes) ;; Count notes
("C-c n e k" . denote-explore-count-keywords) ;; Count keywords
("C-c n e r" . denote-explore-random-note) ;; Open random note
("C-c n e l" . denote-explore-random-link) ;; Random linked note
("C-c n e g" . denote-explore-network) ;; Visualize network graph
("C-c n e b" . denote-explore-barchart-keywords) ;; Keywords barchart
("C-c n e s" . denote-explore-sync-metadata))) ;; Sync metadata
;;; Optional variables
;; Advanced: Custom link types
@ -666,9 +703,9 @@ frame if FRAME is nil, and to 1 if AMT is nil."
(require 'mu4e-org nil t))
;; Open agenda on startup (deferred)
(add-hook 'elpaca-after-init-hook
(lambda ()
(run-with-idle-timer 1 nil #'org-agenda nil "n")))
; (add-hook 'elpaca-after-init-hook
; (lambda ()
; (run-with-idle-timer 1 nil #'org-agenda nil "n")))
:bind (:map global-map
("C-c a" . org-agenda) ; Agenda