Files
dotfiles/emacs/.config/doom/+org.el

152 lines
5.7 KiB
EmacsLisp

;;; package --- summary +org.el
;;; lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(setq +inbox-file "~/org/inbox.org")
(setq +project-file "~/org/projects.org")
(setq +reminders-file "~/org/reminders.org")
(setq +today-file "~/org/today.org")
(setq +work-file "~/org/15five.org")
(after! org
(setq org-directory (expand-file-name "~/org/")
org-journal-dir "~/org/journal/"
org-agenda-files (list org-directory)
org-agenda-window-setup 'only-window
org-pretty-entities t
org-log-done 'time
org-contacts-files '("~/org/contacts.org")
; attempt to return todo function to spacemacs
evil-org-key-theme '(textobjects navigation additional insert todo)
;; show actually italicized text instead of /italicized text/
org-agenda-block-separator ""
org-fontify-whole-heading-line t
org-fontify-done-headline t
org-fontify-quote-and-verse-blocks t
org-ellipsis ""
org-bullets-bullet-list '("" "" "" "")
org-capture-templates
'(("i" "Send to inbox" entry (file+headline "~/org/inbox.org" "Inbox")
"* TODO %?\n")
("l" "Send to inbox with link" entry (file+headline "~/org/inbox.org" "Inbox")
"* TODO %?\n %i\n %a")
("w" "Work diary entry" entry (file "~/org/work_diary.org")
"* %u\n%?\n")
("u" "Add unblink entry" entry (file+headline "~/org/unblink.org" "Misc")
"* TITLE\n:PROPERTIES:\n:EXPORT_FILE_NAME: TITLE\n:EXPORT_DATE: %i\n:END:\n%?\n")
("n" "Add an idea" entry (file "~/org/ideas.org")
"* %?\nEntered on %U\n"))
org-todo-keywords
'((sequence "TODO(t)" "NEXT(n)" "MAYBE(m)" "|" "DONE(d)" "WONTDO(w)"))
org-todo-keyword-faces
'((("TODO" . (:foreground "red" :weight bold))
("NEXT" . (:foreground "blue"))
("MAYBE" . (:foreground "sea green"))
("WAITING" . (:foreground "forest green"))
("WONTDO" . (:foreground "forest green"))
("DONE" . (:foreground "light sea green"))))
org-agenda-span 5
org-agenda-start-day "1d"
org-agenda-custom-commands
'(("N" "List all next tasks" ((agenda "" ((org-agenda-span 1)))
(tags "@errand/-DONE") ; should generaly be pretty empty
(tags "@book/NEXT") ; should generaly be pretty empty
(tags "@work/NEXT")
(tags "@home/NEXT")
(tags "@farm/NEXT")
(tags "@town/NEXT")))
("R" "Weekly Review"
((agenda "" ((org-agenda-span 7)))
(stuck "") ; review stuck projects as designated by org-stuck-projects
(tags "PROJECT/-DONE-MAYBE") ; review all projects
(todo "MAYBE") ; review someday/maybe items
(todo "WAITING")))) ; review waiting items
;;org-use-tag-inheritance t; bug in variable below, just turn 'em off
;;org-tags-exclude-from-injeritance '("PROJECT" "SPRINT") ; PROJECT should not be inheritable
org-stuck-projects
'("+PROJECT/-MAYBE-DONE" ("TODO" "NEXT") nil "\\<IGNORE\\>")
org-tag-alist '(("@home" . ?h)
("@farm" . ?f)
("@town" . ?s)
("@errand" . ?e)
("@work" . ?w)
("@family" . ?m))
org-modules '(ol-eshell
ol-notmuch
ob-eval
ob-exp
ob-http
org-drill
org-id)
; refile targets
org-refile-targets '(("~/org/today.org" :maxlevel . 2)
("~/org/someday.org" :maxlevel . 2)
("~/org/projects.org" :maxlevel . 2)
("~/org/inbox.org" :maxlevel . 2)
("~/org/15five.org" :maxlevel . 2))))
;; org-match-sparse-tree
;;
;; org-set-tags-command
(defun +open-inbox-file ()
(interactive)
"Opens the inbox file"
(find-file +inbox-file))
(defun +open-projects-file ()
(interactive)
"Opens the projects file"
(find-file +project-file))
(defun +open-reminders-file ()
(interactive)
"Opens the reminders file"
(find-file +reminders-file))
(defun +open-today-file ()
(interactive)
"Opens the today file"
(find-file +today-file))
(defun +open-work-file ()
(interactive)
"Opens the today file"
(find-file +work-file))
(map!
:leader
:desc "Open inbox" "I" #'+open-inbox-file
:desc "Open projects" "E" #'+open-projects-file
:desc "Open work" "W" #'+open-work-file
:desc "Open reminders" "R" #'+open-reminders-file
:desc "Open today" "T" #'+open-today-file)
(defun +show-agenda ()
(interactive)
(delete-other-windows)
(with-popup-rules! nil
(org-agenda-list)
(calendar))
(other-window 1)
(split-window-vertically)
(other-window 1)
(find-file +todo-file))
(map! :leader
(:prefix "a"
:desc "Org Agenda" "o" #'org-agenda
:desc "Org open link" "l" #'org-open-at-point
:desc "Sync gcal with org" "g" #'org-gcal-sync
:desc "Set task deadline" "d" #'org-deadline
:desc "Schedule task" "s" #'org-schedule
:desc "New journal entry" "j" #'org-journal-new-entry
:desc "Org set property" "p" #'org-set-progerty
:desc "Save all org buffers" "a" #'org-save-all-org-buffers
:desc "Org todo" "t" #'org-todo
:desc "Org set tags" "T" #'counsel-org-tag))