Skip to content

Instantly share code, notes, and snippets.

@tadiou
Last active September 1, 2020 14:29
Show Gist options
  • Save tadiou/70346e89562b25f456d3dc6350c2d833 to your computer and use it in GitHub Desktop.
Save tadiou/70346e89562b25f456d3dc6350c2d833 to your computer and use it in GitHub Desktop.
; 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