3.0 KiB
My Org-mode Agendas
(provide 'cce/org-agenda)
When implementing a PARA Method system in Emacs, I struggled mostly with trying to cohesively organize my data. I had a number of project-specific org files for large projects, as well as a work.org
for smaller projects and my work Habits, a todo.org
for personal projects, and a number of calendars synced in to the system through org-gcal
; I also included project directories with a bunch of org-mode files in them like the CCE so that work could be tracked within that project. Because my org-mode structure was heading-based1[Heading-based versus File-based Org]]] and I was consistently using Org's archiving functionality, this was a pretty scalable method, and it worked out well enough for what it was doing, over-collecting2[The Collector's Fallacy]]].
My current PARA system simplifies down to a smaller number of files so that it can fit in to the file-based model of my current PARA Method system. The goal is simply to constrain the number of files and headings which org-agenda needs to look in. Previously I could simply say ~/org/
is an org-agenda-file
. Now that would cause hundreds and eventually thousands of buffers to be opened to search for headings.
I use Dynamic and fast agendas to define my org-agenda-files
rather than defining a short list here, I hope it works and scales out.
My org-mode agendas can be much more simple than they have been, I think, because I've simplified my Tagging Principles and Project Management structure considerably. These pages describe the agendas I am implementing perhaps more fully than this page will, after all, this is only configuration.
- Weekly Review agenda
- Shopping list functions
(use-package org-agenda
:ensure nil
:init
(defun cce/org-agenda (&optional todo)
"show the preferred agenda -- prefix opens a tag match todo list"
(interactive "P")
(org-agenda nil (if todo "M" "a")))
:custom
(org-agenda-window-setup 'only-window)
(org-agenda-skip-timestamp-if-done t)
(org-agenda-skip-scheduled-if-done t)
(org-agenda-skip-deadline-if-done t)
:commands
(org-agenda)
:bind
(:map evil-leader--default-map
("a" . #'org-agenda)))