summaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/org-mode.el
blob: bd12c563ab2a9848f6661270d72fac622a756662 (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
72
73
74
75
76
(require 'org-install)

; initialize these to empty lists so config files we reference can use 'add-to-list',
; rather than replacing the whole list and possibly trampling on another config file.
(setq org-agenda-files ())
(setq org-capture-templates ())
(setq org-tag-faces ())

(load-user-file "org-mode.local.el")

(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(add-to-list 'auto-mode-alist `(,(expand-file-name "~/org/") . org-mode))

(define-key mode-specific-map [?a] 'org-agenda)

(eval-after-load "org"
  '(progn
     (define-prefix-command 'org-todo-state-map)

     (define-key org-mode-map "\C-cx" 'org-todo-state-map)

     (define-key org-todo-state-map "x" #'(lambda nil (interactive) (org-todo "CANCELLED")))
     (define-key org-todo-state-map "d" #'(lambda nil (interactive) (org-todo "DONE")))
     (define-key org-todo-state-map "f" #'(lambda nil (interactive) (org-todo "DEFERRED")))
     (define-key org-todo-state-map "l" #'(lambda nil (interactive) (org-todo "DELEGATED")))
     (define-key org-todo-state-map "s" #'(lambda nil (interactive) (org-todo "STARTED")))
     (define-key org-todo-state-map "w" #'(lambda nil (interactive) (org-todo "WAITING")))))

(define-key global-map "\C-cc" 'org-capture)

(custom-set-variables
 '(org-agenda-custom-commands
   '(("h" "Home agenda"
      ((agenda "")
       (alltodo ""
		((org-agenda-skip-function '(org-agenda-skip-if nil '(scheduled deadline)))
		 (org-agenda-overriding-header "Eventual TODO items:"))))
      ((org-agenda-tag-filter-preset '("+home"))))
     ("j" "Work agenda"
      ((agenda "")
       (alltodo ""
		((org-agenda-skip-function '(org-agenda-skip-if nil '(scheduled deadline)))
		 (org-agenda-overriding-header "Eventual TODO items:"))))
      ((org-agenda-tag-filter-preset '("-home"))))
     ("w" todo "WAITING" nil)
     ("W" agenda "" ((org-agenda-ndays 21)))
     ("A" agenda ""
      ((org-agenda-skip-function
	(lambda nil
	  (org-agenda-skip-entry-if
	   (quote notregexp)
	   "\\=.*\\[#!\\]")))
       (org-agenda-ndays 1)
       (org-agenda-overriding-header "Today's Priority #A tasks: ")))
     ("u" alltodo ""
      ((org-agenda-skip-function
	(lambda nil
	  (org-agenda-skip-entry-if
	   (quote scheduled)
	   (quote deadline)
	   (quote regexp)
	   "
]+>"))
       (org-agenda-overriding-header "Unscheduled TODO entries: "))))))
 '(org-agenda-dim-blocked-tasks 'invisible)
 '(org-agenda-ndays 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)
 '(org-deadline-warning-days 7)
 '(org-enforce-todo-dependencies t)
 '(org-fast-tag-selection-single-key (quote expert))
 '(org-return-follows-link t)
 '(org-reverse-note-order t))