summaryrefslogtreecommitdiff
path: root/.config/emacs/bd-org.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/bd-org.el')
-rw-r--r--.config/emacs/bd-org.el98
1 files changed, 98 insertions, 0 deletions
diff --git a/.config/emacs/bd-org.el b/.config/emacs/bd-org.el
new file mode 100644
index 0000000..7f3919f
--- /dev/null
+++ b/.config/emacs/bd-org.el
@@ -0,0 +1,98 @@
+;; -*- lexical-binding: t; -*-
+
+(defvar-local agenda-file "/home/bdunahu/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))
+
+(use-package org
+ :hook
+ (org-mode . bd/org-mode-setup-hook)
+ :commands (org-capture org-agenda)
+ :bind (("C-c n a" . 'org-agenda)
+ ("C-c n c" . 'org-capture)
+ ("C-c n s" . 'org-schedule)
+ ("C-c n d" . 'org-deadline)
+ ("C-c n r" . 'org-refile))
+ :config
+ (advice-add 'org-refile :after 'org-save-all-org-buffers) ; after refiling tasks, save all buffers
+ (org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((emacs-lisp . t)
+ (python . t)
+ (shell . t)
+ (lisp . t)))
+ :custom
+ (org-startup-folded 'show2levels)
+ (org-ellipsis " ▾")
+ (org-agenda-files
+ `(,agenda-file
+ "/home/bdunahu/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")
+ ("tt" "Task" entry (file+olp ,agenda-file "Unsorted")
+ "* TODO %?\n %U\n %a" :empty-lines 1)))
+ (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 5)
+ (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"))))))))
+
+(defun org-roam-node-insert-immediate (arg &rest args)
+ "Insert a new org mode link, but do not open the
+file."
+ (interactive "P")
+ (let ((args (cons arg args))
+ (org-roam-capture-templates (list (append (car org-roam-capture-templates)
+ '(:immediate-finish t)))))
+ (apply #'org-roam-node-insert args)))
+
+(use-package org-roam
+ :after org
+ :bind (("C-c n l" . 'org-roam-buffer-toggle)
+ ("C-c n f" . 'org-roam-node-find)
+ ("C-c n i" . 'org-roam-node-insert)
+ ("C-c n g" . 'org-roam-graph)
+ ("C-c n I" . 'org-roam-node-insert-immediate)
+ ("C-c n j" . 'org-roam-dailies-capture-today)
+ :map org-mode-map
+ ("C-M-i" . 'completion-at-point))
+ :config
+ (org-roam-db-autosync-mode)
+ :custom
+ (org-roam-directory "/home/bdunahu/Personal/roam/")
+ (org-roam-dailies-directory "logs/")
+ (org-roam-complete-everywhere t)
+ (org-roam-capture-templates '(("e" "extend" plain
+ "#+AUTHOR: bdunahu\n#+DESCRIPTION: %^{Description}\n#+STARTUP: show3levels\n" :target
+ (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}")
+ :unnarrowed t)
+ ("d" "default" plain "%?" :target
+ (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}")
+ :unnarrowed t))))