From 38646b8a1f9f5c4ce9d8554f66b272f2d08a4e18 Mon Sep 17 00:00:00 2001 From: jao Date: Thu, 15 Apr 2021 22:37:22 +0100 Subject: integration of zathura with pdf sessions --- exwm.org | 2 ++ init.org | 6 ++---- lib/doc/jao-doc-view.el | 11 +++++++---- lib/eos/jao-afio.el | 25 +++++++++++++------------ 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") -- cgit v1.2.3