Last active
September 1, 2020 14:29
-
-
Save tadiou/70346e89562b25f456d3dc6350c2d833 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; http://doc.norang.ca/org-mode.html | |
; Register | |
(set-register ?o (cons 'file (concat user-emacs-directory "/org/personal.org"))) | |
(setq personal-org (concat user-emacs-directory "org/personal.org")) | |
(setq work-org (concat user-emacs-directory "org/work.org")) | |
(setq agenda-org (concat user-emacs-directory "org/agenda.org")) | |
(setq refile-org (concat user-emacs-directory "org/refile.org")) | |
;; org-mode-setup | |
(add-hook 'org-mode-hook (lambda () (whitespace-mode -1))) | |
(add-hook 'org-mode-hook (lambda () (visual-line-mode 1))) | |
; Setup the Agenda Files | |
(setq org-agenda-files (list personal-org work-org refile-org agenda-org)) | |
; Clock Idle | |
(setq org-clock-idle-time 10) | |
; Statuses | |
(setq org-todo-keywords | |
(quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)") | |
(sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "MEETING")))) | |
(setq org-todo-state-tags-triggers | |
(quote (("CANCELLED" ("CANCELLED" . t)) | |
("WAITING" ("WAITING" . t)) | |
("HOLD" ("WAITING") ("HOLD" . t)) | |
(done ("WAITING") ("HOLD")) | |
("TODO" ("WAITING") ("CANCELLED") ("HOLD")) | |
("NEXT" ("WAITING") ("CANCELLED") ("HOLD")) | |
("DONE" ("WAITING") ("CANCELLED") ("HOLD"))))) | |
;Refile Magic | |
(setq org-refile-targets '((org-agenda-files :maxlevel . 6))) | |
(setq org-refile-use-outline-path 'file) | |
(setq org-outline-path-complete-in-steps nil) | |
(setq org-refile-allow-creating-parent-nodes 'confirm) | |
; Keybindings | |
;; Global Keys | |
(global-set-key (kbd "<f7>") #'org-agenda-window-setup) | |
(global-set-key (kbd "C-M-s-c") #'org-capture) | |
;; Local Keys | |
(add-hook 'org-mode-hook | |
(lambda () | |
(local-set-key (kbd "C-M-s-t") #'org-todo) | |
(local-set-key (kbd "C-M-s-a") #'org-archive-subtree) | |
(local-set-key (kbd "C-M-s d d") #'org-date-from-calendar) | |
(local-set-key (kbd "C-M-s d l") #'org-deadline) | |
(local-set-key (kbd "C-M-s d s") #'org-schedule) | |
(local-set-key (kbd "<f8> c i") #'org-clock-in) | |
(local-set-key (kbd "<f8> c o") #'org-clock-out) | |
) | |
) | |
; Org Capture | |
(setq org-default-notes-file refile-org) | |
;; Remove empty LOGBOOK drawers on clock out | |
(defun dq/remove-empty-drawer-on-clock-out () | |
(interactive) | |
(save-excursion | |
(beginning-of-line 0) | |
(org-remove-empty-drawer-at "LOGBOOK" (point)))) | |
(add-hook 'org-clock-out-hook 'dq/remove-empty-drawer-on-clock-out 'append) | |
; key message type target template properties | |
; https://www.gnu.org/software/emacs/manual/html_node/org/Template-elements.html#Template-elements | |
; https://sachachua.com/blog/2015/02/learn-take-notes-efficiently-org-mode/ | |
(setq org-capture-templates | |
'( | |
("w" "Work Templates") | |
("ww" "To-Do" entry (file+headline work-org "Tasks") | |
"* TODO %?" | |
:clock-in t :clock-resume t ) | |
("wi" "Ideas" entry (file+olp work-org "Ideas") | |
"* %? %^G" | |
) | |
("wp" "PIT THOUGHTS" entry (file+olp work-org "PIT Thoughts") | |
"* %? %^G" | |
) | |
("wd" "Decision" entry (file+olp work-org "Decisions") | |
"* %? %^G | |
:PROPERTIES: | |
:Owner: | |
:Yea: | |
:Nay: | |
:Date: %U | |
:END: | |
%? | |
** Arguments For | |
** Arguments Against | |
** Considerations | |
" | |
) | |
("wt" "Start Ticket" entry (file work-org) | |
"* TODO [GH%^{Ticket ID}] - %^{Ticket Name} [%] | |
:PROPERTIES: | |
:Link: https://github.com/Participate/participate/issues/%^{Ticket ID} | |
:Owners: %^{owners}p | |
:StartDate: %^U | |
:Points: | |
:END: | |
%?" | |
:clock-in t :clock-resume t ) | |
("ws" "Ticket Subtask" entry (file+function work-org (dq/add-to-subticket %^{})) | |
"* TODO [%] | |
:PROPERTIES: | |
:Owners: %^{owners}p | |
:StartDate: | |
:END: | |
%?" | |
:clock-in t :clock-resume t ) | |
("wm" "Meeting" entry (file+headline work-org "Meetings") | |
"* MEETING %? %^G | |
:PROPERTIES: | |
:Format: %^{prompt|In Person|Video|Chat|Phone} | |
:Initiator: | |
:Topic: | |
:Present: | |
:StartTime: | |
:EndTime: | |
:Agenda: | |
:END: | |
" | |
:clock-in t :clock-resume t ) | |
("r" "Retro Templates") | |
("rw" "What Went Well" entry (file+olp work-org "Retro" "What Went Well") | |
"* %" | |
) | |
("rp" "What Went Poorly" entry (file+olp work-org "Retro" "What Went Poorly") | |
"* %" | |
) | |
("ri" "What Can We Improve" entry (file+olp work-org "Retro" "What Can We Improve") | |
"* %" | |
) | |
("t" "Task for Today" entry (file+headline refile-org "Today") | |
"* TODO %?" | |
) | |
("p" "Personal Templates") | |
("pr" "Reminders" entry (file+headline personal-org "Reminder") | |
"* TODO %?" | |
) | |
("pt" "Tasks" entry (file+headline personal-org "Tasks") | |
"* TODO %?" | |
) | |
("pm" "Meeting" entry (file+headline work-org "Meetings") | |
"* MEETING %T %^G | |
:PROPERTIES: | |
:Format: %^{prompt|In Person|Video|Chat|Phone} | |
:Initiator: | |
:Topic: | |
:Present: | |
:StartTime: | |
:EndTime: | |
:Agenda: | |
:END: | |
%?" | |
:clock-in t :clock-resume t ) | |
("g" "Gift Idea" entry (file+headline refile-org "Gifts") | |
"* %^{For} %?" | |
) | |
("c" "Code Todo" entry (file+headline refile-org "Code Todo") | |
"* TODO %? | |
Path: %F | |
#+BEGIN_SRC %^{language} | |
%i | |
#+END_SRC | |
** Change | |
** Rationale | |
") | |
) | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment