From 46f0f45d782bd176e243136ab5d3875ac676dab3 Mon Sep 17 00:00:00 2001 From: Rob Harbaugh Date: Mon, 17 Nov 2025 21:49:02 -0500 Subject: [PATCH] styling org mode for document editing --- init.el | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/init.el b/init.el index cb60ff3..ddfe5c2 100644 --- a/init.el +++ b/init.el @@ -135,22 +135,68 @@ ;; Use default terminal for SSH (if relevant) (magit-process-find-password-functions '(magit-process-password-auth-source))) +;; Org Mode Configuration ------------------------------------------------------ + (defun rh/org-mode-setup () (org-indent-mode) (variable-pitch-mode 1) - (auto-fill-mode 0) (visual-line-mode 1)) +(defun rh/org-font-setup () + ;; Replace list hyphen with dot + (font-lock-add-keywords 'org-mode + '(("^ *\\([-]\\) " + (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) + + ;; Set faces for heading levels + (dolist (face '((org-level-1 . 1.2) + (org-level-2 . 1.1) + (org-level-3 . 1.05) + (org-level-4 . 1.0) + (org-level-5 . 1.1) + (org-level-6 . 1.1) + (org-level-7 . 1.1) + (org-level-8 . 1.1))) + (set-face-attribute (car face) nil :font "Cantarell" :weight 'regular :height (cdr face))) + + ;; Ensure that anything that should be fixed-pitch in Org files appears that way + (set-face-attribute 'org-block nil :foreground nil :inherit 'fixed-pitch) + (set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch)) + (set-face-attribute 'org-table nil :inherit '(shadow fixed-pitch)) + (set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch)) + (set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch)) + (set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch)) + (set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)) + (use-package org :hook (org-mode . rh/org-mode-setup) :config - (setq org-ellipsis " ▾")) + (setq org-ellipsis " ▾") + (rh/org-font-setup)) + +(use-package org-bullets + :after org + :hook (org-mode . org-bullets-mode) + :custom + (org-bullets-bullet-list '("◉" "○" "●" "○" "●" "○" "●"))) + +(defun rh/org-mode-visual-fill () + (setq visual-fill-column-width 100 + visual-fill-column-center-text t) + (visual-fill-column-mode 1)) + +(use-package visual-fill-column + :hook (org-mode . efs/org-mode-visual-fill)) (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(package-selected-packages nil)) + '(package-selected-packages + '(all-the-icons consult-projectile doom-modeline embark-consult + gruvbox-theme magit marginalia orderless + org-bullets rainbow-delimiters vertico + visual-fill-column))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful.