summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-04-15 22:37:22 +0100
committerjao <jao@gnu.org>2021-04-15 22:37:22 +0100
commit38646b8a1f9f5c4ce9d8554f66b272f2d08a4e18 (patch)
tree2e34d671707cba7ba24002315020080a8fd91904
parentddd39156cf91e9b042be2b2e9c1597c626f1ed9e (diff)
downloadelibs-38646b8a1f9f5c4ce9d8554f66b272f2d08a4e18.tar.gz
elibs-38646b8a1f9f5c4ce9d8554f66b272f2d08a4e18.tar.bz2
integration of zathura with pdf sessions
-rw-r--r--exwm.org2
-rw-r--r--init.org6
-rw-r--r--lib/doc/jao-doc-view.el11
-rw-r--r--lib/eos/jao-afio.el25
4 files changed, 24 insertions, 20 deletions
diff --git a/exwm.org b/exwm.org
index 8c7cff1..aee12a5 100644
--- a/exwm.org
+++ b/exwm.org
@@ -331,6 +331,8 @@
(defun jao-exwm--zathura-setup ()
(when (and (string= exwm-class-name "Zathura")
(not jao-doc-view--imenu-file))
+ (jao-doc-view-session-mark)
+ (jao-doc-view-save-session)
(let ((info (jao-zathura--file-info (current-buffer))))
(jao-doc-view--enable-imenu (car info) #'jao-zathura-goto-page))))
diff --git a/init.org b/init.org
index 4852296..09d07af 100644
--- a/init.org
+++ b/init.org
@@ -2212,15 +2212,13 @@
(jao-afio--goto-docs)
(if b (pop-to-buffer b) (find-file file))))
- (defun jao-open-doc (file)
- (message "Opening %s" file)
- (funcall jao-open-doc-fun file))
+ (defun jao-open-doc (file) (funcall jao-open-doc-fun file))
(defun jao-open-pdf-session ()
(interactive)
(dolist (doc (jao-doc-view-session))
(when (and (file-exists-p doc) (y-or-n-p (format "Open %s? " doc)))
- (jao-find-or-open doc))))
+ (jao-open-doc doc))))
(defun jao-afio-open-pdf (file page &optional height)
(jao-open-doc file)
diff --git a/lib/doc/jao-doc-view.el b/lib/doc/jao-doc-view.el
index f917b96..f7984f0 100644
--- a/lib/doc/jao-doc-view.el
+++ b/lib/doc/jao-doc-view.el
@@ -30,6 +30,11 @@
(require 'doc-view)
(defvar jao-doc-view-session-file "~/.emacs.d/cache/doc-view-session.eld")
+(defvar-local jao-doc-view--is-pdf nil)
+
+(defun jao-doc-view-session-mark () (setq-local jao-doc-view--is-pdf t))
+(defun jao-doc-view--is-pdf ()
+ (or jao-doc-view--is-pdf (derived-mode-p 'doc-view-mode 'pdf-view-mode)))
(defun jao-doc-view--read-file (file)
(let ((buff (find-file-noselect file)))
@@ -54,16 +59,14 @@
(cb (when skip-current (current-buffer))))
(dolist (b (buffer-list))
(with-current-buffer b
- (when (and (derived-mode-p 'doc-view-mode 'pdf-view-mode)
- (not (equalp cb b)))
+ (when (and (jao-doc-view--is-pdf) (not (equalp cb b)))
(add-to-list 'docs (buffer-file-name)))))
(when (> (length docs) 0)
(jao-doc-view--save-to-file jao-doc-view-session-file docs))
(message "%s docs saved" (length docs))))
(defun jao-doc-view--save-session-1 ()
- (when (derived-mode-p 'pdf-view-mode 'doc-view-mode)
- (jao-doc-view-save-session t)))
+ (when (jao-doc-view--is-pdf) (jao-doc-view-save-session t)))
(defun jao-doc-view--save-session ()
(let ((inhibit-message t)
diff --git a/lib/eos/jao-afio.el b/lib/eos/jao-afio.el
index d031e59..90abc7f 100644
--- a/lib/eos/jao-afio.el
+++ b/lib/eos/jao-afio.el
@@ -131,18 +131,19 @@
(defvar jao-afio-switch-hook nil)
(defun jao-afio--goto-frame (next &optional reset)
- (let ((next-cfg (when (not reset) (get-register next))))
- (window-configuration-to-register jao-afio--current-config)
- (setq jao-afio--current-config next)
- (if next-cfg
- (jump-to-register next)
- (delete-other-windows)
- (cl-case next
- (?w (jao-afio-open-www))
- (?g (jao-afio-open-gnus))
- (?p (jao-afio-open-doc))
- (?s (delete-other-windows))))
- (run-hooks 'jao-afio-switch-hook)))
+ (when (or reset (not (eq next jao-afio--current-config)))
+ (let ((next-cfg (when (not reset) (get-register next))))
+ (window-configuration-to-register jao-afio--current-config)
+ (setq jao-afio--current-config next)
+ (if next-cfg
+ (jump-to-register next)
+ (delete-other-windows)
+ (cl-case next
+ (?w (jao-afio-open-www))
+ (?g (jao-afio-open-gnus))
+ (?p (jao-afio-open-doc))
+ (?s (delete-other-windows))))
+ (run-hooks 'jao-afio-switch-hook))))
(defun jao-afio--goto-main (&optional reset)
(interactive "P")