summaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/org-mode.el
blob: 45af255fe50a5172b819a609b0f7ffce6c345c2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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
 )