summaryrefslogtreecommitdiff
path: root/modules/org-agenda-config.el
diff options
context:
space:
mode:
authorCraig Jennings <craigmartinjennings@gmail.com>2024-04-11 03:23:03 -0500
committerCraig Jennings <craigmartinjennings@gmail.com>2024-04-11 03:23:03 -0500
commit315f0122ea041d02bb81ad7d4b112a20252cbba8 (patch)
treeb1cc4e6931557cbde4bc3f3aa5208a4057ffdd6d /modules/org-agenda-config.el
parent07fd4f1a6930dc62880b0fd7a0496270f4c2efd6 (diff)
fixed agenda and refile issues
- fixed building refile-targets not building accurately - fixed events in schedule.org not showing up in agendas
Diffstat (limited to 'modules/org-agenda-config.el')
-rw-r--r--modules/org-agenda-config.el85
1 files changed, 45 insertions, 40 deletions
diff --git a/modules/org-agenda-config.el b/modules/org-agenda-config.el
index c034aa05..f0bf7256 100644
--- a/modules/org-agenda-config.el
+++ b/modules/org-agenda-config.el
@@ -4,25 +4,26 @@
;;; Commentary:
;; Agenda views are tied to the F8 (fate) key.
-;; f8 - A daily schedule with task items with a scheduled date or deadline of
-;; the current day. This is followed by a task list containing tasks from
-;; all agenda sources.
-;; C-f8 - A task list containing all tasks from all agenda sources
-;; M-f8 - A task list containing all tasks from the current org-mode buffer.
+
+;; f8 - DAILY SCHEDULE containing a events with a scheduled date or deadline of
+;; the current day. This is followed by...
+;; - TASK LIST containing tasks from all agenda sources.
+
+;; C-f8 - TASK LIST containing all tasks from all agenda sources
+
+;; M-f8 - TASK LIST containing all tasks from the current org-mode buffer.
;; NOTE:
;; Files that contain information relevant to the agenda will be found in the
-;; following places: the schedule-file, org-roam notes tagged as 'projects' and
-;; project todo.org files found in project-dir and code-dir. The function
-;; that rebuilds the agenda list.
+;; following places: the schedule-file, org-roam notes tagged as 'Projects' and
+;; project todo.org files found in project-dir and code-dir.
;; How the agenda is created:
-;; In order to stay current, the files containing agenda information are queried
-;; before calling the functions in the section org-agenda functions to display
-;; the data.
-
-;; This way, we can maximize flexibility and limit the agenda-files to a smaller
-;; set of files for a scoped agenda.
+;; The inbox and schedule files are always included first. However, in order to
+;; stay current, the files containing agenda information are queried before
+;; calling the functions in the section org-agenda functions to display the
+;; data. This way, any newly created events from project todo.org files, or
+;; org-roam Project files will be included.
;;; Code:
@@ -66,8 +67,8 @@
;; ------------------ Org TODO Next/Previous Set Keybindings -----------------
(add-hook 'org-agenda-mode-hook (lambda ()
- (local-set-key (kbd "s-<right>") #'org-agenda-todo-nextset)
- (local-set-key (kbd "s-<left>") #'org-agenda-todo-previousset)))
+ (local-set-key (kbd "s-<right>") #'org-agenda-todo-nextset)
+ (local-set-key (kbd "s-<left>") #'org-agenda-todo-previousset)))
;; ------------------------------ Org Super Agenda -----------------------------
@@ -170,35 +171,39 @@ This allows a line to show in an agenda without being scheduled or a deadline."
;; org-agenda-files list.
(defun cj/add-files-to-org-agenda-files (directory)
- "Recursively searches for files named 'todo.org'.
-Searches in DIRECTORY and adds them to org-project-files."
- (interactive "D")
+ "Recursively searches for files named 'todo.org',
+ Searches in DIRECTORY and adds them to org-project-files."
+ (interactive "D")
(setq org-agenda-files
- (append org-agenda-files
- (directory-files-recursively directory "^[Tt][Oo][Dd][Oo]\\.[Oo][Rr][Gg]$" t))))
+ (append (directory-files-recursively directory
+ "^[Tt][Oo][Dd][Oo]\\.[Oo][Rr][Gg]$" t)
+ org-agenda-files)))
+
;; NOTE: the following functions require org-roam functionality
(with-eval-after-load 'org-roam-config
- ;; ---------------------------- Rebuild Org Agenda ---------------------------
-
- (defun cj/build-org-agenda-list ()
- "Rebuilds the org agenda list."
- (interactive)
- ;; reset org-agenda-files to inbox-file
- (setq org-agenda-files (list inbox-file))
- (let ((new-files
- (append
- (cj/org-roam-list-notes-by-tag "Project"))))
- (dolist (file new-files)
- (unless (member file org-agenda-files)
- (setq org-agenda-files (cons file org-agenda-files)))))
-
- (cj/add-files-to-org-agenda-files projects-dir)
- (cj/add-files-to-org-agenda-files code-dir))
-
- ;; build org-agenda-list for the first time once emacs init is complete.
- (add-hook 'emacs-startup-hook 'cj/build-org-agenda-list)
+ ;; ---------------------------- Rebuild Org Agenda ---------------------------
+
+ (defun cj/build-org-agenda-list ()
+ "Rebuilds the org agenda list.
+Begins with the inbox-file and schedule-file, then searches for org-roam
+Projects and adds all todo.org files from code and project directories."
+ (interactive)
+ ;; reset org-agenda-files to inbox-file
+ (setq org-agenda-files (list inbox-file schedule-file))
+ (let ((new-files
+ (append
+ (cj/org-roam-list-notes-by-tag "Project"))))
+ (dolist (file new-files)
+ (unless (member file org-agenda-files)
+ (setq org-agenda-files (cons file org-agenda-files)))))
+
+ (cj/add-files-to-org-agenda-files projects-dir)
+ (cj/add-files-to-org-agenda-files code-dir))
+
+ ;; build org-agenda-list for the first time once emacs init is complete.
+ (add-hook 'emacs-startup-hook 'cj/build-org-agenda-list)
;; ------------------------ Org Agenda Display Functions -----------------------