diff --git a/.config/ambit/config.ambit b/.config/ambit/config.ambit index b0552af..c5112be 100644 --- a/.config/ambit/config.ambit +++ b/.config/ambit/config.ambit @@ -53,7 +53,8 @@ mu4econfig.el, racket.el, latexconfig.el, - cppconfig.el + cppconfig.el, + pdfconfig.el ] ]; .config/picom.conf; diff --git a/.emacs.d/include/pdfconfig.el b/.emacs.d/include/pdfconfig.el new file mode 100644 index 0000000..5135a66 --- /dev/null +++ b/.emacs.d/include/pdfconfig.el @@ -0,0 +1,35 @@ +;;; pdfconfig.el --- configuration for working with PDF files +;;; Commentary: +;; Configuration for working with PDF files. +;;; Code: + +;; PDF Tools +(pdf-tools-install) +(add-hook 'doc-view-mode (lambda () (display-line-numbers-mode -1))) +(add-hook 'doc-view-mode 'pdf-view-mode) +(add-hook 'pdf-view-mode (lambda () (display-line-numbers-mode -1))) +(add-hook 'pdf-view-mode (lambda () (line-number-mode -1))) + +(defun pdf-download-and-view (&optional url filename) + "Download and view the PDF given by its URL as FILENAME." + (interactive) + (let* ((url (or url + (read-string "Download URL: "))) + (default-filename (or filename + (car (last (split-string url "/" t))))) + (filename (or filename + (read-string (format "Filename (%s): " default-filename) + nil + nil + default-filename))) + (file-path (concat "/tmp/" filename)) + (download-buffer (url-retrieve-synchronously url))) + (set-buffer download-buffer) + (goto-char (point-min)) + (re-search-forward "^$" nil 'move) + (forward-char) + (delete-region (point-min) (point)) + (write-file file-path) + (find-file (expand-file-name file-path)))) + +;;; pdfconfig.el ends here diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 389e7b6..541b648 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -43,6 +43,8 @@ ;; Productivity (straight-use-package 'org) (straight-use-package 'elfeed) +(straight-use-package '(pdf-tools :type git :host github + :repo "vedang/pdf-tools")) ;; LSP (straight-use-package 'lsp-mode) @@ -74,6 +76,7 @@ (load-library "racket") (load-library "latexconfig") (load-library "cppconfig") +(load-library "pdfconfig") ;; ====== Hooks ============================== (add-hook 'after-init-hook 'global-company-mode)