aboutsummaryrefslogtreecommitdiff
path: root/.emacs.d/rul-lisp/packages/rul-org.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/rul-lisp/packages/rul-org.el')
-rw-r--r--.emacs.d/rul-lisp/packages/rul-org.el156
1 files changed, 156 insertions, 0 deletions
diff --git a/.emacs.d/rul-lisp/packages/rul-org.el b/.emacs.d/rul-lisp/packages/rul-org.el
new file mode 100644
index 0000000..0727239
--- /dev/null
+++ b/.emacs.d/rul-lisp/packages/rul-org.el
@@ -0,0 +1,156 @@
+;; Debian packages: elpa-org elpa-org-bullets
+;; Elpa packages: org-modern
+(require 'org)
+(require 'org-capture)
+(require 'org-protocol)
+(require 'org-habit)
+(require 'org-bullets)
+
+(require 'org-modern)
+
+(require 'rul-config-org)
+
+(require 'rul-org-agenda)
+(require 'rul-org-journal)
+(require 'rul-org-roam)
+
+(setq org-cycle-separator-lines 0)
+(setq org-startup-indented t)
+(setq org-hide-leading-stars nil)
+
+(add-hook 'org-mode-hook 'turn-off-auto-fill)
+(add-hook 'org-mode-hook 'visual-line-mode)
+
+(setq org-startup-indented t
+ org-bullets-bullet-list '(" ") ;; no bullets, needs org-bullets package
+ org-pretty-entities nil
+ org-hide-emphasis-markers t
+ ;; show actually italicized text instead of /italicized text/
+ org-fontify-whole-heading-line t
+ org-fontify-done-headline t
+ org-fontify-quote-and-verse-blocks t)
+
+;; ORG BINDINGS ;;
+(global-set-key (kbd "C-c l") #'org-store-link)
+(global-set-key (kbd "C-c c") #'org-capture)
+(global-set-key (kbd "C-c s") #'org-schedule)
+
+;; ORG STATES ;;
+(setq org-todo-keywords
+ (quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)")
+ (sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "PHONE" "MEETING"))))
+
+(setq org-use-fast-todo-selection t)
+
+(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")))))
+
+(setq org-enforce-todo-dependencies t)
+(setq org-log-done (quote time))
+(setq org-log-redeadline (quote time))
+(setq org-log-reschedule (quote time))
+
+;; CAPTURE ;;
+(setq org-default-notes-file org-refile-path)
+(setq org-capture-templates
+ (quote
+ (
+ ("w" "Todo" entry (file+headline org-refile-path "Tasks")
+ "* TODO "
+ :empty-lines 1)
+ ("m"
+ "Capture incoming email"
+ entry
+ (file+headline org-refile-path "Incoming")
+ "* TODO Re: %:description\n\n Source: %u, %a\n"
+ :empty-lines 1)
+ )))
+
+(add-hook 'org-capture-mode-hook 'delete-other-windows)
+(setq org-protocol-flag nil)
+
+(defadvice org-capture-finalize (after delete-frame-at-end activate)
+ "Delete frame at remember finalization"
+ (progn (if org-protocol-flag (delete-frame))
+ (setq org-protocol-flag nil)))
+
+(defadvice org-capture-kill (after delete-frame-at-end activate)
+ "Delete frame at remember abort"
+ (progn (if org-protocol-flag (delete-frame))
+ (setq org-protocol-flag nil)))
+
+(defadvice org-protocol-capture (before set-org-protocol-flag activate)
+ (setq org-protocol-flag t))
+
+
+;; REFILE ;;
+
+; Targets include this file and any file contributing to the agenda - up to 3 levels deep
+(setq org-refile-targets
+ '((nil :maxlevel . 3)
+ (org-agenda-files :maxlevel . 3)))
+
+; Targets complete directly with IDO
+(setq org-outline-path-complete-in-steps nil)
+
+; Allow refile to create parent tasks with confirmation
+(setq org-refile-allow-creating-parent-nodes (quote confirm))
+
+
+
+;; ORG REPORTS ;;
+; Set default column view headings: Task Effort Clock_Summary
+(setq org-columns-default-format "%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM")
+
+(defun my-org-clocktable-indent-string (level)
+ (if (= level 1)
+ ""
+ (let ((str "^"))
+ (while (> level 2)
+ (setq level (1- level)
+ str (concat str "--")))
+ (concat str "-> "))))
+
+(advice-add 'org-clocktable-indent-string :override #'my-org-clocktable-indent-string)
+
+(setq org-clock-clocktable-default-properties '(:maxlevel 4 :scope file :formula %))
+
+; global Effort estimate values
+; global STYLE property values for completion
+(setq org-global-properties (quote (("Effort_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
+ ("STYLE_ALL" . "habit"))))
+
+;; TAGS ;;
+; Tags with fast selection keys
+(setq org-tag-alist (quote ((:startgroup)
+ ("@errand" . ?e)
+ ("@office" . ?o)
+ ("@home" . ?H)
+ (:endgroup)
+ ("WAITING" . ?w)
+ ("HOLD" . ?h)
+ ("PERSONAL" . ?P)
+ ("WORK" . ?W)
+ ("ORG" . ?O)
+ ("NOTE" . ?n)
+ ("CANCELLED" . ?c)
+ ("FLAGGED" . ??))))
+
+(setq org-stuck-projects
+ '("+LEVEL=2+PROJECT/-MAYBE-DONE" ("NEXT") ("@shop")
+ "\\<IGNORE\\>"))
+
+; Allow setting single tags without the menu
+(setq org-fast-tag-selection-single-key (quote expert))
+
+;; org-modern
+(add-hook 'org-mode-hook 'org-modern-mode)
+(add-hook 'org-agenda-finalize-hook #'org-modern-agenda)
+
+(provide 'rul-org)
nihil fit ex nihilo