Doc - Org
Define Org document package.
(use-package emacs
:after uno-doc
:config
(provide 'uno-doc-org))
(use-package org
:after uno-doc-org
:custom
(org-adapt-indentation nil)
(org-ellipsis " ▼")
(org-hide-emphasis-markers t)
(org-src-window-setup 'current-window)
(org-todo-keywords '((sequence "TODO" "LIVE" "DONE")))
:hook
(org-babel-after-execute . uno/doc/org/after-execute-inline-images)
(org-mode . toggle-truncate-lines)
(org-mode . uno/doc/org/theme)
:general
(uno-mode-leader-define
:keymaps 'org-mode-map
uno-mode-leader-key '(org-ctrl-c-ctrl-c :which-key "C-c C-c")
"e" '(org-export-dispatch :which-key "Export")
"i" '(:ignore t :which-key "Insert")
"il" '(org-insert-link :which-key "Set link")
"it" '(org-set-tags-command :which-key "Set tags")
"p" '(org-present :which-key "Org present")
"'" '(org-edit-special :which-key "Edit special"))
(uno-mode-leader-define
:definer 'minor-mode
:keymaps 'org-src-mode
uno-mode-leader-key '(org-edit-src-exit :which-key "Finish")
"k" '(org-edit-src-abort :which-key "Cancel"))
(uno-mode-leader-define
:definer 'minor-mode
:keymaps 'org-capture-mode
uno-mode-leader-key '(org-capture-finalize :which-key "Finish")
"k" '(org-capture-kill :which-key "Cancel")
"w" '(org-capture-refile :which-key "Refile"))
:init
(defun uno/doc/org/after-execute-inline-images ()
"Ensure inline images remain visible after org babel execute."
(when org-inline-image-overlays
(org-redisplay-inline-images)))
(defun uno/doc/org/theme ()
"Customize face heights for org-mode."
(when (display-graphic-p)
(custom-theme-set-faces
'user
'(org-drawer ((t (:inherit fixed-pitch))))
'(org-property-value ((t (:inherit fixed-pitch))))
'(org-special-keyword ((t (:inherit fixed-pitch))))
'(org-document-title ((t (:height 2.05))))
'(org-level-1 ((t (:inherit outline-1 :height 1.90))))
'(org-level-2 ((t (:inherit outline-2 :height 1.75))))
'(org-level-3 ((t (:inherit outline-3 :height 1.60))))
'(org-level-4 ((t (:inherit outline-4 :height 1.45))))
'(org-level-5 ((t (:inherit outline-5 :height 1.30))))
'(org-level-6 ((t (:inherit outline-6 :height 1.15)))))))
:config
(require 'ox-beamer)
(require 'ox-groff)
(require 'ox-md))
(use-package org-superstar
:if (display-graphic-p)
:after (uno-doc-org org)
:custom
(org-hide-leading-stars nil)
(org-superstar-leading-bullet "")
(org-superstar-special-todo-items t)
(org-superstar-todo-bullet-alist '(("TODO" . 9744)
("LIVE" . 9746)
("DONE" . 9745)))
:hook
(org-mode . org-superstar-mode))
(use-package org-present
:after uno-doc-org
:hook
(org-present-mode . org-display-inline-images)
(org-present-mode . org-present-big)
(org-present-mode . org-present-hide-cursor)
(org-present-mode . org-present-read-only)
(org-present-mode . uno/doc/org/present)
(org-present-mode-quit . blink-cursor-mode)
(org-present-mode-quit . fringe-mode)
(org-present-mode-quit . org-present-read-write)
(org-present-mode-quit . org-present-show-cursor)
(org-present-mode-quit . org-present-small)
(org-present-mode-quit . uno/doc/org/present-quit)
:general
(uno-define
:keymaps 'org-present-mode-keymap
"h" 'org-present-prev
"l" 'org-present-next
"q" 'org-present-quit
"<left>" 'org-present-prev
"<right>" 'org-present-next)
:init
(defun uno/doc/org/present ()
"Start up org-present."
(set-window-margins (get-buffer-window) 1 1)
(setq-local header-line-format " ")
(blink-cursor-mode -1)
(fringe-mode -1))
(defun uno/doc/org/present-quit ()
"Clean up after exiting org-present."
(set-window-margins (get-buffer-window) 0 0)
(setq-local header-line-format nil)
(unless org-startup-with-inline-images
(org-remove-inline-images))))
(use-package org-present
:after (uno-doc-org evil)
:hook
(org-present-mode . evil-motion-state)
(org-present-mode-quit . evil-normal-state))
(use-package hide-mode-line
:after (uno-doc-org org-present)
:hook
(org-present-mode . turn-on-hide-mode-line-mode)
(org-present-mode-quit . turn-off-hide-mode-line-mode))
(use-package org-roam
:after (uno-doc-org org)
:custom
(org-roam-capture-templates
'(("d" "default" plain "%?"
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
"#+TITLE: ${title}\n#+STARTUP: showall\n\n")
:unnarrowed t)))
(org-roam-complete-everywhere t)
(org-roam-db-location (uno-cache-path "org-roam/org-roam.db"))
(org-roam-directory "~/Roam")
:general
(uno-leader-define
"r" '(:ignore t :which-key "Org Roam")
"rd" '(org-roam-dailies-capture-today :which-key "Capture today")
"rf" '(org-roam-node-find :which-key "Find node"))
(uno-mode-leader-define
:keymaps 'org-mode-map
"ir" '(org-roam-node-insert :which-key "Add Org Roam link")
"r" '(org-roam-buffer-list :which-key "Roam backlinks"))
:init
(setq org-roam-v2-ack t)
:config
(require 'org-roam-dailies)
(mkdir (expand-file-name org-roam-dailies-directory org-roam-directory) t)
(uno/handle-side-window "\\*org-roam\\*")
(org-roam-setup))
(use-package evil-org
:after (uno-doc-org evil org)
:custom
(evil-org-use-additional-insert t)
(evil-org-key-theme '(textobjects navigation todo additional))
:hook
(org-mode . evil-org-mode)
(org-src-mode . evil-normalize-keymaps)
:config
(evil-org-set-key-theme))
(use-package evil-org
:after (uno-doc-org evil org-agenda)
:config
(require 'evil-org-agenda)
(evil-org-agenda-set-keys))