This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+tools/pdf-tools/packages.el
2018-01-04 02:00:25 -05:00

166 lines
7 KiB
EmacsLisp

;;; packages.el --- pdf-tools Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2018 Sylvain Benner
;; Copyright (c) 2014-2016 Sylvain Benner & Contributors
;;
;; Author: André Peric Tavares <andre.peric.tavares@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq pdf-tools-packages '(pdf-tools))
(defun pdf-tools/init-pdf-tools ()
(use-package pdf-tools
:defer t
:mode (("\\.pdf\\'" . pdf-view-mode))
:config
(progn
(pdf-tools-install)
(spacemacs|define-transient-state pdf-tools
:title "PDF-tools transient state"
:on-enter (setq which-key-inhibit t)
:on-exit (setq which-key-inhibit nil)
:evil-leader-for-mode (pdf-view-mode . ".")
:doc
"
Navigation^^^^ Scale/Fit^^ Annotations^^ Actions^^ Other^^
----------^^^^--------------- ---------^^------------------ -----------^^------ -------^^---------- -----^^---
[_j_/_k_] scroll down/up [_W_] fit to width [_al_] list [_s_] search [_q_] quit
[_h_/_l_] scroll left/right [_H_] fit to height [_at_] text [_O_] outline
[_d_/_u_] pg down/up [_P_] fit to page [_aD_] delete [_p_] print
[_J_/_K_] next/prev pg [_m_] slice using mouse [_am_] markup [_o_] open link
[_0_/_$_] full scroll l/r [_b_] slice from bounding box ^^ [_r_] revert
^^^^ [_R_] reset slice ^^ [_t_] attachments
^^^^ [_zr_] reset zoom ^^ [_n_] night mode
"
:bindings
;; Navigation
("j" pdf-view-next-line-or-next-page)
("k" pdf-view-previous-line-or-previous-page)
("l" image-forward-hscroll)
("h" image-backward-hscroll)
("J" pdf-view-next-page)
("K" pdf-view-previous-page)
("u" pdf-view-scroll-down-or-previous-page)
("d" pdf-view-scroll-up-or-next-page)
("0" image-bol)
("$" image-eol)
;; Scale/Fit
("W" pdf-view-fit-width-to-window)
("H" pdf-view-fit-height-to-window)
("P" pdf-view-fit-page-to-window)
("m" pdf-view-set-slice-using-mouse)
("b" pdf-view-set-slice-from-bounding-box)
("R" pdf-view-reset-slice)
("zr" pdf-view-scale-reset)
;; Annotations
("aD" pdf-annot-delete)
("at" pdf-annot-attachment-dired :exit t)
("al" pdf-annot-list-annotations :exit t)
("am" pdf-annot-add-markup-annotation)
;; Actions
("s" pdf-occur :exit t)
("O" pdf-outline :exit t)
("p" pdf-misc-print-document :exit t)
("o" pdf-links-action-perform :exit t)
("r" pdf-view-revert-buffer)
("t" pdf-annot-attachment-dired :exit t)
("n" pdf-view-midnight-minor-mode)
;; Other
("q" nil :exit t))
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "ma" "annotations")
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "mf" "fit")
(spacemacs/declare-prefix-for-mode 'pdf-view-mode "ms" "slice/search")
(spacemacs/set-leader-keys-for-major-mode 'pdf-view-mode
;; Slicing image
"sm" 'pdf-view-set-slice-using-mouse
"sb" 'pdf-view-set-slice-from-bounding-box
"sr" 'pdf-view-reset-slice
;; Annotations
"aD" 'pdf-annot-delete
"at" 'pdf-annot-attachment-dired
"ah" 'pdf-annot-add-highlight-markup-annotation
"al" 'pdf-annot-list-annotations
"am" 'pdf-annot-add-markup-annotation
"ao" 'pdf-annot-add-strikeout-markup-annotation
"as" 'pdf-annot-add-squiggly-markup-annotation
"at" 'pdf-annot-add-text-annotation
"au" 'pdf-annot-add-underline-markup-annotation
;; Fit image to window
"fw" 'pdf-view-fit-width-to-window
"fh" 'pdf-view-fit-height-to-window
"fp" 'pdf-view-fit-page-to-window
;; Other
"ss" 'pdf-occur
"p" 'pdf-misc-print-document
"O" 'pdf-outline
"n" 'pdf-view-midnight-minor-mode)
(evil-define-key 'visual pdf-view-mode-map "y" 'pdf-view-kill-ring-save)
;; TODO: Make `/', `?' and `n' work like in Evil
(evilified-state-evilify pdf-view-mode pdf-view-mode-map
;; Navigation
"0" 'image-bol
"$" 'image-eol
"j" 'pdf-view-next-line-or-next-page
"k" 'pdf-view-previous-line-or-previous-page
"l" 'image-forward-hscroll
"h" 'image-backward-hscroll
"J" 'pdf-view-next-page
"K" 'pdf-view-previous-page
"gg" 'pdf-view-first-page
"G" 'pdf-view-last-page
"gt" 'pdf-view-goto-page
"gl" 'pdf-view-goto-label
"u" 'pdf-view-scroll-down-or-previous-page
"d" 'pdf-view-scroll-up-or-next-page
(kbd "C-u") 'pdf-view-scroll-down-or-previous-page
(kbd "C-d") 'pdf-view-scroll-up-or-next-page
(kbd "``") 'pdf-history-backward
;; Search
"/" 'isearch-forward
"?" 'isearch-backward
;; Actions
"r" 'pdf-view-revert-buffer
"o" 'pdf-links-action-perform
"O" 'pdf-outline
"zr" 'pdf-view-scale-reset)
(evilified-state-evilify pdf-outline-buffer-mode pdf-outline-buffer-mode-map
"-" 'negative-argument
"j" 'next-line
"k" 'previous-line
"gk" 'outline-backward-same-level
"gj" 'outline-forward-same-level
(kbd "<backtab>") 'show-all
"gh" 'pdf-outline-up-heading
"gg" 'beginning-of-buffer
"G" 'pdf-outline-end-of-buffer
"TAB" 'outline-toggle-children
"RET" 'pdf-outline-follow-link
(kbd "M-RET") 'pdf-outline-follow-link-and-quit
"f" 'pdf-outline-display-link
[mouse-1] 'pdf-outline-mouse-display-link
"o" 'pdf-outline-select-pdf-window
"``" 'pdf-outline-move-to-current-page
"''" 'pdf-outline-move-to-current-page
"Q" 'pdf-outline-quit-and-kill
"q" 'quit-window
"F" 'pdf-outline-follow-mode)
(evilified-state-evilify pdf-annot-list-mode pdf-annot-list-mode-map
"f" 'pdf-annot-list-display-annotation-from-id
"d" 'tablist-flag-forward
"x" 'tablist-do-flagged-delete
"u" 'tablist-unmark-forward
"q" 'tablist-quit)
(evilified-state-evilify pdf-occur-buffer-mode pdf-occur-buffer-mode-map
"q" 'tablist-quit
"g" 'pdf-occur-revert-buffer-with-args
"r" 'pdf-occur-revert-buffer-with-args
"*" 'spacemacs/enter-ahs-forward
"?" 'evil-search-backward))))