From 065d52edbd4377ad8926f17b62ac37c02bef2713 Mon Sep 17 00:00:00 2001 From: Marc Date: Sun, 8 Dec 2019 17:35:56 +0000 Subject: [PATCH] added custom org agenda --- init.org | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/init.org b/init.org index 187818f..920a71e 100644 --- a/init.org +++ b/init.org @@ -368,6 +368,53 @@ Some windows specific stuff (org-id-update-id-locations)) ;; update id file .org-id-locations on startup #+END_SRC +** org-agenda +Custom keywords, depending on environment +#+BEGIN_SRC emacs-lisp +(pcase me/whoami + ("work_remote") + (setq org-todo-keywords + '((sequence "OPEN" "TODO" "UNCLEAR" "|" "DONE" "IMPOSSIBLE")))) +#+END_SRC + +Sort agenda by deadline and priority +#+BEGIN_SRC emacs-lisp +(setq org-agenda-sorting-strategy + (quote + ((agenda deadline-up priority-down) + (todo priority-down category-keep) + (tags priority-down category-keep) + (search category-keep)))) +#+END_SRC + +Customize the org agenda +#+BEGIN_SRC emacs-lisp +(defun me--org-skip-subtree-if-priority (priority) + "Skip an agenda subtree if it has a priority of PRIORITY. + + PRIORITY may be one of the characters ?A, ?B, or ?C." + (let ((subtree-end (save-excursion (org-end-of-subtree t))) + (pri-value (* 1000 (- org-lowest-priority priority))) + (pri-current (org-get-priority (thing-at-point 'line t)))) + (if (= pri-value pri-current) + subtree-end + nil))) + +(setq org-agenda-custom-commands + '(("c" "Simple agenda view" + ((tags "PRIORITY=\"A\"" + ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) + (org-agenda-overriding-header "Hohe Priorität:"))) + (agenda "" + ((org-agenda-span 7) + (org-agenda-start-on-weekday nil) + (org-agenda-overriding-header "Nächste 7 Tage:"))) + (alltodo "" + ((org-agenda-skip-function '(or (me--org-skip-subtree-if-priority ?A) + (org-agenda-skip-if nil '(scheduled deadline)))) + (org-agenda-overriding-header "Sonstige Aufgaben:"))))))) +#+END_SRC + ** *TODO* org-super-agenda