From 9269d22b5310de91f60c32a78689a8fc9da29e38 Mon Sep 17 00:00:00 2001 From: Marc Pohling Date: Thu, 22 Mar 2018 13:45:54 +0100 Subject: [PATCH] added custom org-agenda for work --- config.org | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/config.org b/config.org index 2f6df25..14ca868 100644 --- a/config.org +++ b/config.org @@ -240,7 +240,6 @@ For a more detailed example [[https://github.com/sachac/.emacs.d/blob/83d21e4733 (setq org-default-notes-file "~/Archiv/Dokumente/Notizen/notes.org") #+end_src - ** Org Setup Speed commands are a nice and quick way to perform certain actions while at the beginning of a heading. It's not activated by default. @@ -252,6 +251,94 @@ See the doc for speed keys by checking out the documentation for speed keys in O (setq org-highlight-latex-and-related '(latex script entities)) #+end_src +Setting some environment paths + +#+begin_src emacs-lisp + (if (string-equal user-login-name "POH") + (progn + (defvar PATH_ORG_FILES "p:/Eigene Dateien/Notizen/") + (defvar PATH_ORG_JOURNAL "p:/Eigene Dateien/Notizen/Journal/") + (defvar PATH_START "p:/Eigene Dateien/Notizen/")) + ) +#+end_src + +Sort org 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 + +Custom todo-keywords, depending on environment + +#+begin_src emacs-lisp + (if (string-equal user-login-name "POH") + (setq org-todo-keywords + '((sequence "OPEN" "TODO" "UNCLEAR" "|" "DONE" "IMPOSSIBLE"))) + ) +#+end_src + +Set locations of some org files + +#+begin_src emacs-lisp + (if (string-equal user-login-name "POH") + (progn + (setq org-default-notes-file (concat PATH_ORG_FILES "notes.org")) + (setq org-agenda-files (list(concat PATH_ORG_FILES "notes.org") + (concat PATH_ORG_FILES "projects.org") + (concat PATH_ORG_FILES "todo.org")))) + ) +#+end_src + +Work specific org-capture-templates + +#+begin_src emacs-lisp + (if (string-equal user-login-name "POH") + (setq org-capture-templates + '(("t" "todo" entry (file (concat PATH_ORG_FILES "todo.org")) + "** TODO %\\n%u\n%a\n") + ("n" "note" entry (file org-default-notes-file)) + ("p" "project" entry (file (concat PATH_ORG_FILES "projects.org")) + "** OPEN %?\n%u\n** Beschreibung\n** Zu erledigen\n*** \n** Verlauf\n***" :clock-in t :clock-resume t) + ("u" "Unterbrechung" entry (file org-default-notes-file) + "* Unterbrechnung durch %? :Unterbrechung:\n%t" :clock-in t :clock-resume t))) + ) +#+end_src + +Customize the org agenda + +#+begin_src emacs-lisp + (defun my-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ächsten 7 Tage:"))) + (alltodo "" + ((org-agenda-skip-function '(or (my-org-skip-subtree-if-priority ?A) + (org-agenda-skip-if nil '(scheduled deadline)))) + (org-agenda-overriding-header "Sonstige Aufgaben:")))))) + ) +#+end_src ** Org tags The default value is -77, which is weird for smaller width windows. I'd rather have the tags align horizontally with the header.