diff options
author | Franck Cuny <fcuny@twitter.com> | 2019-04-19 16:37:02 -0700 |
---|---|---|
committer | Franck Cuny <fcuny@twitter.com> | 2019-04-19 16:37:02 -0700 |
commit | 7dc7a8557d1274ec5e794df0d20280721cb6b584 (patch) | |
tree | 952857a06b8dc5b3e0d9ded140b2e2824059191b /emacs.d | |
parent | [emacs] add a few more packages to work with go. (diff) | |
download | emacs.d-7dc7a8557d1274ec5e794df0d20280721cb6b584.tar.gz |
[emacs] more work on org-mode.
I'm adding a custom view for the agenda, in order to see tasks in order of priorities (what's urgent, important, etc). This should help me to focus and prioritize work correctly. I've also added some comments, and used the `org-directory` variable to build all the paths.
Diffstat (limited to '')
-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) |