complete-computing-environment/my_org_mode_agendas.org

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.

(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)))

1

[[id:8bcbf8c4-416c-44a2-8b57-1bda30778d3b

2

[[id:d3b38466-90de-455c-9778-7c6bfa930685