summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--init.el2
-rw-r--r--lib/doc/jao-doc-session.el4
-rw-r--r--lib/doc/jao-pdf.el7
-rw-r--r--lib/eos/jao-afio.el11
4 files changed, 16 insertions, 8 deletions
diff --git a/init.el b/init.el
index 95a484b..1d88548 100644
--- a/init.el
+++ b/init.el
@@ -1789,7 +1789,7 @@
(progn
(when jao-xmonad-enabled
(jao-shell-exec "xdotool set_destktop 2"))
- (jao-shell-string (jao-zathura--open-cmd file page " &")))
+ (jao-shell-string (jao-pdf-zathura-open-cmd file page " &")))
(let* ((page (if page (format " && xdotool type %dg" page) ""))
(cmd (format "xdotool windowactivate %s%s" id page)))
(jao-shell-string cmd)))))
diff --git a/lib/doc/jao-doc-session.el b/lib/doc/jao-doc-session.el
index 9a3193f..3eee781 100644
--- a/lib/doc/jao-doc-session.el
+++ b/lib/doc/jao-doc-session.el
@@ -43,14 +43,14 @@
(let ((file (or file jao-doc-session-file)))
(jao-doc-session--read-file file)))
-(defun jao-doc-session-save (&optional skip-current)
+(defun jao-doc-session-save (&optional skip-current force)
(interactive)
(let ((docs '())
(cb (and skip-current (current-buffer))))
(dolist (b (buffer-list))
(when-let (fn (and (not (eq cb b)) (jao-doc-session-is-doc b)))
(add-to-list 'docs fn)))
- (when (> (length docs) 0)
+ (when (or force (> (length docs) 0))
(jao-doc-session--save-to-file jao-doc-session-file docs))))
(defun jao-doc-session--save-session ()
diff --git a/lib/doc/jao-pdf.el b/lib/doc/jao-pdf.el
index 62dfc08..6158306 100644
--- a/lib/doc/jao-pdf.el
+++ b/lib/doc/jao-pdf.el
@@ -26,6 +26,8 @@
;; section title of a given page.
;; - Interoperability with zathura.
+(require 'jao-doc-session)
+
;;; PDF info
(declare-function 'pdf-info-outline "pdf-info")
@@ -83,6 +85,10 @@ The result is cached as a local buffer variable."
(replace-regexp-in-string "[[:blank:]]+" " " cur-title)))
;;; zathura interop
+(defun jao-pdf-zathura-open-cmd (file page &optional suffix)
+ (let ((page (if page (format "-P %s" page) "")))
+ (format "zathura %s %s %s" file page (or suffix ""))))
+
(defun jao-pdf-zathura-file-info (title)
(when (string-match "\\(.+\\) \\[\\(.+\\) (\\([0-9]+\\)/\\([0-9]+\\))\\]"
title)
@@ -104,6 +110,7 @@ The result is cached as a local buffer variable."
(let* ((fn (file-name-nondirectory pdf-file))
(desc (jao-pdf-section-title page pdf-file))
(lnk (format "[[doc:%s::%d][%s]]" fn page desc)))
+ (jao-doc-session-mark)
(if (or (not exists) (and (not no-ask) (y-or-n-p "Insert link?")))
(insert lnk "\n")
(kill-new lnk)
diff --git a/lib/eos/jao-afio.el b/lib/eos/jao-afio.el
index 092a902..f57838a 100644
--- a/lib/eos/jao-afio.el
+++ b/lib/eos/jao-afio.el
@@ -51,11 +51,11 @@
;;; session openers
;;;###autoload
-(defun jao-afio-open-pdf-session ()
+(defun jao-afio-open-pdf-session (&optional docs)
(interactive)
(let ((jao-doc-session-inhibit-save t))
- (dolist (doc (jao-doc-session))
- (when (and (file-exists-p doc) (y-or-n-p (format "Open %s? " doc)))
+ (dolist (doc (or docs (jao-doc-session)))
+ (when (file-exists-p doc)
(jao-open-doc doc)
(other-window 1)))
(other-window 1)))
@@ -68,8 +68,9 @@
(if (car docs)
(progn (switch-to-buffer (car docs))
(switch-to-buffer-other-window (or (cadr docs) (car docs))))
- (when (and (jao-doc-session) (y-or-n-p "Load saved session? "))
- (jao-afio-open-pdf-session)))))
+ (when-let (docs (jao-doc-session))
+ (when (y-or-n-p (format "Load saved session? (%d docs)" (length docs)))
+ (jao-afio-open-pdf-session docs))))))
(declare w3m "w3m")
(declare w3m-alive-p "w3m")