diff options
-rw-r--r-- | emacs.d/custom/fcuny-org.el | 126 |
1 files changed, 101 insertions, 25 deletions
diff --git a/emacs.d/custom/fcuny-org.el b/emacs.d/custom/fcuny-org.el index fd7dc0c..1ca1880 100644 --- a/emacs.d/custom/fcuny-org.el +++ b/emacs.d/custom/fcuny-org.el @@ -1,45 +1,121 @@ (use-package org :ensure t + :hook ((org-mode . visual-line-mode) (org-mode . org-indent-mode)) + :bind (("C-c c" . org-capture) ("C-c a" . org-agenda)) + :custom + ;; priorities. I use: + ;; -1 important + urgent + ;; -2 important + non-urgent + ;; -3 non-important + urgent + ;; -4 non-important + non-urgent + (org-highest-priority ?1) + (org-default-priority ?4) + (org-lowest-priority ?4) + (org-startup-indented t) - (org-directory "~/Documents/notebooks") + (org-directory (expand-file-name "~/Documents/notebooks")) (org-default-notes-file (concat org-directory "/inbox.org")) (org-agenda-start-on-weekday 1) (org-tags-column -120) + + ;; I want to follow links on RET + (org-return-follows-link t) + (org-blank-before-new-entry (quote ((heading . t) + (plain-list-item . nil)))) + + ;; A few abbreviations I use regularly (org-link-abbrev-alist '(("src" . "~/workspace/%s") ("jira" . "https://jira.twitter.biz/browse/%s") ("ph" . "https://phabricator.twitter.biz/%s") ("go" . "http://go/%s"))) + + ;; The sequence I want to use to navigate tasks (org-todo-keywoards - '((sequence "TODO(t)" "WAIT(w@/!)" "|" "Done(d!)" "Cancelled(c@)" "Someday(s)"))) + '((sequence "TODO(t)" "NEXT(n)" "STARTED(s)" "|" "DONE(d!)" "CANCELED(c@/!)") + (sequence "WAITING(w@/!)" "SOMEDAY(s)" "|" "CANCELED(c@/!)") + (sequence "IDEA(i)" "|" "CANCELED(c@/!)"))) + (org-todo-state-tags-triggers '(("CANCELLED" ("CANCELED" . t)) + ("WAITING" ("WAITING" . t)) + (done ("WAITING")) + ("TODO" ("WAITING") ("CANCELED")) + ("NEXT" ("WAITING") ("CANCELED")) + ("DONE" ("WAITING") ("CANCELED")))) + + (org-enforce-todo-dependencies t) + + ;; list of files to use for the agenda + (org-agenda-files (list (expand-file-name "personal/tasks.org" org-directory) + (expand-file-name "personal/projects.org" org-directory) + (expand-file-name "twitter/tasks.org" org-directory) + (expand-file-name "twitter/projects.org" org-directory) + (expand-file-name "twitter/people.org" org-directory) + (expand-file-name "twitter/meetings.org" org-directory))) + + ;; for the agenda, I want to see tasks in order of priorities. + (org-agenda-custom-commands + '(("c" "Agenda by priorities" + ((tags-todo "PRIORITY=\"1\"" + ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) + (org-agenda-overriding-header "important and urgent:"))) + (tags-todo "PRIORITY=\"2\"" + ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) + (org-agenda-overriding-header "important and non-urgent:"))) + (tags-todo "PRIORITY=\"3\"" + ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) + (org-agenda-overriding-header "non-important and urgent:"))) + (agenda "" ((org-agenda-ndays 1))) + (alltodo "" ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))))) + ((org-agenda-compact-blocks t))))) + (org-capture-templates - (quote (("b" "Bookmark" entry - (file+headline "~/Documents/notebooks/notes.org" "Bookmark") - "* TODO %?\n%i\n:PROPERTIES:\n:CREATED: %U\n:END:\n") - ("r" "Reference" entry - (file+headline "~/Documents/notebooks/notes.org" "Reference") - "* %?\n%i\n:PROPERTIES:\n:CREATED: %U\n:END:\n") - ("e" "Event" entry - (file+headline "~/Documents/notebooks/notes.org" "Event") - "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n") - ("t" "Todo" entry - (file+headline "~/Documents/notebooks/personal/todo.org" "New") - "* TODO %?\n") - ("T" "Work Todo" entry - (file+headline "~/Documents/notebooks/twitter/todo.org" "New") - "* TODO %?\n") - ("d" "Diary" entry - (file+olp+datetree "~/Documents/notebooks/personal/diary.org") - "* %U %?\n" :tree-type week) - ("D" "Work Diary" entry - (file+olp+datetree "~/Documents/notebooks/twitter/diary.org") - "* %U %?\n" :tree-type week) - ("I" "inbox, refile later" entry (file "~/Documents/notebooks/inbox.org") - "\n* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n"))))) + `(;; templates for general references, links, etc. They can be relevant for both work and personal learning. + ("b" "Bookmark" entry + (file+headline ,(concat org-directory "/notes.org") "Bookmark") + "* TODO %^{LINK}\n%?\n:PROPERTIES:\n:CREATED: %U\n:END:\n" + :empty-lines 1) + ("r" "Reference" entry + (file+headline ,(concat org-directory "/notes.org") "Reference") + "* %^{TITLE}\n%?\n:PROPERTIES:\n:CREATED: %U\n:END:\n" + :empty-lines 1) + ("e" "Event" entry + (file+headline ,(concat org-directory "/notes.org") "Event") + "* %^{EVENT}\n%?\n:PROPERTIES:\n:CREATED: %U\n:END:\n" + :empty-lines 1) + + ;; templates for personal things only. + ("t" "Personal Todo" entry + (file+headline ,(concat org-directory "/personal/tasks.org") "New") + "* TODO %?\n" + :empty-lines 1) + ("d" "Personal Journal" entry + (file+olp+datetree ,(concat org-directory "/personal/journal.org")) + "* %U %?\n" + :empty-lines 1) + + ;; templates for work related things only. + ("T" "Work Todo" entry + (file+headline ,(concat org-directory "/twitter/tasks.org") "New") + "* TODO %?\n" + :empty-lines 1) + ("D" "Work Journal" entry + (file+olp+datetree ,(concat org-directory "/twitter/journal.org")) + "* %U %?\n" + :empty-lines 1) + ("M" "Meeting" entry + (file+olp+datetree ,(concat org-directory "/twitter/meetings.org")) + "* %U %^{TITLE}\n%?\n" + :empty-lines 1) + + ;; refile! + ("I" "Inbox, refile later" entry + (file ,(concat org-directory "/inbox.org")) + "\n* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n" + :empty-lines 1)))) (provide 'fcuny-org) |