diff options
| -rw-r--r-- | exwm.org | 36 | ||||
| -rw-r--r-- | init.org | 1 | ||||
| -rw-r--r-- | lib/doc/jao-doc-view.el | 7 | ||||
| -rw-r--r-- | org.org | 1 | 
4 files changed, 32 insertions, 13 deletions
@@ -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 @@ -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")) @@ -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)  | 
