summaryrefslogtreecommitdiff
path: root/emacs/custom/my-org.el
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-03-23 09:49:16 -0700
committerFranck Cuny <franck@fcuny.net>2022-03-23 09:49:16 -0700
commit0fa0c488addd9e888ddff9df68693ed1c00f0657 (patch)
tree8263b53384585005f5ecdda14f4ae1dc900d688d /emacs/custom/my-org.el
parentrename fcuny-git to my-git (diff)
downloademacs.d-0fa0c488addd9e888ddff9df68693ed1c00f0657.tar.gz
rename fcuny-org to my-org
Diffstat (limited to 'emacs/custom/my-org.el')
-rw-r--r--emacs/custom/my-org.el177
1 files changed, 177 insertions, 0 deletions
diff --git a/emacs/custom/my-org.el b/emacs/custom/my-org.el
new file mode 100644
index 0000000..1c68600
--- /dev/null
+++ b/emacs/custom/my-org.el
@@ -0,0 +1,177 @@
+;;; my-org.el --- Configure org-mode
+;;; Commentary:
+;;; Code:
+
+;; (require 'fcuny-vars)
+;; (require 'fcuny-clipboard)
+
+(require 'use-package)
+
+(use-package org-ml
+ :ensure t)
+
+(use-package htmlize
+ :ensure t)
+
+(use-package org
+ :ensure t
+ :commands (org-check-agenda-file org-protocol-capture)
+ :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))
+
+ :init
+ ;; save all the org buffers after refilling tasks
+ (advice-add 'org-refile :after
+ (lambda (&rest _)
+ (org-save-all-org-buffers)))
+
+ :config
+ (defvar load-language-list '((emacs-lisp . t)
+ (python . t)
+ (shell . 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-directory fcuny/org-directory)
+ ;; hide emphasis markup
+ (org-hide-emphasis-markers t)
+
+ ;; when archiving, inherit the tags from the parent
+ (org-archive-subtree-add-inherited-tags t)
+
+ ;; display unicode characters
+ (org-pretty-entities t)
+
+ ;; log the time of completion
+ (org-log-done 'time)
+ (org-log-into-drawer t)
+
+ (org-startup-indented t)
+
+ (org-cycle-separator-lines 0)
+ (org-startup-folded 'content)
+ (org-todo-keywords '((sequence "TODO" "STARTED" "WAITING" "|" "DONE" "CANCELED")))
+
+ ;; priorities
+ (org-priority-start-cycle-with-default nil) ;; Start one over/under default value.
+ (org-highest-priority ?A)
+ (org-lowest-priority ?D)
+ (org-default-priority ?C) ;; Ensures unset tasks have low priority.
+
+ ;; refile
+ (org-refile-use-cache nil)
+ (org-refile-targets `((,(expand-file-name "tasks.org" org-directory) :maxlevel . 1)
+ (,(expand-file-name "notes.org" org-directory) :maxlevel . 1)
+ (,(expand-file-name "projects.org" org-directory) :tag . "project")))
+ (org-refile-use-outline-path 'file)
+ (org-outline-path-complete-in-steps nil)
+ (org-refile-allow-creating-parent-nodes 'confirm)
+
+ ;; org babel related
+ ;; prevent the conversion of spaces into tabs (necessary for Python code exports)
+ (org-src-fontify-natively t)
+ (org-src-preserve-indentation t)
+ (org-edit-src-content-indentation t)
+
+ ;; I want to follow links on RET
+ (org-return-follows-link t)
+
+ ;; some configurations for exporting document
+ (org-export-with-toc nil)
+ (org-export-with-section-numbers nil)
+
+ ;; A few abbreviations I use regularly
+ (org-link-abbrev-alist
+ '(("src" . "~/workspace/%s")
+ ("jira" . "https://jira.rbx.com/browse/%s")
+ ("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)
+
+ (org-reverse-note-order t))
+
+(use-package org-agenda
+ :ensure nil
+ :after (org)
+ :bind (("C-c a" . org-agenda))
+ :custom
+ (org-agenda-files `(,(expand-file-name "inbox.org" org-directory)
+ ,(expand-file-name "notes.org" org-directory)
+ ,(expand-file-name "tasks.org" org-directory)
+ ,(expand-file-name "projects.org" org-directory)
+ ,(expand-file-name "bookmarks.org" org-directory)
+ ,(expand-file-name "journal.org" org-directory)))
+ (org-agenda-show-all-dates t)
+ (calendar-week-start-day 1)
+ (org-agenda-custom-commands nil)
+ (org-agenda-start-on-weekday 1)
+
+ :config
+ (add-to-list 'org-agenda-custom-commands
+ '("A" "Agenda"
+ ((agenda ""
+ ((org-agenda-span 'week)))
+ (todo "TODO"
+ ((org-agenda-overriding-header "To Refile")
+ (org-agenda-files `(,(expand-file-name "inbox.org" org-directory)))))
+ (todo "STARTED"
+ ((org-agenda-overriding-header "In Progress")))
+ (todo "WAITING"
+ ((org-agenda-overriding-header "Blocked")))
+ (todo "TODO"
+ ((org-agenda-overriding-header "Not yet started")
+ (org-agenda-skip-function '(org-agenda-skip-entry-if 'deadline 'scheduled))))))))
+
+;; (defun fcuny/org-capture/link ()
+;; "Make a TODO entry with a link in clipboard.
+;; The page title is used as an entry heading."
+;; (let* ((url-string (s-trim (fcuny/clipboard-get-contents)))
+;; (pdf (string-suffix-p "pdf" url-string)))
+;; (unless pdf
+;; (let ((page-title (org-web-tools--html-title (org-web-tools--get-url url-string))))
+;; (concat "* "
+;; page-title
+;; "\t%^g"
+;; "\n:PROPERTIES:\n:CREATED: %T\n:URL: "
+;; url-string
+;; "\n:END:\n%?")))))
+
+(use-package org-web-tools
+ :ensure t)
+
+(use-package org-capture
+ :ensure nil
+ :after (org)
+ :custom
+ (org-capture-templates
+ `(("t" "Todo" entry (file "inbox.org")
+ "* TODO [#D] %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n")
+
+ ("n" "Note" entry (file "notes.org")
+ "* %?\n:PROPERTIES:\n:CREATED: %T\n:END:\n")
+
+ ;; ("l" "Bookmark" entry (file "bookmarks.org")
+ ;; (function fcuny/org-capture/link))
+
+ ("j" "Journal" entry
+ (file+olp+datetree "journal.org")
+ "* %?\n:PROPERTIES:\n:CREATED: %T\n:END:\n" :tree-type day))))
+
+(provide 'my-org)
+;;; my-org.el ends here