summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emacs.d/custom/fcuny-org.el184
1 files changed, 43 insertions, 141 deletions
diff --git a/emacs.d/custom/fcuny-org.el b/emacs.d/custom/fcuny-org.el
index 7ae92ca..d331a52 100644
--- a/emacs.d/custom/fcuny-org.el
+++ b/emacs.d/custom/fcuny-org.el
@@ -1,91 +1,75 @@
(require 'fcuny-vars)
-(use-package dash
+(use-package htmlize
:ensure t)
(use-package org
:ensure t
- :after (dash)
- :hook ((org-mode . org-indent-mode)
- (org-mode . visual-line-mode)
- (org-mode . org-hide-block-all))
+ :mode (("\\.txt\\'" . org-mode))
+ :hook ((org-mode . org-indent-mode)
+ (org-mode . org-hide-block-all)
+ (org-mode . visual-line-mode)
+ (org-capture-after-finalize . org-save-all-org-buffers)
+ (org-capture-prepare-finalize . org-save-all-org-buffers))
:bind (("C-c c" . org-capture)
- ("C-c a" . org-agenda)
- ("C-c o" . hydra-org-menu/body))
+ ("C-c a" . org-agenda))
+
:config
- (progn ()
- (org-babel-do-load-languages
- 'org-babel-load-languages
- '((shell . t)
- (python . t)
- (emacs-lisp . t))))
-
- (defhydra hydra-org-menu (:hint nil)
- "
-^go to ^ ^action ^
-^-------------------^ ^---------------^
-_g i_: go to inbox _s_: save files
-_g p_: go to personal
-_g w_: go to work
-_g n_: go to notes
-"
- ("g i" (find-file-other-window org-default-inbox-file))
- ("g p" (find-file-other-window org-default-tasks-file))
- ("g w" (find-file-other-window org-default-work-tasks-file))
- ("g n" (find-file-other-window org-default-work-notes-file))
- ("s" (org-save-all-org-buffers)))
+ (defvar load-language-list '((emacs-lisp . t)
+ (python . t)
+ (shell . t)))
+ (use-package org-id :ensure t)
+ (use-package ob-go
+ :ensure t
+ :init (cl-pushnew '(go . t) load-language-list))
+
+ (org-babel-do-load-languages 'org-babel-load-languages
+ load-language-list)
:custom
(org-id-locations-file (concat fcuny/path-emacs-var "/org-id-locations"))
- (org-directory (expand-file-name "~/Documents/notebooks"))
- (org-default-tasks-file (concat org-directory "/tasks.org"))
- (org-default-journal-file (concat org-directory "/journal.org"))
+ (org-directory (expand-file-name "~/Documents/Notebooks"))
+ (org-default-inbox-file (concat org-directory "/inbox.org"))
(org-default-notes-file (concat org-directory "/notes.org"))
+ (org-default-habit-file (concat org-directory "/habits.org"))
+ (org-default-tasks-file (concat org-directory "/personal-tasks.org"))
(org-default-work-tasks-file (concat org-directory "/work-tasks.org"))
+ (org-default-journal-file (concat org-directory "/personal-journal.org"))
(org-default-work-journal-file (concat org-directory "/work-journal.org"))
- (org-default-work-notes-file (concat org-directory "/work-notes.org"))
- (org-default-inbox-file (concat org-directory "/inbox.org"))
+ (org-default-interview-file (concat org-directory "/interviews.org"))
- ;; cosmetic
+ ;; when archiving, inherit the tags from the parent
+ (org-archive-subtree-add-inherited-tags t)
+
+ ;; display unicode characters
(org-pretty-entities t)
- (org-startup-indented nil)
- (org-blank-before-new-entry nil)
- ;;
+ ;; log the time of completion
(org-log-done 'time)
- ;; look
- (org-agenda-window-setup 'current-window)
-
;; priorities
(org-priority-start-cycle-with-default nil) ;; Start one over/under default value.
(org-lowest-priority ?F)
(org-default-priority ?D) ;; Ensures unset tasks have low priority.
- ;; how to manage tasks
- (org-todo-keywords '((sequence "TODO(t)" "STARTED(s)" "DELEGATED(D)" "|" "DONE(d)")
- (sequence "SOMEDAY" "|" "CANCELED(c)")))
-
;; agenda related
(calendar-week-start-day 1) ;; org-mode uses calendar for the date picker, and I want this to start on Monday
(org-agenda-start-on-weekday 1) ;; this is specific to org-agenda
- (org-agenda-span 10)
- (org-agenda-start-day "-7d")
(org-agenda-files `(,org-default-tasks-file
- ,org-default-work-tasks-file))
+ ,org-default-work-tasks-file
+ ,org-default-habit-file))
;; org babel related
;; prevent the conversion of spaces into tabs (necessary for Python code exports)
(org-src-fontify-natively t)
- (org-fontify-done-headline t)
(org-src-preserve-indentation t)
(org-edit-src-content-indentation t)
- ;; behavior
;; I want to follow links on RET
(org-return-follows-link t)
- (org-enforce-todo-dependencies t)
+
+ ;; some configurations for exporting document
(org-export-with-toc nil)
(org-export-with-section-numbers nil)
@@ -97,116 +81,34 @@ _g n_: go to notes
("go" . "http://go/%s")))
;; entries
+ (org-blank-before-new-entry nil)
(org-blank-before-new-entry (quote ((heading . nil)
(plain-list-item . nil))))
;; see https://github.com/abo-abo/swiper/issues/986
(org-goto-interface 'outline-path-completion)
- ;; refile and capture
- (org-refile-use-outline-path 'file)
- (org-outline-path-complete-in-steps nil)
- (org-refile-allow-creating-parent-nodes 'confirm)
- (org-refile-targets (quote ((org-default-tasks-file :level . 0)
- (org-default-work-tasks-file :level . 0)
- (org-default-notes-file :level . 0)
- (org-default-work-notes-file :level . 0))))
-
(org-reverse-note-order t)
(org-capture-templates
- `(("t" "Add task" entry
- (file ,org-default-inbox-file)
- "* TODO [#C] %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n")
+ `(("t" "Todo [inbox]" entry
+ (file+headline ,org-default-inbox-file "Tasks")
+ "* TODO [#D] %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n")
("n" "Note" entry
- (file ,org-default-inbox-file)
- "* %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n")
+ (file ,org-default-notes-file)
+ "* NOTE %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n")
("j" "Journal" entry
(file+olp+datetree ,org-default-journal-file)
- "* %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n" :tree-type month :unnarrowed t)
-
- ("m" "Meeting notes" entry
- (file ,org-default-inbox-file)
- "* %? %^g:meeting:\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n")
+ "* %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n" :tree-type month)
("i" "Interview notes" entry
- (file ,org-default-inbox-file)
+ (file+olp+datetree ,org-default-interview-file)
(file ,(concat fcuny/path-emacs-etc "/interview.org")))
("J" "Work Journal" entry
(file+olp+datetree ,org-default-work-journal-file)
- "* %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n" :tree-type month :unnarrowed t))))
-
-(use-package htmlize
- :ensure t)
-
-;; can't use it for now, my version of org is too old
-;(use-package orgit
-; :ensure t)
-
-(defun fcuny/org-todo-age-time (&optional pos)
- (let ((stamp (org-entry-get (or pos (point)) "CREATED" t)))
- (when stamp
- (time-subtract (current-time)
- (org-time-string-to-time
- (org-entry-get (or pos (point)) "CREATED" t))))))
-
-(defun fcuny/org-todo-age (&optional pos)
- (let ((days (time-to-number-of-days (fcuny/org-todo-age-time pos))))
- (cond
- ((< days 1) "today")
- ((< days 7) (format "%dd" days))
- ((< days 30) (format "%.1fw" (/ days 7.0)))
- ((< days 358) (format "%.1fM" (/ days 30.0)))
- (t (format "%.1fY" (/ days 365.0))))))
-
-(defun fcuny/org-refile-to-datetree (&optional file)
-"Refile current subtree to a datetree in FILE corresponding to it's timestamp.
-The current time is used if the entry has no timestamp. If FILE
-is nil, refile in the current file."
- (interactive)
- (require 'org-datetree)
- (let* ((file (cond
- (file (find-file-noselect file))
- (t (current-buffer))))
- (datetree-date (or (org-entry-get nil "CREATED" t)
- (org-read-date t nil "now")))
- (date (org-date-to-gregorian datetree-date)))
- (org-refile nil nil (list nil (buffer-file-name file) nil
- (with-current-buffer file
- (save-excursion
- (org-datetree-find-date-create date)
- (point)))))))
-
-(defun fcuny/org-refile-to-work-journal ()
-"Refile current subtree to a datetree in work journal corresponding to it's timestamp.
-The current time is used if the entry has no timestamp."
- (interactive)
- (fcuny/org-refile-to-datetree org-default-work-journal-file))
-
-(defun fcuny/org-subtree-region ()
- "Return a list of the start and end of a subtree."
- (save-excursion
- (list (progn (org-back-to-heading) (point))
- (progn (org-end-of-subtree) (point)))))
-
-(defun fcuny/org-refile-directly (file-dest)
- "Move the current subtree to the end of FILE-DEST.
-If SHOW-AFTER is non-nil, show the destination window,
-otherwise, this destination buffer is not shown."
- (interactive "fDestination: ")
-
- (defun dump-it (file contents)
- (find-file-other-window file-dest)
- (goto-char (point-max))
- (insert "\n" contents))
-
- (save-excursion
- (let* ((region (fcuny/org-subtree-region))
- (contents (buffer-substring (first region) (second region))))
- (apply 'kill-region region)
- (save-window-excursion (dump-it file-dest contents)))))
+ "* %?\n:PROPERTIES:\n:ID: %(shell-command-to-string \"uuidgen\"):CREATED: %U\n:END:\n" :tree-type month))))
(provide 'fcuny-org)