(setq org-startup-indented t
org-startup-with-inline-images t
+ org-startup-folded 'content
org-cycle-inline-images-display t
org-M-RET-may-split-line nil
org-table-export-default-format "orgtbl-to-csv"
'((file . find-file)))
(setq org-directory "~/org"
- org-agenda-files '("~/org")
- org-default-notes-file "~/org/refile.org"
- org-journal-file "~/org/journal.org")
+ org-agenda-files (mapcar 'file-truename (file-expand-wildcards "~/org/*.org"))
+ ;; org-default-notes-file "~/org/refile.org"
+ ;; org-journal-file "~/org/journal.org"
+ )
(setq org-refile-targets '((nil :maxlevel . 9) (org-agenda-files :maxlevel . 9))
org-refile-use-outline-path 'file
org-refile-allow-creating-parent-nodes 'confirm)
-(setq org-todo-keywords '((sequence "TODO(t)"
- "WAITING(w@/!)"
- "IN-PROGRESS(i!)"
- "ORDERED(o!)"
- "QUOTED(q!)"
- "|"
- "RECEIVED(r!/@)"
- "DELEGATED(l@)"
- "DONE(d!/@)"
- "CANCELLED(c@)")))
-
-(setq org-tag-alist '((:startgroup . nil)
- ("licenses" . ?l)
- ("need" . ?n)
- ("standard" . ?s)
- ("wisdom" . ?w)
- (:endgroup . nil)))
+(setq org-todo-keywords
+ '((sequence "TODO(t)" "NEXT(n)" "HOLD(h)" "|" "DONE(d)")))
+
+(defun log-todo-next-creation-date (&rest ignore)
+ "Log NEXT creation time in the property drawer under the key 'ACTIVATED'"
+ (when (and (string= (org-get-todo-state) "NEXT")
+ (not (org-entry-get nil "ACTIVATED")))
+ (org-entry-put nil "ACTIVATED" (format-time-string "[%Y-%m-%d]"))))
+
+(add-hook 'org-after-todo-state-change-hook #'log-todo-next-creation-date)
+
+;; (setq org-todo-keywords '((sequence "TODO(t)"
+;; "WAITING(w@/!)"
+;; "IN-PROGRESS(i!)"
+;; "ORDERED(o!)"
+;; "QUOTED(q!)"
+;; "|"
+;; "RECEIVED(r!/@)"
+;; "DELEGATED(l@)"
+;; "DONE(d!/@)"
+;; "CANCELLED(c@)")))
+
+;; (setq org-tag-alist '((:startgroup . nil)
+;; ("licenses" . ?l)
+;; ("need" . ?n)
+;; ("standard" . ?s)
+;; ("wisdom" . ?w)
+;; (:endgroup . nil)))
(setq org-agenda-restore-windows-after-quit t
org-agenda-start-on-weekday 0
- org-agenda-span 14
+ org-agenda-span 10
org-deadline-warning-days 30
org-agenda-window-setup 'current-window
- org-agenda-remove-tags t
- org-agenda-prefix-format '((agenda . " %:c %b %?-12t% s")
- (todo . " %:c % b")
- (tags . " %:c % b")
- (search . " %:c % b")))
+ org-agenda-remove-tags t)
+;; org-agenda-prefix-format '((agenda . " %:c %b %?-12t% s")
+;; (todo . " %:c % b")
+;; (tags . " %:c % b")
+;; (search . " %:c % b")))
(setq org-agenda-custom-commands
- '((" " "Agenda"
+ '(("g" "Get Things Done (GTD)"
+ ((agenda ""
+ ((org-agenda-skip-function
+ '(org-agenda-skip-entry-if 'deadline))
+ (org-deadline-warning-days 0)))
+ (todo "NEXT"
+ ((org-agenda-skip-function
+ '(org-agenda-skip-entry-if 'deadline))
+ (org-agenda-prefix-format " %i %-12:c [%e] ")
+ (org-agenda-overriding-header "\nTasks\n")))
+ (agenda nil
+ ((org-agenda-entry-types '(:deadline))
+ (org-agenda-format-date "")
+ (org-deadline-warning-days 7)
+ (org-agenda-skip-function
+ '(org-agenda-skip-entry-if 'notregexp "\\* NEXT"))
+ (org-agenda-overriding-header "\nDeadlines")))
+ (tags-todo "inbox"
+ ((org-agenda-prefix-format " %?-12t% s")
+ (org-agenda-overriding-header "\nInbox\n")))
+ (tags "CLOSED>=\"<today>\""
+ ((org-agenda-overriding-header "\nCompleted today\n")))))
+ (" " "Agenda"
((tags "need"
((org-agenda-overriding-header "Needed Items")))
(tags-todo "-REFILE+TODO=\"IN-PROGRESS\""
(setq org-columns-default-format "%50ITEM(Task) %10CLOCKSUM %16TIMESTAMP_IA"
org-agenda-start-with-log-mode t)
-(setq org-capture-templates '(("n"
- "Note"
- entry
- (file org-default-notes-file)
- "* %?\n%T")
- ("t"
- "TODO"
- entry
- (file org-default-notes-file)
- "* TODO %?\n%t\n")
- ("f"
- "TODO in Future"
- entry
- (file org-default-notes-file)
- "* TODO %?\nSCHEDULED: %^t\n")
- ("d"
- "TODO with Deadline"
- entry
- (file org-default-notes-file)
- "* TODO %?\nDEADLINE: %^t\n")
- ("l"
- "Purchase Licenses"
- entry
- (file org-default-notes-file)
- "* TODO Get Licenses :licenses:\nDEADLINE: %^t\n- [ ] HMI\n- [ ] IO Server\n")
- ("m"
- "Meeting"
- entry
- (file+olp+datetree org-journal-file)
- "* %? :meeting:\n%^T\n** Notes\n** Action Items")
- ("s"
- "Semi-Weekly PLC Meeting"
- entry
- (file+olp+datetree org-journal-file)
- "* Semi-Weekly PLC Meeting :plc:semiweekly:meeting:%^g \n%t\n** ITEM1")
- ("j"
- "Journal"
- entry
- (file+olp+datetree org-journal-file)
- "* %?\n%T\n")))
+(setq org-capture-templates
+ `(("i" "Inbox" entry (file "inbox.org")
+ ,(concat "* TODO %?\n"
+ "/Entered on/ %U"))
+ ("m" "Meeting" entry (file+headline "agenda.org" "Future")
+ ,(concat "* %? :meeting:\n"
+ "<%<%Y-%m-%d %a %H:00>>"))
+ ("n" "Note" entry (file "notes.org")
+ ,(concat "* Note (%a)\n"
+ "/Entered on/ %U\n" "\n" "%?"))
+ ("@" "Inbox [mu4e]" entry (file "inbox.org")
+ ,(concat "* TODO Reply to \"%a\" %?\n"
+ "/Entered on/ %U"))))
+
+;; (setq org-capture-templates '(("n"
+;; "Note"
+;; entry
+;; (file org-default-notes-file)
+;; "* %?\n%T")
+;; ("t"
+;; "TODO"
+;; entry
+;; (file org-default-notes-file)
+;; "* TODO %?\n%t\n")
+;; ("f"
+;; "TODO in Future"
+;; entry
+;; (file org-default-notes-file)
+;; "* TODO %?\nSCHEDULED: %^t\n")
+;; ("d"
+;; "TODO with Deadline"
+;; entry
+;; (file org-default-notes-file)
+;; "* TODO %?\nDEADLINE: %^t\n")
+;; ("l"
+;; "Purchase Licenses"
+;; entry
+;; (file org-default-notes-file)
+;; "* TODO Get Licenses :licenses:\nDEADLINE: %^t\n- [ ] HMI\n- [ ] IO Server\n")
+;; ("m"
+;; "Meeting"
+;; entry
+;; (file+olp+datetree org-journal-file)
+;; "* %? :meeting:\n%^T\n** Notes\n** Action Items")
+;; ("s"
+;; "Semi-Weekly PLC Meeting"
+;; entry
+;; (file+olp+datetree org-journal-file)
+;; "* Semi-Weekly PLC Meeting :plc:semiweekly:meeting:%^g \n%t\n** ITEM1")
+;; ("j"
+;; "Journal"
+;; entry
+;; (file+olp+datetree org-journal-file)
+;; "* %?\n%T\n")))
(setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id
org-id-method 'ts
org-attach-id-to-path-function-list '(org-attach-id-ts-folder-format
org-attach-id-uuid-folder-format))
+(advice-add 'org-refile :after (lambda (&rest _) (re/org-save-all)))
+
(provide 're-org)
;;; re-org.el ends here