Evie Litherland-Smith
bae0553bbb
Move back to separated inbox style for different types of notes Add calendar capture template that prompts for datetime Remove automatic datetime from email workflow, prompt at capture
10 KiB
10 KiB
Org-mode Config
- Keymaps
- Capture templates
- org-roam
- org-agenda
- org-alert
- org-journal
- org-noter
- Refile to config
- citar
- LaTeX
- Publishing config
For reference information, see Org-mode website
(setq org-directory "~/Documents/Org"
org-default-notes-file (expand-file-name "notes.org" org-directory)
org-hide-emphasis-markers nil
org-pretty-entities-include-sub-superscripts t
org-tags-column 0
org-outline-path-complete-in-steps nil
org-return-follows-link t
org-mouse-1-follows-link t
org-link-descriptive t
org-enforce-todo-dependencies t
org-enforce-todo-checkbox-dependencies t
org-refile-use-outline-path t
org-refile-allow-creating-parent-nodes t
org-refile-use-outline-path 'file
org-refile-targets '((nil . (:maxlevel . 2))))
;; Visually indent org-mode files to a given header level
(add-hook 'org-mode-hook #'org-indent-mode)
(use-package org
:ensure t
:custom
(org-babel-load-languages '((emacs-lisp . t)
(python . t))))
Keymaps
(keymap-global-set "C-c o ." #'calendar)
(keymap-global-set "C-c o e" #'org-edit-src-code)
(keymap-global-set "C-c o a" #'org-agenda)
(keymap-global-set "C-c o n" #'org-capture)
(keymap-global-set "C-c o l" #'org-capture-goto-last-stored)
Capture templates
(setq org-capture-templates
'(("n" "Note" entry
(file+datetree "inbox.org")
"* %?"
:tree-type month)
("t" "Task" entry
(file+headline "tasks.org" "Inbox")
"* TODO %?"
:prepend t)
("c" "Calendar Event" entry
(file+headline "calendar.org" "Inbox")
"* %?\n%^t\n\n%i"
:prepend t)
("r" "Reading List" entry
(file+headline "reading.org" "Inbox")
"* %?")
("m" "Email Workflow")
("mf" "Follow Up" entry
(file+olp "mail.org" "Follow Up")
"* TODO Follow up with %:fromname on %a\nDEADLINE: %^{deadline}t\n\n%i")
("mr" "Read Later" entry
(file+olp "mail.org" "Read Later")
"* TODO Read %:subject\nSCHEDULED: %^{scheduled}t\n\n%i")
))
org-roam
(use-package org-roam
:ensure t
:after org
:diminish
:bind (("C-c o r i" . org-roam-node-insert)
("C-c o r f" . org-roam-node-find)
("C-c o r n" . org-roam-capture))
:custom
(org-roam-directory (expand-file-name "roam" org-directory))
(org-roam-completion-everywhere t)
(org-roam-node-display-template (concat "${title:*} "
(propertize "${tags:24}" 'face 'org-tag)))
:config
(mkdir org-roam-directory t)
(add-to-list 'display-buffer-alist
'("\\*org-roam\\*"
(display-buffer-in-side-window)
(side . right)
(slot . 0)
(window-width . 0.33)
(window-parameters . ((no-other-window . t)
(no-delete-other-windows . t)))))
(org-roam-db-autosync-mode +1))
Capture templates
(with-eval-after-load 'org-roam
(setq org-roam-capture-templates
'(("d" "default" plain "%?"
:target (file+head "${slug}.org"
"#+title: ${title}\n#+author: %n")
:unnarrowed t))))
Graph
(with-eval-after-load 'org-roam
(setq org-roam-graph-executable "dot"
org-roam-graph-filetype "svg"))
org-agenda
(setq org-agenda-span 'week
org-agenda-start-on-weekday 1
org-agenda-sticky nil
org-agenda-window-setup 'current-window
org-agenda-tags-column 0
org-agenda-todo-ignore-scheduled 'future
org-agenda-todo-ignore-deadlines 'far
org-agenda-prefix-format '((agenda . " %-12:c%?-12t% s")
(todo . " %-12:c")
(tags . " %-12:c")
(search . " %-12:c"))
org-agenda-files (list (expand-file-name org-directory)))
(add-to-list 'org-refile-targets '(org-agenda-files . (:maxlevel . 2)) t)
Mobile agenda integration
Better syncing to mobile, for use with Orgzly.
(with-eval-after-load 'org
(setq org-mobile-directory "~/.orgmobile/"
org-mobile-agendas nil
org-mobile-files '(org-agenda-files)
org-mobile-inbox-for-pull (expand-file-name "inbox.org" org-directory)
org-mobile-force-id-on-agenda-items nil)
(add-hook 'org-capture-finalize-hook #'org-mobile-push))
org-alert
(use-package org-alert
:ensure t
:after alert
:config
(setq org-alert-notification-title "org-mode agenda"
org-alert-notify-cutoff 30
org-alert-notify-after-event-cutoff 5)
(org-alert-enable))
org-journal
(use-package org-journal
:bind (("C-c o j" . org-journal-new-entry))
:custom
(org-journal-dir (expand-file-name "journal" org-directory))
(org-journal-file-type 'monthly)
(org-journal-file-format "%Y-%m.org"))
org-noter
(use-package org-noter
:ensure t
:diminish
:after (org doc-view)
:commands (org-noter)
:custom
(org-noter-always-create-frame nil)
(org-noter-kill-frame-at-session-end nil)
(org-noter-auto-save-last-location t)
(org-noter-default-notes-file-names '("notes.org"))
(org-noter-doc-property-in-notes t)
(org-noter-notes-search-path (list
(expand-file-name org-directory)
(expand-file-name "~/Documents/References/library/")))
(org-noter-prefer-root-as-file-level nil))
Refile to config
;; Add emacs config files to `org-file-targets'
(dolist (fname my/config-files)
(add-to-list 'org-refile-targets (cons fname '(:maxlevel . 2)) t))
citar
(use-package citar
:ensure t
:diminish
:custom
(org-cite-global-bibliography '("~/Documents/References/main.bib"))
(org-cite-insert-processor 'citar)
(org-cite-follow-processor 'citar)
(org-cite-activate-processor 'citar)
(citar-bibliography org-cite-global-bibliography)
(citar-library-paths '("~/Documents/References/library/"))
(citar-notes-paths '("~/Documents/References/notes/"))
:hook
(LaTeX-mode . citar-capf-setup)
(org-mode . citar-capf-setup)
:bind (("C-c o c" . citar-open)
:map org-mode-map :package org
("C-c o C-c" . #'org-cite-insert))
:config
(require 'nerd-icons)
(require 'citar-embark)
(defvar citar-indicator-files-icons
(citar-indicator-create
:symbol (nerd-icons-octicon
"nf-oct-file"
:face 'nerd-icons-green
:v-adjust -0.1)
:function #'citar-has-files
:padding " " ; need this because the default padding is too low for these icons
:tag "has:files"))
(defvar citar-indicator-links-icons
(citar-indicator-create
:symbol (nerd-icons-octicon
"nf-oct-link"
:face 'nerd-icons-orange
:v-adjust 0.01)
:function #'citar-has-links
:padding " " ; need this because the default padding is too low for these icons
:tag "has:links"))
(defvar citar-indicator-notes-icons
(citar-indicator-create
:symbol (nerd-icons-octicon
"nf-oct-note"
:face 'nerd-icons-blue
:v-adjust -0.3)
:function #'citar-has-notes
:padding " " ; need this because the default padding is too low for these icons
:tag "has:notes"))
(defvar citar-indicator-cited-icons
(citar-indicator-create
:symbol (nerd-icons-octicon
"nf-oct-circle"
:face 'nerd-icon-green)
:function #'citar-is-cited
:padding " " ; need this because the default padding is too low for these icons
:tag "is:cited"))
(setq citar-indicators (list citar-indicator-files-icons
citar-indicator-links-icons
citar-indicator-notes-icons
citar-indicator-cited-icons)))
Citar Embark integration
(use-package citar-embark
:ensure t
:diminish
:after (citar embark)
:init
(citar-embark-mode +1))
LaTeX
(setq org-latex-compiler "lualatex")
(setq org-preview-latex-default-process 'dvisvgm)
Publishing config
(setq org-publish-project-alist
'(("landing"
:base-directory "~/Documents/Web/landing/"
:base-extension "org"
:exclude "README.org"
:recursive t
:publishing-function org-html-publish-to-html
:publishing-directory "/sshx:xenia@legion:/var/www/landing"
:section-numbers nil
:with-author t
:with-email t
:with-toc nil
;; :html-head "<link rel=\"stylesheet\" type=\"text/css\" href=\"https://fniessen.github.io/org-html-themes/src/readtheorg_theme/css/readtheorg.css\"/>"
)
("blog"
:base-directory "~/Documents/Web/blog/"
:base-extension "org"
:exclude "README.org"
:recursive t
:publishing-function org-html-publish-to-html
:publishing-directory "/sshx:xenia@legion:/var/www/blog"
:section-numbers nil
:with-author t
:with-email t
:with-toc t
:html-head "<link rel=\"stylesheet\" type=\"text/css\" href=\"https://fniessen.github.io/org-html-themes/src/readtheorg_theme/css/readtheorg.css\"/>"
)))