summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--exwm.org36
-rw-r--r--init.org1
-rw-r--r--lib/doc/jao-doc-view.el7
-rw-r--r--org.org1
4 files changed, 32 insertions, 13 deletions
diff --git a/exwm.org b/exwm.org
index 3e3afc4..8c7cff1 100644
--- a/exwm.org
+++ b/exwm.org
@@ -312,20 +312,29 @@
(defun jao-zathura-goto-page (page-no)
(jao-exwm--send-str (format "%sg" page-no)))
- (defun jao-zathura-open-doc (file-name &optional page-no height)
- (let* ((file-name (expand-file-name file-name))
+ (defun jao-zathura-open-doc (&optional file-name page-no height)
+ (let* ((file-name (expand-file-name (or file-name (buffer-file-name))))
(buffer (seq-find `(lambda (b)
(string= ,file-name
(car (jao-zathura--file-info b))))
- (jao-zathura--buffers))))
+ (jao-zathura--buffers)))
+ (page-no (or page-no (jao-doc-view-current-page))))
(if jao-exwm--use-afio (jao-afio--goto-docs) (jao-exwm--goto-docs))
(if (not buffer)
(jao-exwm-run (if page-no
(format "zathura -P %s %s" page-no file-name)
(format "zathura %s" file-name)))
(pop-to-buffer buffer)
- (jao-doc-view--enable-imenu file-name #'jao-zathura-goto-page)
- (jao-zathura-goto-page page-no))))
+ (when page-no (jao-zathura-goto-page page-no)))
+ (current-buffer)))
+
+ (defun jao-exwm--zathura-setup ()
+ (when (and (string= exwm-class-name "Zathura")
+ (not jao-doc-view--imenu-file))
+ (let ((info (jao-zathura--file-info (current-buffer))))
+ (jao-doc-view--enable-imenu (car info) #'jao-zathura-goto-page))))
+
+ (add-hook 'exwm-update-title-hook #'jao-exwm--zathura-setup t)
(defun jao-exwm-pdf-zathura-close-all ()
(interactive)
@@ -364,11 +373,22 @@
(defun jao-exwm-pdf-disable-zathura ()
(interactive)
+ (define-key org-mode-map (kbd "C-c o") #'jao-org-org-goto-pdf)
(remove-hook 'kill-emacs-query-functions #'jao-exwm-pdf-zathura-close-all)
(setq jao-org-open-pdf-fun #'jao-afio-open-pdf)
(setq jao-org-links-pdf-store-fun nil)
(setq jao-open-doc-fun #'jao-find-or-open))
+ (defun jao-exwm-zathura-goto-pdf ()
+ (interactive)
+ (if jao-browse-doc-use-emacs-p
+ (jao-org-org-goto-pdf)
+ (when-let (pdf (jao-org-org-to-pdf-file))
+ (jao-zathura-open-doc pdf))))
+
+ (with-eval-after-load "org"
+ (define-key org-mode-map (kbd "C-c o") #'jao-exwm-zathura-goto-pdf))
+
(when (not jao-browse-doc-use-emacs-p)
(jao-exwm-pdf-enable-zathura))
@@ -377,7 +397,7 @@
#+begin_src emacs-lisp
(major-mode-hydra-define+ (doc-view-mode pdf-view-mode) nil
("External"
- (("z" (jao-zathura-open-doc (buffer-file-name)) "open with zathura")
+ (("z" (jao-zathura-open-doc) "open with zathura")
("m" jao-exwm-open-with-mupdf "open with mupdf"))))
(defhydra jao-hydra-float (:color blue)
@@ -463,8 +483,8 @@
(define-key exwm-mode-map [?\s-m] #'jao-hydra-media/body)
(define-key exwm-mode-map [?\s-s] #'jao-hydra-spotify/body)
(define-key exwm-mode-map [?\s-w] #'jao-hydra-exwm/body)
- (define-key exwm-mode-map [?\s-p] #'jao-exwm-pdf-goto-org)
- (define-key exwm-mode-map [?\s-P] #'jao-exwm-pdf-goto-org*)
+ (define-key exwm-mode-map (kbd "C-c o") #'jao-exwm-pdf-goto-org)
+ (define-key exwm-mode-map (kbd "C-c O") #'jao-exwm-pdf-goto-org*)
(setq
exwm-input-global-keys
diff --git a/init.org b/init.org
index e944232..8172ef9 100644
--- a/init.org
+++ b/init.org
@@ -3866,7 +3866,6 @@
(global-set-key "\M-\\" #'hippie-expand)
(global-set-key "\C-c." #'goto-last-change)
(global-set-key "\C-cj" #'join-line)
- (global-set-key "\C-co" #'ff-find-other-file)
(global-set-key "\C-cq" #'auto-fill-mode)
(global-set-key "\C-xr\M-w" #'kill-rectangle-save)
(global-set-key "\C-c\C-z" #'comment-or-uncomment-region)
diff --git a/lib/doc/jao-doc-view.el b/lib/doc/jao-doc-view.el
index cdc4502..f917b96 100644
--- a/lib/doc/jao-doc-view.el
+++ b/lib/doc/jao-doc-view.el
@@ -103,8 +103,9 @@
(defun jao-doc-view-pdf-outline (&optional file-name)
(if (derived-mode-p 'pdf-view-mode)
(pdf-info-outline)
- (let ((outline nil)
- (fn (shell-quote-argument (or file-name (buffer-file-name)))))
+ (let* ((outline nil)
+ (fn (or file-name (buffer-file-name) jao-doc-view--imenu-file))
+ (fn (shell-quote-argument (expand-file-name fn))))
(with-temp-buffer
(insert (shell-command-to-string (format "mutool show %s outline" fn)))
(goto-char (point-min))
@@ -143,7 +144,7 @@
(defun jao-doc-view--enable-imenu (&optional file-name goto-page)
(setq-local imenu-create-index-function #'jao-doc-view--imenu-create-index
- jao-doc-view--imenu-file file-name
+ jao-doc-view--imenu-file (or file-name jao-doc-view--imenu-file)
jao-doc-view--goer (or goto-page 'jao-doc-view-goto-page))
(imenu-add-to-menubar "PDF outline"))
diff --git a/org.org b/org.org
index c103545..cddd898 100644
--- a/org.org
+++ b/org.org
@@ -293,7 +293,6 @@
(define-key org-mode-map [(f7)] 'org-archive-to-archive-sibling)
(define-key org-mode-map "\C-cE" 'jao-insert-eww-link)
(define-key org-mode-map "\C-c'" 'org-edit-src-code)
- (define-key org-mode-map (kbd "C-c o") #'jao-org-org-goto-pdf)
(define-key org-mode-map "\C-cO" 'outline-hide-other)
(global-set-key "\C-cr" 'org-capture)
(global-set-key "\C-c\C-l" 'org-store-link)