about summary refs log tree commit diff stats
path: root/lisp/acdw-reading.el
blob: e21cff928e7bc69a5372b9a883f9f5cc7283ca28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
;;; acdw-reading.el --- minor mode for reading -*- lexical-binding: t -*-

;; Copyright 2021 Case Duckworth <acdw@acdw.net>
;; This file is NOT part of GNU Emacs.

;;; License:

;; Everyone is permitted to do whatever with this software, without
;; limitation.  This software comes without any warranty whatsoever,
;; but with two pieces of advice:
;; - Don't hurt yourself.
;; - Make good choices.

;;; Code:

;;;###autoload
(define-minor-mode reading-mode
  "A mode for reading."
  :init-value nil
  :lighter " Read"
  :keymap (make-sparse-keymap)
  (if reading-mode
      (progn ;; turn on
        ;; settings
        (setq-local orig-indicate-empty-lines indicate-empty-lines
                    indicate-empty-lines nil
                    orig-indicate-buffer-boundaries indicate-buffer-boundaries
                    indicate-buffer-boundaries nil)
        ;; disable modes
        (dolist (mode '(display-fill-column-indicator-mode))
          (when (fboundp mode)
            (funcall mode -1)))
        ;; enable modes
        (dolist (mode '(olivetti-mode))
          (when (fboundp mode)
            (funcall mode +1))))
    ;; turn off
    ;; settings
    (setq-local indicate-empty-lines orig-indicate-empty-lines
                indicate-buffer-boundaries orig-indicate-buffer-boundaries)
    ;; enable modes
    (dolist (mode '(display-fill-column-indicator-mode))
      (when (fboundp mode)
        (funcall mode +1)))
    ;; disable modes
    (dolist (mode '(olivetti-mode))
      (when (fboundp mode)
        (funcall mode -1)))))

(provide 'acdw-reading)
;;; acdw-reading.el ends here