doom.d/+org.el

152 lines
6.0 KiB
EmacsLisp
Raw Normal View History

;;; ~/.doom.d/+org.el -*- lexical-binding: t; -*-
;; Org mode configuration
;;
2022-09-10 03:45:53 +02:00
(setq org-ellipsis "")
2019-12-26 01:09:55 +01:00
;; Cycle through header visibility
(after! evil-org
2019-12-26 01:09:55 +01:00
(remove-hook 'org-tab-first-hook #'+org-cycle-only-current-subtree-h))
;; Disable completion
(set-company-backend! 'org-mode nil)
;; Turn off line numbers
(add-hook 'org-mode-hook (lambda () (display-line-numbers-mode -1)))
;; Add Notes to agenda
(setq org-agenda-files '("~/Notes"))
;; Tailor Org super agenda
(use-package! org-super-agenda
:after org-agenda
:init
2022-09-10 03:50:13 +02:00
(setq org-agenda-skip-scheduled-if-done t
org-agenda-skip-deadline-if-done t
org-agenda-include-deadlines t
org-agenda-block-separator nil
org-agenda-tags-column 100
org-agenda-compact-blocks t)
(setq org-super-agenda-groups '((:name "Overdue"
:deadline past)
2022-03-21 15:30:41 +01:00
(:name "Today"
:scheduled today
2022-09-10 03:50:13 +02:00
:deadline today
:time-grid t)
(:name "Important"
:priority "A")
(:name "Assignments"
:tag "labs"
:order 10)
(:name "Exams"
:tag "exams"
:order 10)))
:config
2020-04-02 01:42:51 +02:00
(org-super-agenda-mode))
2019-12-26 01:09:55 +01:00
;; Add timestamp to DONE task
(setq org-log-done 'time)
2020-09-22 15:36:52 +02:00
;; Print babel results to the buffer and export them
(setq org-babel-default-header-args '((:session . "default") (:results . "output") (:exports . "both")
2020-09-22 15:36:52 +02:00
(:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no"))
org-babel-default-lob-header-args '((:exports . "both")))
2020-01-26 14:06:00 +01:00
;; Enter writeroom-mode in all org files
(add-hook 'org-mode-hook 'global-writeroom-mode)
2022-03-11 11:54:01 +01:00
(setq writeroom-major-modes '(org-mode))
2022-10-01 00:52:30 +02:00
(add-hook 'org-mode-hook 'visual-line-mode)
;; Respect LANGUAGE export variable
(add-to-list 'org-latex-packages-alist '("AUTO" "babel" t ("pdflatex")))
2020-04-02 01:42:51 +02:00
;; Don't evaluate code blocks on export
(setq org-export-use-babel nil)
2020-07-01 18:54:44 +02:00
;; Speed up agenda startup
(setq org-agenda-dim-blocked-tasks nil)
;; Open file with folded headlines
(setq org-startup-folded t)
;; Add tufte-handout to LaTeX classes
(after! ox-latex
(add-to-list 'org-latex-classes
'("tufte-handout"
"\\documentclass{tufte-handout}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))))
2021-06-24 15:25:24 +02:00
;; Add org-plain-latex
(after! ox-latex
(add-to-list 'org-latex-classes
'("org-plain-latex"
"\\documentclass{article}
[NO-DEFAULT-PACKAGES]
[PACKAGES]
[EXTRA]"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))))
2022-09-10 02:52:37 +02:00
;; Prettify code block export
(use-package! engrave-faces-latex
:after ox-latex)
(setq org-latex-src-block-backend 'engraved)
2021-06-27 21:21:23 +02:00
;; Set up bibliography management
2022-10-10 16:12:49 +02:00
(setq org-cite-global-bibliography '("~/Documents/Uni/Thesis/docs/bibliography.bib")
citar-bibliography org-cite-global-bibliography)
;; Add citeproc and metadata-file options to ox-pandoc
(after! ox-pandoc
(add-to-list 'org-pandoc-valid-options 'citeproc)
(add-to-list 'org-pandoc-valid-options 'metadata-file))
2021-07-02 17:07:10 +02:00
;; Allow referencing by label in org-ref
(setq org-latex-prefer-user-labels t)
2022-03-21 11:26:26 +01:00
;; Extend pomodoro length to 45/15
(setq org-pomodoro-length '45
org-pomodoro-short-break-length '15
2022-03-21 15:30:41 +01:00
org-pomodoro-long-break-length '30
org-pomodoro-audio-player "pw-play")
;; Define capture templates
(setq org-capture-templates
'(("c" "Cookbook" entry (file "~/Notes/Recipes.org")
"%(org-chef-get-recipe-from-url)"
:empty-lines 1)))
;; Fix org-chef scraping
(setq org-chef-prefer-json-ld t)
;; Get the current state of org-pomodoro
(defun bergheim/org-clock-status ()
"Return the org time status - including any pomodoro activity"
(if (and (featurep 'org-pomodoro) (org-pomodoro-active-p))
(cl-case org-pomodoro-state
(:pomodoro
(format "%d min" (/ (org-pomodoro-remaining-seconds) 60)))
(:short-break
(format "Short break: %d min" (/ (org-pomodoro-remaining-seconds) 60)))
(:long-break
(format "Long break: %d min" (/ (org-pomodoro-remaining-seconds) 60)))
(:overtime
(format "Overtime! %d min" (/ (org-pomodoro-remaining-seconds) 60))))
(if (org-clocking-p)
(format "%s" (org-duration-from-minutes (org-clock-get-clocked-time)))
"")))
;; Save org-download images to an assets directory
2022-05-25 20:48:25 +02:00
(after! org-download
(setq org-download-image-dir "assets/"
org-attach-auto-tag nil))
;; Show images by default with a limited width
(setq org-startup-with-inline-images t
org-image-actual-width 600)
2022-09-10 03:45:53 +02:00
;; Use a modern look
(use-package! org-modern
:hook (org-mode . org-modern-mode)
:config
(setq org-modern-star [""]))
2022-09-17 12:15:09 +02:00
;; Configure a better split and some default for org-noter
(after! org-noter
(setq org-noter-always-create-frame nil
org-noter-doc-split-fraction '(0.7 . 0.3)
org-noter-default-heading-title " "))
2022-10-01 00:58:36 +02:00
;; Increase the latex preview size
(setq org-format-latex-options (plist-put org-format-latex-options :scale 3.0))
2022-10-04 09:27:41 +02:00
;; Close tags automatically
(after! smartparens
(sp-with-modes 'org-mode
(sp-local-pair "*" "*")
(sp-local-pair "_" "_")
(sp-local-pair "/" "/")
(sp-local-pair "~" "~")
(sp-local-pair "=" "=")
(sp-local-pair "$" "$")))
;; Only show a task once if it has a schedule and deadline
(setq org-agenda-skip-deadline-prewarning-if-scheduled t)
2022-10-10 16:12:04 +02:00
;; Auto tangle on save
(add-hook 'org-mode-hook 'org-auto-tangle-mode)