The Complete Computing Environment

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 for smaller projects and my work Habits, a 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 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.

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.

(use-package org-agenda
  :ensure nil
  (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")))
  (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)
  (:map evil-leader--default-map
        ("a" . #'org-agenda)))