Files
infra/dotfiles/desktop/.emacs.d/lisp/lang/org.el
2026-04-21 16:45:17 +02:00

168 lines
4.5 KiB
EmacsLisp
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
;;; org.el -*- lexical-binding: t; -*-
(use-package htmlize
:ensure t)
;; Setting default directory for Org files.
(setq org-directory "~/Org")
(defvar org-notes-file (expand-file-name "notes.org" org-directory)
"Default Org notes file.")
(defvar org-calendar-file (expand-file-name "calendar.org" org-directory)
"Default Org calendar file.")
(defface +org-todo-active
'((t (:foreground "#51afef" :weight bold)))
"Face for active Org TODO states.")
(defface +org-todo-project
'((t (:foreground "#c678dd" :weight bold)))
"Face for project Org TODO states.")
(defface +org-todo-onhold
'((t (:foreground "#ECBE7B" :weight bold)))
"Face for waiting Org TODO states.")
(defface +org-todo-cancel
'((t (:foreground "#ff6c6b" :weight bold)))
"Face for cancelled Org TODO states.")
(use-package org
:init
(setq org-clock-mode-line-total 'today
org-fontify-done-headline t
org-fontify-quote-and-verse-blocks t
org-indent-mode t
org-agenda-skip-unavailable-files t
org-return-follows-link t
org-src-fontify-natively t
org-src-tab-acts-natively t
org-startup-folded 'content
org-hide-leading-stars t
org-hide-emphasis-markers t
org-id-link-to-org-use-this t
org-id-track-globally t
org-todo-keywords
'((sequence
"TODO(t)"
"PROJ(p)"
"LOOP(r)"
"STRT(s)"
"WAIT(w)"
"HOLD(h)"
"IDEA(i)"
"|"
"DONE(d)"
"KILL(k)")
(sequence
"[ ](T)"
"[-](S)"
"[?](W)"
"|"
"[X](D)")
(sequence
"|"
"OKAY(o)"
"YES(y)"
"NO(n)"))
org-todo-keyword-faces
'(("[-]" . +org-todo-active)
("STRT" . +org-todo-active)
("[?]" . +org-todo-onhold)
("WAIT" . +org-todo-onhold)
("HOLD" . +org-todo-onhold)
("PROJ" . +org-todo-project)
("NO" . +org-todo-cancel)
("KILL" . +org-todo-cancel))
org-export-backends '(html latex odt md ascii icalendar)
org-latex-pdf-process '("pdflatex -interaction nonstopmode %f"
"pdflatex -interaction nonstopmode %f")
org-latex-default-class "article"
org-html-doctype "html5"
org-html-html5-fancy t
org-default-notes-file (expand-file-name "inbox.org" org-directory)
org-agenda-files (mapcar (lambda (file)
(expand-file-name file org-directory))
'("inbox.org" "tasks.org" "calendar.org" "notes.org"))
org-capture-templates
'(("t" "Task" entry
(file org-default-notes-file)
"* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n")
("n" "Note" entry
(file org-notes-file)
"* %U %?\n")
("e" "Event" entry
(file org-calendar-file)
"* %?\nSCHEDULED: %^T\n")))
:config
(require 'org-tempo)
(require 'org-id)
(require 'org-protocol)
(add-to-list 'org-src-lang-modes '("go" . go-ts))
(add-to-list 'org-src-lang-modes '("rust" . rust-ts))
(add-hook 'org-mode-hook 'org-indent-mode))
(use-package org-appear
:ensure t
:hook (org-mode . org-appear-mode))
(use-package org-bullets
:ensure t
:init
(setq org-bullets-bullet-list '("" "" "" "" ""))
:config
(add-hook 'org-mode-hook 'org-bullets-mode))
(use-package org-re-reveal
:ensure t
:init
(setq org-re-reveal-transition 'none
org-re-reveal-theme "dracula"))
(use-package org-alert
:ensure t
:after org
:config
(setq alert-default-style 'libnotify
org-alert-interval 300
org-alert-notify-cutoff 5
org-alert-notify-after-event-cutoff 10
org-alert-notification-title "Org Agenda")
(add-hook 'org-agenda-mode-hook #'org-alert-enable))
(use-package ob-mermaid
:ensure t
:init
(setq ob-mermaid-cli-path (or (executable-find "mmdc") "mmdc")))
(use-package ob-go
:ensure t
:after org)
(use-package ob-rust
:ensure t
:after org)
(provide 'lang/org)
(with-eval-after-load 'org
(require 'ob-C)
(require 'ob-emacs-lisp)
(require 'ob-go)
(require 'ob-perl)
(require 'ob-python)
(require 'ob-rust)
(require 'ob-shell)
(org-babel-do-load-languages
'org-babel-load-languages
'((C . t)
(emacs-lisp . t)
(go . t)
(perl . t)
(python . t)
(rust . t)
(shell . t))))
;;; org.el ends here