fix(org): org-modern: respect defaults for org-*-faces

Makes org-modern respect Doom's defaults out-of-the-box.

Amend: b1e6dec47a
This commit is contained in:
Henrik Lissner
2025-04-05 16:54:38 -04:00
parent 26b97766e6
commit 8168a03599

View File

@ -20,4 +20,22 @@
(add-hook! 'org-modern-mode-hook (add-hook! 'org-modern-mode-hook
(defun +org-modern-show-hidden-stars-in-indent-mode-h () (defun +org-modern-show-hidden-stars-in-indent-mode-h ()
(when org-indent-mode (when org-indent-mode
(setq-local org-modern-hide-stars nil))))) (setq-local org-modern-hide-stars nil))))
;; Carry over the default values of `org-todo-keyword-faces', `org-tag-faces',
;; and `org-priority-faces' as reasonably as possible, but only if the user
;; hasn't already modified them.
(letf! (defun new-spec (spec)
(if (or (facep (cdr spec))
(not (keyword (car-safe (cdr spec)))))
`(:inherit ,(cdr spec))
(cdr spec)))
(unless org-modern-tag-faces
(dolist (spec org-tag-faces)
(add-to-list 'org-modern-tag-faces `(,(car spec) :inverse-video t ,@(new-spec spec)))))
(unless org-modern-todo-faces
(dolist (spec org-todo-keyword-faces)
(add-to-list 'org-modern-todo-faces `(,(car spec) :inverse-video t ,@(new-spec spec)))))
(unless org-modern-priority-faces
(dolist (spec org-priority-faces)
(add-to-list 'org-modern-priority-faces `(,(car spec) :inverse-video t ,@(new-spec spec)))))))