summaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/org-mode.el
diff options
context:
space:
mode:
authorBobby Bingham <koorogi@koorogi.info>2020-04-16 10:49:57 -0500
committerBobby Bingham <koorogi@koorogi.info>2021-02-06 10:39:37 -0600
commitecf3f749df612e1a46ea708c87aefeb666eb5031 (patch)
tree750b2fbdfb4e0f8633bab01a90c69188340caa22 /emacs/.emacs.d/org-mode.el
parent53476d328239ead584ee6020d3c775c48fefb72a (diff)
emacs: redo org mode config
Diffstat (limited to 'emacs/.emacs.d/org-mode.el')
-rw-r--r--emacs/.emacs.d/org-mode.el71
1 files changed, 71 insertions, 0 deletions
diff --git a/emacs/.emacs.d/org-mode.el b/emacs/.emacs.d/org-mode.el
new file mode 100644
index 0000000..45af255
--- /dev/null
+++ b/emacs/.emacs.d/org-mode.el
@@ -0,0 +1,71 @@
+;; --- CUSTOM DEFINITIONS AND FUNCTIONS ---
+(setq
+ ;; list of TODO statuses that are actionable
+ bab/org/todos-actionable '("TODO" "IN-PROGRESS")
+ )
+
+(defun bab/org/get-todo (entry)
+ (org-entry-get (get-text-property 0 'org-marker entry) "TODO" nil))
+
+(defun bab/org/todo-is-actionable (todo)
+ (if (member todo bab/org/todos-actionable) t nil))
+
+(defun bab/org/todo-is-not-actionable (todo)
+ (not (bab/org/todo-is-actionable todo)))
+
+(defun bab/org/cmp-actionable (a b)
+ (let* ((a-is-actionable (bab/org/todo-is-actionable (bab/org/get-todo a)))
+ (b-is-actionable (bab/org/todo-is-actionable (bab/org/get-todo b))))
+ (if (equal a-is-actionable b-is-actionable) nil (if a-is-actionable -1 1))))
+
+;; --- CONFIGURATION ---
+(setq
+ org-capture-templates ()
+ )
+
+(define-key global-map "\C-cc" 'org-capture)
+
+(setq org-agenda-custom-commands
+ '(("a" "Agenda"
+ ((agenda ""
+ ((org-agenda-cmp-user-defined 'bab/org/cmp-actionable)
+ (org-agenda-sorting-strategy '(time-up scheduled-down user-defined-up priority-down deadline-up))))
+ (alltodo ""
+ ((org-agenda-skip-function '(org-agenda-skip-if nil '(scheduled deadline)))
+ (org-agenda-overriding-header "Some day:")))))))
+
+(setq
+ ;; Use priorities A-E, default priority is C
+ org-highest-priority ?A
+ org-lowest-priority ?E
+ org-default-priority ?C
+
+ ;; TODO states and sequences
+ org-todo-keywords
+ '((sequence "TODO(t)" "IN-PROGRESS(p)" "WAIT(w)" "|" "DONE(d)")
+ (sequence "|" "CANCELED(x)"))
+ org-todo-keyword-faces
+ '(("WAIT" . (:foreground "DodgerBlue1"))
+ ("IN-PROGRESS" . "magenta1")
+ ("CANCELED" . (:foreground "snow4")))
+
+ ;; Agenda
+ org-agenda-files '("~/org/agenda")
+ org-agenda-overriding-columns-format "%1PRIORITY %DEADLINE %TODO %CLOCKSUM %80ITEM"
+ org-agenda-dim-blocked-tasks 'invisible
+ org-agenda-span 7
+ org-agenda-show-all-dates t
+ org-agenda-skip-deadline-if-done t
+ org-agenda-skip-deadline-prewarning-if-scheduled t
+ org-agenda-skip-scheduled-if-done t
+ org-agenda-start-on-weekday nil
+
+ ;; Misc configuration
+ org-deadline-warning-days 7
+ org-default-notes-file "~/org/notes"
+ org-enforce-todo-dependencies t
+ org-fast-tag-selection-single-key (quote expert)
+ org-return-follows-link t
+ org-reverse-note-order t
+ org-use-property-inheritance t
+ )