diff --git a/modules/tools/pdf/+modeline.el b/modules/tools/pdf/+modeline.el new file mode 100644 index 000000000..eb0acb7bd --- /dev/null +++ b/modules/tools/pdf/+modeline.el @@ -0,0 +1,10 @@ +;;; tools/pdf/+modeline.el -*- lexical-binding: t; -*- + + +(def-modeline-segment! +pdf-tools-pages + "Current and total page indicator for PDF documents." + (format " P %d/%d" (pdf-view-current-page) (pdf-cache-number-of-pages))) + +(def-modeline! pdf-tools-modeline + (bar matches " " buffer-info +pdf-tools-pages) + (major-mode vcs)) diff --git a/modules/tools/pdf/config.el b/modules/tools/pdf/config.el index ee11260f1..c0fcabf3d 100644 --- a/modules/tools/pdf/config.el +++ b/modules/tools/pdf/config.el @@ -9,6 +9,18 @@ (map! :map pdf-view-mode-map "q" #'kill-this-buffer) + ;; Fit pages to screen by default (setq-default pdf-view-display-size 'fit-page) - ;; turn off cua so copy works - (add-hook! 'pdf-view-mode-hook (cua-mode 0))) + ;; Turn off cua so copy works + (add-hook! 'pdf-view-mode-hook (cua-mode 0)) + ;; Custom modeline that removes useless info and adds page numbers + (when (featurep! :ui doom-modeline) + (load! +modeline) + (add-hook! pdf-tools-enabled (doom-set-modeline 'pdf-tools-modeline))) + ;; Handle PDF-tools related popups better + (set! :popup "^\\*Outline*" '((side . right) (size . 40)) '((select))) + ;; TODO: Add additional important windows that should be handled differently + ;; TODO: These two next rules don't work (they should), investigate + ;; (set! :popup "\\*Contents\\*" '((side . right) (size . 40)) nil) + ;; (set! :popup "* annots\\*$" '((side . left) (size . 40)) '((select))) + )