summaryrefslogtreecommitdiffhomepage
path: root/exwm.org
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-04-15 16:16:03 +0100
committerjao <jao@gnu.org>2021-04-15 16:16:03 +0100
commitd2454a9fd3fc590ac23312a21a03a5d7117f4df2 (patch)
tree9d1e08e97e05df0bf9998f433cc93627a9432f90 /exwm.org
parent71633830f1797c17a3f395bece11c56141b33c68 (diff)
downloadelibs-d2454a9fd3fc590ac23312a21a03a5d7117f4df2.tar.gz
elibs-d2454a9fd3fc590ac23312a21a03a5d7117f4df2.tar.bz2
zathura as a fully featured alternative for pdf viewing in emacs
Diffstat (limited to 'exwm.org')
-rw-r--r--exwm.org36
1 files changed, 28 insertions, 8 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