From 148321a2fdb75eefe49db5e3a6828961006f4668 Mon Sep 17 00:00:00 2001 From: Daniel <89086143+BardofSprites@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:37:38 -0400 Subject: olivetti and logos --- bard-emacs-modules/bard-emacs-package.el | 66 +++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 19 deletions(-) (limited to 'bard-emacs-modules') diff --git a/bard-emacs-modules/bard-emacs-package.el b/bard-emacs-modules/bard-emacs-package.el index 99244c2..2c0e674 100644 --- a/bard-emacs-modules/bard-emacs-package.el +++ b/bard-emacs-modules/bard-emacs-package.el @@ -51,6 +51,7 @@ (global-company-mode 1)) (use-package consult + :defer 2 :config (global-set-key (kbd "C-x b") nil) (global-set-key (kbd "C-x b") #'consult-buffer) @@ -147,26 +148,53 @@ :tab-width 4 :right-divider-width 30 :scroll-bar-width 8))) +;; olivetti +(use-package olivetti + :config + (setq olivetti-body-width 120 + olivetti-recall-visual-line-mode-entry-state t)) -(use-package darkroom - :bind - (("" . bard/darkroom-toggle)) +(use-package logos :config - (setq darkroom-margins 'darkroom-guess-margins) - (setq darkroom-text-scale-increase 1.2) - (defun bard/darkroom-toggle () - (interactive) - (if (equal darkroom-tentative-mode nil) - (progn - (visual-line-mode t) - (darkroom-tentative-mode t) - (setq cursor-type 'bar) - ) - (progn - (darkroom-tentative-mode 0) - (mixed-pitch-mode 0) - (visual-line-mode nil) - ;; (fringe-mode nil) - (setq cursor-type 'box))))) + (defun logos-reveal-entry () + "Reveal Org or Outline entry." + (cond + ((and (eq major-mode 'org-mode) + (org-at-heading-p)) + (org-show-subtree)) + ((or (eq major-mode 'outline-mode) + (bound-and-true-p outline-minor-mode)) + (outline-show-subtree)))) + + (setq logos-outlines-are-pages t) + + (setq logos-outline-regexp-alist + `((emacs-lisp-mode . "^;;;+ ") + (org-mode . "^\\* +") + (t . ,(or outline-regexp logos--page-delimiter)))) + + (setq-default logos-hide-cursor nil + logos-hide-mode-line t + logos-hide-header-line t + logos-hide-buffer-boundaries t + logos-hide-fringe t + logos-variable-pitch t + logos-buffer-read-only nil + logos-scroll-lock nil + logos-olivetti t) + (let ((map global-map)) + (define-key map [remap narrow-to-region] #'logos-narrow-dwim) + (define-key map [remap forward-page] #'logos-forward-page-dwim) + (define-key map [remap backward-page] #'logos-backward-page-dwim) + (define-key map (kbd "M-]") #'logos-forward-page-dwim) + (define-key map (kbd "M-[") #'logos-backward-page-dwim) + (define-key map (kbd "") #'logos-focus-mode)) + + (defun bard/logos--recenter-top () + "Use `recenter' to reposition the view at the top." + (unless (derived-mode-p 'prog-mode) + (recenter 1))) ; Use 0 for the absolute top + + (add-hook 'logos-page-motion-hook #'bard/logos--recenter-top)) (provide 'bard-emacs-package.el) -- cgit v1.2.3