summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-02-25 12:21:13 -0600
committerCraig Jennings <c@cjennings.net>2026-02-25 12:21:13 -0600
commitf473f610b7fccffd3d10d8e81342218cd4ab25fc (patch)
tree2e20c8ccbe10e71fa8998214e7a5ab61378b6b26
parentf755e54ee94df29e345e5ca5d53ce95b6f53a9a7 (diff)
fix(pdf): move pdf-tools-install to eval-after-load and revert stale buffers
pdf-tools-install was in use-package :config for pdf-tools, but opening a PDF only loads pdf-view.el — never pdf-tools.el — so the server never started. Move it to with-eval-after-load 'pdf-view and revert any PDF buffers that opened before the server was ready.
-rw-r--r--modules/pdf-config.el13
1 files changed, 11 insertions, 2 deletions
diff --git a/modules/pdf-config.el b/modules/pdf-config.el
index 3d952fb5..c3b1d397 100644
--- a/modules/pdf-config.el
+++ b/modules/pdf-config.el
@@ -21,13 +21,22 @@
(pdf-view-use-unicode-ligther nil)
;; Enable HiDPI support, at the cost of memory.
(pdf-view-use-scaling t)
- :config
- (pdf-tools-install :no-query)) ;; automatically compile on first launch
+ )
;; Keybindings via eval-after-load on 'pdf-view (not 'pdf-tools), because
;; opening a PDF loads pdf-view.el which provides 'pdf-view — it never
;; loads pdf-tools.el, so use-package :config for pdf-tools won't run.
+;; pdf-tools-install must run when pdf-view loads (not in use-package :config
+;; for pdf-tools, which never triggers — see comment above). It starts the
+;; epdfinfo rendering server and is a no-op when already set up.
(with-eval-after-load 'pdf-view
+ (pdf-tools-install :no-query)
+ ;; Revert any PDF buffers that opened before the server was ready,
+ ;; so they re-render instead of showing raw binary.
+ (dolist (buf (buffer-list))
+ (with-current-buffer buf
+ (when (eq major-mode 'pdf-view-mode)
+ (revert-buffer nil t))))
(define-key pdf-view-mode-map "M" #'pdf-view-midnight-minor-mode)
(define-key pdf-view-mode-map "m" #'bookmark-set)
(define-key pdf-view-mode-map (kbd "C-=") #'pdf-view-enlarge)