Variable: pdf-view-midnight-minor-mode
pdf-view-midnight-minor-mode is a buffer-local variable defined in
pdf-view.el.
Documentation
Non-nil if Pdf-View-Midnight minor mode is enabled.
Use the command pdf-view-midnight-minor-mode(var)/pdf-view-midnight-minor-mode(fun) to change this
variable.
Key Bindings
pdf-view-mode-map C-c C-r m
Source Code
;; Defined in /nix/store/63h5z2vmzn0mfavcxi2idi23g5xcgkbl-emacs-packages-deps/share/emacs/site-lisp/elpa/pdf-tools-20260102.1101/pdf-view.el
(define-minor-mode pdf-view-midnight-minor-mode
"Apply a color-filter appropriate for past midnight reading.
The colors are determined by the variable
`pdf-view-midnight-colors', which see. "
:group 'pdf-view
:lighter " Mid"
(pdf-util-assert-pdf-buffer)
;; FIXME: Maybe these options should be passed stateless to pdf-info-renderpage ?
(let ((enable (lambda ()
(pdf-info-setoptions
:render/foreground (or (car pdf-view-midnight-colors) "black")
:render/background (or (cdr pdf-view-midnight-colors) "white")
:render/gamma pdf-view-midnight-gamma
:render/gammabeforeinvert pdf-view-midnight-gamma-before-invert
:render/usecolors
(if pdf-view-midnight-invert
;; If midnight invert is enabled, pass "2" indicating
;; that :render/foreground and :render/background should
;; be ignored and to instead invert the PDF (preserving
;; hue)
2
;; If invert is not enabled, pass "1" indictating that
;; :render/foreground and :render/background should be used
1)))))
(cond
(pdf-view-midnight-minor-mode
(add-hook 'after-save-hook enable nil t)
(add-hook 'after-revert-hook enable nil t)
(funcall enable))
(t
(remove-hook 'after-save-hook enable t)
(remove-hook 'after-revert-hook enable t)
(pdf-info-setoptions
;; Value "0" indicates that colors should remain unchanged
:render/usecolors 0))))
(pdf-cache-clear-images)
(pdf-view-redisplay t))