diff --git a/docs/index.org b/docs/index.org index eff52c0cd..43173982b 100644 --- a/docs/index.org +++ b/docs/index.org @@ -275,3 +275,4 @@ Aesthetic modules that affect the Emacs interface or user experience. + vi-tilde-fringe - TODO + [[file:../modules/ui/window-select/README.org][window-select]] =+switch-window +numbers= - TODO + [[file:../modules/ui/workspaces/README.org][workspaces]] - Isolated workspaces ++ [[file:../modules/ui/zen/README.org][zen]] - Distraction-free coding (or writing) diff --git a/init.example.el b/init.example.el index f1210d1a8..6bf9c773c 100644 --- a/init.example.el +++ b/init.example.el @@ -42,6 +42,7 @@ vi-tilde-fringe ; fringe tildes to mark beyond EOB window-select ; visually switch windows workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing :editor (evil +everywhere); come to the dark side, we have cookies diff --git a/modules/ui/zen/config.el b/modules/ui/zen/config.el new file mode 100644 index 000000000..41db5ea5b --- /dev/null +++ b/modules/ui/zen/config.el @@ -0,0 +1,42 @@ +;;; ui/zen/config.el -*- lexical-binding: t; -*- + +(defvar +zen-mixed-pitch-modes '(markdown-mode org-mode) + "What major-modes to enable `mixed-pitch-mode' in with `writeroom-mode'.") + + +;; +;;; Packages + +(after! writeroom-mode + (setq writeroom-fullscreen-effect nil + writeroom-maximize-window nil) + + ;; Adjust margins when text size is changed + (advice-add #'text-scale-adjust :after #'visual-fill-column-adjust)) + + +(use-package! mixed-pitch + :hook (writeroom-mode . +zen-enable-mixed-pitch-mode-h) + :config + (defun +zen-enable-mixed-pitch-mode-h () + "Enable `mixed-pitch-mode' when in `+zen-mixed-pitch-modes'." + (when (apply #'derived-mode-p +zen-mixed-pitch-modes) + (mixed-pitch-mode (if writeroom-mode +1 -1)))) + + (pushnew! mixed-pitch-fixed-pitch-faces + 'org-date + 'org-special-keyword + 'org-property-value + 'org-ref-cite-face + 'org-tag + 'org-todo-keyword-todo + 'org-todo-keyword-habt + 'org-todo-keyword-done + 'org-todo-keyword-wait + 'org-todo-keyword-kill + 'org-todo-keyword-outd + 'org-todo + 'org-indent + 'font-lock-comment-face + 'line-number + 'line-number-current-line)) diff --git a/modules/ui/zen/packages.el b/modules/ui/zen/packages.el new file mode 100644 index 000000000..5088eac0a --- /dev/null +++ b/modules/ui/zen/packages.el @@ -0,0 +1,5 @@ +;; -*- no-byte-compile: t; -*- +;;; ui/zen/packages.el + +(package! writeroom-mode) +(package! mixed-pitch)