diff options
Diffstat (limited to '.config/emacs/bd-org.el')
-rw-r--r-- | .config/emacs/bd-org.el | 98 |
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)))) |