#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages password-utils)
+ #:use-module (gnu packages pdf)
#:use-module (gnu packages rust-apps)
#:use-module (gnu services)
#:use-module (guix gexp)
(list "mime/.config/mimeapps.list"
"emacs/.config/emacs/conf/conf-dired.el")))))
+(define emacs-document-service
+ (service home-program-service-type
+ (home-program-configuration
+ ;; libpng cairo autoconf automake gcc pkg-config
+ (packages
+ (list emacs-pdf-tools
+ poppler))
+ (dotfiles
+ (list "emacs/.config/emacs/conf/conf-document.el")))))
+
(define emacs-package-service
(service home-program-service-type
(home-program-configuration
emacs-consult-service
emacs-daemon-service
emacs-dired-service
+ emacs-document-service
emacs-package-service
emacs-pass-service
emacs-service))
--- /dev/null
+;; Copyright (c) 2022 Jakub Czajka <jakub@ekhem.eu.org>
+;; License: GPL-3.0 or later.
+;;
+;; conf-document.el - configration for working with different document formats.
+
+(require 'conf-package)
+
+(use-package pdf-tools
+ :when
+ (and
+ ;; Build dependencies.
+ (conf:executables-p (list "gcc" "autoconf" "automake" "pkg-config"))
+ ;; `libpoppler.so' is used to render PDFs.
+ (conf:libraries-p (list "libpoppler.so")))
+ :ensure t
+ :init
+ ;; JIT replacement for `pdf-tools-install'.
+ ;; `pdf-loader-install' is an autoload.
+ (pdf-loader-install)
+ :custom
+ ;; Show the whole page by default.
+ (pdf-view-display-size 'fit-page))
+
+(provide 'conf-document)