From dd3afe747ecf51f87d33318c2ad68953d153495f Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Mon, 23 May 2022 20:12:53 -0500 Subject: meh --- lisp/+pdf-tools.el | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lisp/+pdf-tools.el (limited to 'lisp/+pdf-tools.el') diff --git a/lisp/+pdf-tools.el b/lisp/+pdf-tools.el new file mode 100644 index 0000000..9b15b27 --- /dev/null +++ b/lisp/+pdf-tools.el @@ -0,0 +1,38 @@ +;;; +pdf-tools.el --- Extras for the excellent pdf-tools' -*- lexical-binding: t; -*- + +;;; Commentary: + +;;; Code: + +;; XXX: The way I'm dispatching browsers here is /very/ down-and-dirty. It +;; needs to be much improved. + +(defun +pdf-view-open-all-pagelinks (&optional browse-url-func) + "Open all the links on this page of a PDF. +BROWSE-URL-FUNC overrides the default `browse-url'." + (interactive) + (let ((links (pdf-info-pagelinks (pdf-view-current-page))) + (browse-url-func (or browse-url-func #'browse-url)) + (seen)) + (dolist (link links) + (when-let* ((uri (alist-get 'uri link)) + (_ (not (member uri seen)))) + (push uri seen) + (funcall browse-url-func uri))))) + +(defun +pdf-view-open-links-in-chrome () + "Open all links on this PDF page in Chrome. +See also `+pdf-view-open-all-pagelinks'." + (interactive) + (+pdf-view-open-all-pagelinks #'browse-url-chrome)) + +(defun +pdf-view-position (&optional spacer) + "Return the page we're on for the modeline." + (when (derived-mode-p 'pdf-view-mode) + (format "%sp.%s/%s" + (or spacer (bound-and-true-p +modeline-default-spacer) " ") + (pdf-view-current-page) + (pdf-info-number-of-pages)))) + +(provide '+pdf-tools) +;;; +pdf-tools.el ends here -- cgit 1.4.1-21-gabe81