summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--org.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/bd--org.el')
-rw-r--r--.config/emacs/modules/bd--org.el87
1 files changed, 87 insertions, 0 deletions
diff --git a/.config/emacs/modules/bd--org.el b/.config/emacs/modules/bd--org.el
new file mode 100644
index 0000000..c4ade63
--- /dev/null
+++ b/.config/emacs/modules/bd--org.el
@@ -0,0 +1,87 @@
+;; -*- lexical-binding: t; -*-
+
+
+(defvar-local agenda-file "~/Personal/roam/agenda/agenda_tasks.org")
+
+(defun bd/org-mode-setup-hook ()
+ "Sets up improved org-mode defaults upon
+each org file open."
+ (org-indent-mode)
+ (org-toggle-inline-images)
+ (org-toggle-pretty-entities))
+
+;; hooks
+(add-hook 'org-mode-hook 'bd/org-mode-setup-hook)
+
+;; binds
+(keymap-global-set "C-c n a" 'org-agenda)
+(keymap-global-set "C-c n c" 'org-capture)
+(keymap-global-set "C-c n s" 'org-schedule)
+(keymap-global-set "C-c n d" 'org-deadline)
+(keymap-global-set "C-c n r" 'org-refile)
+
+;; source blocks
+(org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((emacs-lisp . t)
+ (python . t)
+ (shell . t)
+ (lisp . t)))
+
+;; standard
+(setopt org-startup-folded 'show2levels
+ org-ellipsis " ▾")
+
+;; agenda
+(advice-add 'org-refile :after 'org-save-all-org-buffers) ; after refiling tasks, save all buffers
+
+(setopt org-agenda-files
+ `(,agenda-file "~/Personal/roam/agenda/archived_tasks.org")
+
+ org-deadline-warning-days 7
+ org-log-done 'time
+ org-log-into-drawer "history"
+
+ org-todo-keywords
+ '((sequence "TODO(t)" "NEXT(n!)" "|" "DONE(d)" "CANC(c)"))
+
+ org-refile-targets ; refile into the headings of these files, not tags
+ '(("archived_tasks.org" :maxlevel . 1)
+ ("agenda_tasks.org" :maxlevel . 1))
+
+ org-capture-templates
+ `(("t" " Tasks")
+ ("ts" "Software Testing" entry (file+olp ,agenda-file "CS415")
+ "* TODO %?\n DEADLINE: %^t")
+ ("tm" "Machine Learning" entry (file+olp ,agenda-file "CS445")
+ "* TODO %?\n DEADLINE: %^t")
+ ("tp" "Programming Languages" entry (file+olp ,agenda-file "CS454")
+ "* TODO %?\n DEADLINE: %^t")
+ ("tc" "Creative Writing" entry (file+olp ,agenda-file "E210")
+ "* TODO %?\n DEADLINE: %^t")
+ ("s" " Self")
+ ("s" "Unsorted Task" entry (file+olp ,agenda-file "Self")
+ "* TODO %?\n %^t\n %a"))
+
+ org-agenda-custom-commands
+ '(("S" "Standard Block Agenda"
+ ((tags-todo "*"
+ ((org-agenda-skip-function '(org-agenda-skip-if nil '(timestamp)))
+ (org-agenda-block-separator nil)
+ (org-agenda-overriding-header "Undated Tasks\n")))
+ (agenda "" ((org-agenda-span 8)
+ (org-deadline-warning-days 0)
+ (org-agenda-block-separator nil)
+ (org-scheduled-past-days 4)
+ (org-agenda-overriding-header "\nUpcoming Tasks\n")))
+ (agenda "" ((org-agenda-time-grid nil)
+ (org-agenda-show-all-dates nil)
+ (org-agenda-span 21)
+ (org-deadline-warning-days 0)
+ (org-agenda-block-separator nil)
+ (org-agenda-entry-types '(:deadline))
+ (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
+ (org-agenda-overriding-header "\nFuture Deadlines (+21d)\n")))))))
+
+
+(provide 'bd--org)