diff --git a/modules/lang/org/contrib/pretty.el b/modules/lang/org/contrib/pretty.el index 00257d3b4..a0b3f609f 100644 --- a/modules/lang/org/contrib/pretty.el +++ b/modules/lang/org/contrib/pretty.el @@ -20,4 +20,22 @@ (add-hook! 'org-modern-mode-hook (defun +org-modern-show-hidden-stars-in-indent-mode-h () (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)))))))