diff options
author | Tom Willemsen | 2013-02-15 15:37:42 +0100 |
---|---|---|
committer | Tom Willemsen | 2013-02-15 15:37:42 +0100 |
commit | 934d02bcacaa5d0aef64a8edf7677f3b0c198666 (patch) | |
tree | edfc842025b5f8569973567b44ad62aa662f548f /.emacs.d/site-lisp/org-init.el | |
parent | 06ff316f7f3b098504a6342651a79017cfb80ae7 (diff) | |
parent | ee34dfcc2c2fec53731b64afca03bb34dd80b2ba (diff) | |
download | dotfiles-934d02bcacaa5d0aef64a8edf7677f3b0c198666.tar.gz dotfiles-934d02bcacaa5d0aef64a8edf7677f3b0c198666.zip |
Merge remote-tracking branch 'ryuslash/master' into phoenix
Conflicts:
.config/awesome/rc.lua
.emacs.d/init.el
.emacs.d/init.org
.emacs.d/site-lisp/oni.el
Diffstat (limited to '.emacs.d/site-lisp/org-init.el')
-rw-r--r-- | .emacs.d/site-lisp/org-init.el | 83 |
1 files changed, 70 insertions, 13 deletions
diff --git a/.emacs.d/site-lisp/org-init.el b/.emacs.d/site-lisp/org-init.el index 23ae6a5..4033c30 100644 --- a/.emacs.d/site-lisp/org-init.el +++ b/.emacs.d/site-lisp/org-init.el @@ -30,16 +30,73 @@ (require 'org-habit) (require 'org-protocol) +(autoload 'org-clocking-p "org-clock") + (eval-after-load "org-crypt" '(org-crypt-use-before-save-magic)) +(defun oni:note-template () + (concat + "* %<%c>\n" + " :DIRECTORY: =" default-directory "=\n" + (when (buffer-file-name) " :FILE: [[file:%F][%F]]\n") + (when (org-clocking-p) " :TASK: %K\n") + "\n %?")) + +(defun oni:org-maybe-outline-path () + (let ((outline-path (org-format-outline-path (org-get-outline-path)))) + (unless (string= outline-path "") + (setq outline-path (concat "[ " outline-path " ] "))) + outline-path)) + +(defun oni:set-org-agenda-files () + "Set `org-agenda-files` according to the current time." + (interactive) + (let* ((current-time (decode-time)) + (current-hour (nth 2 current-time)) + (current-dow (nth 6 current-time))) + (if (or (= current-dow 6) (= current-dow 0) ; Saturday or Sunday + (< current-hour 9) (>= current-hour 17)) + (setq org-agenda-files + (append oni:personal-agenda-files oni:common-agenda-files)) + (setq org-agenda-files + (append oni:work-agenda-files oni:common-agenda-files))))) + +(defvar oni:personal-agenda-files + (list (expand-file-name "~/documents/org/tasks")) + "My personal agenda, should only show up at times I don't have + to work.") + +(defvar oni:work-agenda-files + (list (expand-file-name "~/documents/org/work")) + "My work agenda, should only show up at times I work.") + +(defvar oni:common-agenda-files + (list (expand-file-name "~/documents/org/dailies") + (expand-file-name "~/documents/org/misc/contacts.org") + (expand-file-name "~/documents/org/misc/bookmarks.org")) + "Agenda files that are work-agnostic, should always show up.") + (setq org-agenda-custom-commands - '(("w" "Work todo." tags-todo "work"))) + '(("P" . "Personal only") + ("Pa" "Personal agenda" agenda "" + ((org-agenda-files (append oni:personal-agenda-files + oni:common-agenda-files)))) + ("Pt" "Personal todo" todo "" + ((org-agenda-files (append oni:personal-agenda-files + oni:common-agenda-files)))) + ("W" . "Work only") + ("Wa" "Work agenda" agenda "" + ((org-agenda-files (append oni:work-agenda-files + oni:common-agenda-files)))) + ("Wt" "Work todo" todo "" + ((org-agenda-files (append oni:work-agenda-files + oni:common-agenda-files)))))) (setq org-agenda-prefix-format '((agenda . " %i %-12:c%?-12t% s") (timeline . " % s") - (todo . " %i %-12:c %(concat \"[ \"(org-format-outline-path (org-get-outline-path)) \" ]\") ") - (tags . " %i %-12:c %(concat \"[ \"(org-format-outline-path (org-get-outline-path)) \" ]\") ") + (todo . " %i %-12:c %(oni:org-maybe-outline-path)") + (tags . " %i %-12:c %(oni:org-maybe-outline-path)") (search . " %i %-12:c"))) (setq org-agenda-sorting-strategy '((agenda habit-down time-up priority-down category-keep) @@ -47,23 +104,19 @@ (tags priority-down category-keep) (search category-keep))) (setq org-agenda-tags-column -101) +(setq org-directory (expand-file-name "~/documents/org")) +(setq org-default-notes-file (concat org-directory "/org")) (setq org-capture-templates - '(("t" "Task" entry (file "~/documents/org/tasks") + `(("t" "Task" entry (file "~/documents/org/tasks") "* TODO %?") ("T" "Linked task" entry (file "~/documents/org/tasks") - "* TODO %?\n\n %a"))) + "* TODO %?\n\n %a") + ("n" "General note" entry (file ,org-default-notes-file) + (function oni:note-template)))) (setq org-contacts-files '("~/documents/org/misc/contacts.org")) -(setq org-directory (expand-file-name "~/documents/org")) -(setq org-agenda-files - (append - `(,(concat org-directory "/tasks") - ,(concat org-directory "/misc/contacts.org") - ,(concat org-directory "/misc/bookmarks.org")) - org-agenda-files)) (setq org-agenda-show-outline-path nil) (setq org-agenda-todo-ignore-deadlines 'far) (setq org-agenda-todo-ignore-scheduled t) -(setq org-default-notes-file (concat org-directory "/org")) (setq org-export-htmlize-output-type 'css) (setq org-feed-alist '(("MyEpisodes" @@ -103,5 +156,9 @@ (org-agenda-to-appt) (ad-activate 'org-agenda-redo) +(oni:set-org-agenda-files) +(run-at-time "09:01" (* 60 60 24) 'oni:set-org-agenda-files) +(run-at-time "17:01" (* 60 60 24) 'oni:set-org-agenda-files) + (provide 'org-init) ;;; org-init.el ends here |