From: Jakub Czajka Date: Fri, 23 Dec 2022 17:11:27 +0000 (+0100) Subject: [emacs] Read documents within emacs. X-Git-Url: https://git.ekhem.eu.org/?a=commitdiff_plain;h=3812e5d95d03ad4b60b46b4838d3a5db2a59a3b8;p=guix.git [emacs] Read documents within emacs. Emacs has built-in support for reading PDFs. However, pdf-tools is better than the default PDF reader. This commit installs pdf-tools and the necessary dependencies. --- diff --git a/conf/home/emacs.scm b/conf/home/emacs.scm index 6a7cc2b..719c72c 100644 --- a/conf/home/emacs.scm +++ b/conf/home/emacs.scm @@ -12,6 +12,7 @@ #: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) @@ -67,6 +68,16 @@ (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 @@ -107,6 +118,7 @@ emacs-consult-service emacs-daemon-service emacs-dired-service + emacs-document-service emacs-package-service emacs-pass-service emacs-service)) diff --git a/emacs/.config/emacs/conf/conf-document.el b/emacs/.config/emacs/conf/conf-document.el new file mode 100644 index 0000000..2ade839 --- /dev/null +++ b/emacs/.config/emacs/conf/conf-document.el @@ -0,0 +1,24 @@ +;; Copyright (c) 2022 Jakub Czajka +;; 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)