;; --- CUSTOM DEFINITIONS AND FUNCTIONS --- (defun bab/org-get-todo (entry) (org-entry-get (get-text-property 0 'org-marker entry) "TODO" nil)) (defun bab/todo-column-display-filter (title value) (when (and value (not (string= value "")) (or (string= title "SCHEDULED") (string= title "DEADLINE"))) (format-time-string "%Y-%m-%d" (org-time-string-to-time value)))) (setq org-agenda-custom-commands '(("w" "Work Agenda" ((org-ql-block '(clocked :on today) ((org-ql-block-header "Clocked Today"))) (agenda "" ((org-agenda-span 1) (org-agenda-sorting-strategy '(time-up scheduled-down priority-down deadline-up)) (org-super-agenda-groups '((:todo "WAIT" :order 9) (:anything t))))) (alltodo "" ((org-super-agenda-groups '((:discard (:deadline t)) (:discard (:scheduled t)) (:name "Time Logging" :todo "TLG") (:name "Some Day" :anything t))) (org-agenda-overriding-header "")))) ((org-agenda-files '("~/org/work/tasks")))) ("h" "Home Agenda" ((agenda "" ((org-agenda-span 1))) (org-ql-block '(and (todo) (not (deadline)) (not (scheduled))) ((org-ql-block-header "Some Day")))) ((org-agenda-files '("~/org/home/tasks")))) )) (setq org-capture-templates '(("d" "Development" entry (file "~/org/work/tasks/dev.org") " * %^{Description} :PROPERTIES: :ORDERED: :MERGE_REQUEST: ???%? :END: ** TODO [#C] DEV: %\\1 ** TODO [#B] PQA1: %\\1 " :empty-lines 1) ("D" "DLG Development" entry (file "~/org/work/tasks/dev.org") " * %^{Description} :PROPERTIES: :ORDERED: :DLG: ???%? :END: ** TODO [#C] DEV: %\\1 ** TODO [#B] PQA1: %\\1 ** TODO [#B] QA1: %\\1 ** TODO [#A] PQA2: %\\1 ** TODO [#A] QA2: %\\1 " :empty-lines 1) ("p" "PQA" entry (file "~/org/work/tasks/pqa.org") " * TODO %^{Description} :PROPERTIES: :DLG: ???%? :MERGE_REQUEST: ???%? :END: " :empty-lines 1) ("w" "Work task" entry (file "~/org/work/tasks/misc.org") " * TODO %^{Description} " :empty-lines 1) ("m" "Meeting" entry (file "~/org/work/tasks/meetings.org") " * MEETING %^{Description} " :empty-lines 1))) ;; --- CONFIGURATION --- (define-key global-map "\C-cc" 'org-capture) (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)" "STARTED(s!)" "WAIT(w!)" "|" "DONE(d!)") (sequence "|" "CANCELED(x@)")) org-todo-keyword-faces '(("WAIT" . (:foreground "SteelBlue1" :background "DodgerBlue4")) ("STARTED" . (:foreground "plum1" :background "orchid4")) ("MEETING" . (:foreground "DarkSlateGray1" :background "aquamarine4")) ("CANCELED" . (:foreground "snow4")) ("READ" . (:foreground "PaleGreen1" :background "dark green")) ("CHORE" . (:foreground "goldenrod1" :background "gray25"))) ;; Agenda org-agenda-files '("~/org/home/tasks" "~/org/work/tasks" "~/org/tasks") 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 ;; Column view org-overriding-columns-format "%1PRIORITY %DEADLINE %TODO %CLOCKSUM_T(TODAY) %ESTIMATE{est+} %TLP %ITEM" org-columns-modify-value-for-display-function #'bab/todo-column-display-filter ;; 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-log-into-drawer "LOGBOOK" org-return-follows-link t org-reverse-note-order t org-use-property-inheritance t )