From 39a3c1983c9958a8cf3d7a033d47ff3019f78cfa Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 4 Mar 2016 00:51:34 -0500 Subject: [PATCH] pdf-tools: README tweak and replacement of transient state key - Replace `M-SPC` and `S-M-SPC` by the more conventional `SPC m .` - Reorganize the code in packages.el - Add image in README and list bindings with explicit `SPC m` prefix --- layers/+tools/pdf-tools/README.org | 66 +++++----- layers/+tools/pdf-tools/img/pdf.png | Bin 0 -> 27357 bytes layers/+tools/pdf-tools/packages.el | 193 +++++++++++++--------------- 3 files changed, 119 insertions(+), 140 deletions(-) create mode 100644 layers/+tools/pdf-tools/img/pdf.png diff --git a/layers/+tools/pdf-tools/README.org b/layers/+tools/pdf-tools/README.org index 66212a3cc..fd2f91158 100644 --- a/layers/+tools/pdf-tools/README.org +++ b/layers/+tools/pdf-tools/README.org @@ -1,6 +1,7 @@ #+TITLE: pdf-tools layer #+HTML_HEAD_EXTRA: +[[file:img/pdf.png]] * Table of Contents :TOC_4_org:noexport: - [[Description][Description]] @@ -8,7 +9,7 @@ - [[Prerequisites][Prerequisites]] - [[Dotfile][Dotfile]] - [[Usage][Usage]] - - [[Known Issues ][Known Issues ]] + - [[Known Issues][Known Issues]] - [[Key bindings][Key bindings]] - [[PDF View][PDF View]] - [[Leader keys][Leader keys]] @@ -17,12 +18,15 @@ - [[Occur mode][Occur mode]] * Description - This layer enables support for the [[https://github.com/politza/pdf-tools][=pdf-tools=]] package. - -According to the official repository, "PDF Tools is, among other things, a -replacement of DocView for PDF files. The key difference is, that pages are not -pre-rendered by e.g. ghostscript and stored in the file-system, but rather -created on-demand and stored in memory." +This layer enables support for the [[https://github.com/politza/pdf-tools][=pdf-tools=]] package. + +According to the official repository: + +#+begin_quote +"PDF Tools is, among other things, a replacement of DocView for PDF files. The +key difference is, that pages are not pre-rendered by e.g. ghostscript and +stored in the file-system, but rather created on-demand and stored in memory." +#+end_quote Examples of features that =pdf-tools= provides: - Use =occur= in the pdf file; @@ -42,7 +46,6 @@ If you use a Debian based system such as Ubuntu, you can skip this step, as =pdf-tools= installation asks whether you want it to try to download automatically all dependencies using ~apt-get~. - ** Dotfile After installing the dependencies, add this to your =~/.spacemacs=. @@ -65,16 +68,15 @@ If the compilation does not run successfully, you should confirm whether all dependencies are properly installed and run the command ~pdf-tools-install~. * Usage -Use ~M-SPC~ or ~s-M-SPC~ to activate the pdf-tools transient state. +Use ~SPC m .~ to activate the pdf-tools transient state. The keybindings that the transient displays can be also accessed using ~SPC m~. The navigation keybindings can be used directly. - Try out opening the outline (~O~). The outline window shows the structure of the pdf, displaying all headings. You can set annotations by selecting regions and right clicking on the buffer. -Additionally, all annotation related functions are can be accessed with ~SPC m a~. +Additionally, all annotation related functions can be accessed with ~SPC m a~. Searching with =occur= can be done by using =pdf-occur= (~SPC m s s~). @@ -83,11 +85,9 @@ Tips: ~SPC m s b~) This command trims the blank parts of the lateral margins, making the useful portion larger. - The last visited page is not saved across Emacs sessions. If you want save it, - use the bookmarks commands =bookmark-set= (~C-x r m~) and =bookmark-jump= - (~SPC j b~) to save and go to a bookmark, respectively. + use the bookmarks commands on ~SPC j b~ to save and go to a bookmark. - -* Known Issues +* Known Issues Due to =image-mode='s behaviour, the =pdf-tools= buffer might go back to the first page after switching windows. If this happens, you can quickly go back to the previous page in history with =pdf-history-backward= (~``~ in Evil state and @@ -139,33 +139,33 @@ differently from the default Evil search. To go to the next match, use ~C-s~. |-----------------------+-------------------------------------------| | *Slicing* | | |-----------------------+-------------------------------------------| -| ~sm~ | Set slice using mouse | -| ~sb~ | Set slice from bounding box | -| ~sr~ | Reset slice | +| ~SPC m s m~ | Set slice using mouse | +| ~SPC m s b~ | Set slice from bounding box | +| ~SPC m s r~ | Reset slice | |-----------------------+-------------------------------------------| | *Annotations* | | |-----------------------+-------------------------------------------| -| ~aD~ | Delete annotation (select it with mouse) | -| ~aa~ | List all attachments in a dired buffer | -| ~ah~ | Highlight visual selection | -| ~al~ | List all annotations | -| ~am~ | Add markup annotation to visual selection | -| ~ao~ | Strikeout visual selection | -| ~as~ | Add squiggly to visual selection | -| ~at~ | Add annotation text | -| ~au~ | Underline to visual selection | +| ~SPC m a D~ | Delete annotation (select it with mouse) | +| ~SPC m a a~ | List all attachments in a dired buffer | +| ~SPC m a h~ | Highlight visual selection | +| ~SPC m a l~ | List all annotations | +| ~SPC m a m~ | Add markup annotation to visual selection | +| ~SPC m a o~ | Strikeout visual selection | +| ~SPC m a s~ | Add squiggly to visual selection | +| ~SPC m a t~ | Add annotation text | +| ~SPC m a u~ | Underline to visual selection | |-----------------------+-------------------------------------------| | *Fit image to window* | | |-----------------------+-------------------------------------------| -| ~fw~ | Fit width to window | -| ~fh~ | Fit height to window | -| ~fp~ | Fit page to window | +| ~SPC m f w~ | Fit width to window | +| ~SPC m f h~ | Fit height to window | +| ~SPC m f p~ | Fit page to window | |-----------------------+-------------------------------------------| | *Other* | | |-----------------------+-------------------------------------------| -| ~n~ | Toggle night view mode | -| ~s~ | Run =pdf-occur= | -| ~p~ | Display print version | +| ~SPC m n~ | Toggle night view mode | +| ~SPC m s~ | Run =pdf-occur= | +| ~SPC m p~ | Display print version | ** Outline buffer mode diff --git a/layers/+tools/pdf-tools/img/pdf.png b/layers/+tools/pdf-tools/img/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..38e3c4bbf098c2d3fec9b5eacbea31ad98597293 GIT binary patch literal 27357 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

{&;4EhGrwX zDuu&DaN{1@;7FfT47$%~{5h0wGpa22eP} zO7EJs5JX@nV)oP9E+Z#$8tP3U$hke|*mygs% zoU{SYL0@c7$xw0-?TAd~iEtz;TE|2U5`MxmBWB=LK}5c?&H3~>QKG*}D0Oz`J1CA?d6#_4kar?VRT zp|Yl(dBWkKhX*R*ob@i^Z=6J;NZ@%3Ln;n3$n104pyO6A88bYb{xN|9fG^MCA{r+3 za<{`{s0>c}mdDW9E|LpGu#ywDe$12=2wP>G@#)6;x@1a$WmhwK?_-eauxC*P2i4CF z@&>))I6c44?pds3t8z#g9f*;~GONu&r}XCqlIf0dz-_06Nz0rhRDLE9#w1`%d2Fgu zH}2lyJ{TXxSMxSo3mb>K7$3ai1%bv{UGl%YfNnyHhSF0vxA1%gCt>I^DOWh7p0Y(* z*%(-;3Hu&4P`OF&{2)$U-;FVABrHe-S87CwvEzV$v$B0ixYN+~e|T-+GGz-EqfmKL zlWs02TM}~n-Gz`gVa|nI1#5L4b;@x z0a5@a)ygXuW1^5!+*#9HSmDll@z)HeO1e-rZ23sZ40G}aHpX_{YRaIVq1{wk{i|;O z7j^(mBdsSG|K$AX2m+m*o@Hf5x+zGSP!YFL21Q#FSyJzmJsbXlA6D_SXa+_wdGm&YoM1#+nPog9ARM ziyI zIMc!u8>>k$fJ#NxP|0~A^nbIB7>_lWo%55)Y2F!VXnM0!Gnq8tY~>17bulhvIikeW z)P--{38NV}k@OMgzEBe?}r-;J$xY_M%^cdl+p9s=V zA3~UOKn^Y!=!1fvD!Onn&xmZZge7D-&~)Uwq4Tg0 zATCYRC}y_ZasE_xt*XvXo!cADY(7IcAf-U^a?<7*YN z%B}vc@G9eg)Tm^|rCNtL^X6!0Z$Y(|2X?b(05i}tBch{sK1WAF^)vm$N6b)#2Or!v zl#m*dWKayLl@zJjZguKmwXgbk!-NN_`q(W=*2@U(B%LUB`N3xOSD>4e8l^Eia#MY* zer35Inf!wz4aP+8x7>LtaVaONKVq1{b4eq{># z^Zn?Py~#L5jSBg(+C{M7XE5NKX3RjWu&@4_Ky%v{+~AC|TnJ5SE2)SU?b@9qM@%)L zzzF?v!2ggs*$KH^5fa*S@lpfwiSK)=AdrBrJhIk|3%|s6bRj(W>qa{~kWfp&+?NIP z@&W@K1!=u3HG91Lchn2Su&M2{CQxMpGVKnKL{Y!yYlYYv`MrK>NEhW@Z1Y^?1_6y$ z=S2ojxj}QMpMS?&W{;TQ`KFGBmoRCe07$wcwW>_^JqCJMSdaguZ=(UW```)yhFblJ zE)Z5cwog9H5c`wUpen)+tI8p~Cj!1h54Aco>a#L<4*Q%LEt$|u=XifQDqIY-ZsG2W zC}Tf~#RK!#AP+ef?+o#?MT(eWMSqdgWXU1?=2ZLpdn&VdAmD zkLH+rm13$S;xX|`A%AvGq79rM<}+(+;aR>axfZq8)=i4@4rS(3tUQmbj*MklKPrYiW)Oo}FZZ&#--)FV8&p{v0 zPyiDQ2P3)gyvaG<9g-=?+YOnXM;`x9>`xsA@Hk4>x91*P;~{%_R5U24pzB=P+Q-qs zJULLm4Emx^(A0!HqKo!)Pd{2|Z)6j6{eh$u;t9UrHFb8>zR)?n@%r_trx0+Yc@zhj zjYpd|(p-CIV2-aKho3OkH!`G87#J$%`StFUvU1-Zl|i&@I%?}oHytE7Hf5=>5wW%~ zc+g8uvWS%cH#4x^$zOYykMSx`aLDD3Y>;W%OVs0^ zGM0m6Cg(f4RoZ8kW#q?;y2BLh;W^E{-6ez0wzV&yTICX%YF%@I&Gv9g91Zm$0XUi%a{f5dp5B zM0CvM6*-H6Euhp?xpgIGv|B8*xaSV|O)G{~@yWX2^X9iY zJbD%o4kvVB#&CfkYZle_-uUvnCrjdBV^Tr4a-RdLHSv52Bf0B1>~|%Sjm`B`y@^mv zQKd;rmCRTYk`CdVoSfh6iN4-GacyhEF_mpx+AQ-=L3dQGVF)T7T~PbDi}`iP9_7)J zeEWY-9=}PZvpKGnxPAOo*d(qfT(y>ech{!k`=paaSOQF6C#uNXBb=RJ3-q-(F3hRM zwrONwoE>ch(6SKXIn3+QWTr059kNvoA|;`7BzLdj^|Qeu1=DfVX!nn=Cj=lf-@f5@ z{<4@U<@F|bl!Q7e8=S*tH8I6ZF*9gV8;CSvDZPMPf2JZ8TzV$GtE zTXP#r`g?lSI}iNV;$s$j7Ygm5^eFZK>)2YeO!kzD7l4QDpv}eV@()-%%8<9;Z~Z0 zV+fDi)mppNeh*b^;?k~|JyF92Jgr(mGy28Jxx%l@?Y)J5KkV;&O`U3EomQR6Fa!A) z2al`)htVH=sCup7>r@Z^DBuSv`Ey+anqhhGIoQ%YjdwB@%!jcSPA9&)f*)%Rlv1r+lu092H%`-6V}_( zruhW&<9jWcNqqjcHa^51W;$ip&s3GsMj4z|rOFpCk~J(Ml^DRCDk?mz*?AXdddcN4 zZ}L5wFZb-1P2FPXwKPaH^COFJqsFo+`6%13&b@g+6r(E439ZAuzmyth370U%%+#Z| zJgy@Q)-#M>Q%;kpk1&SrgCOwUWKqQ8grDhhuFbY#WXe0%VyIL$;23Il_vFZ|1?~}J zuEMruY;x~xz%YS5l*qA>G5Qkq(mjoza099+WG`q0pBI1xfY z&NtIP9xWhUv2yxHD|M)8)w><@S(qHZH;1C!*q+*{NbHU2tHzxt8&fAp11!$&%Kel* z9wd5EP>wN6%D>qUYNX%r%~mc+I|0s>(w>`=_}DM%m;zu$qSm41LLqpy*@}J2Wxary zTZ&*>LDGV879EP!${Aw=%I-~J6PJSApY9cXsu~_{(v5|e;BdtJunWQg7Ro>(=Jt1N zr9YXr2F!2TXuBZ&BFgMb6?*#PN|h4&OT3fy8lTiwt6d(^&1wE9BU7qRZ3^29ZtvkE ztpa+GZH?R;c~ZzvpPUyCuqk@uu z{bvrd?@k)^vUYH7;zbyes?J0aEEVgAXp!7$MSTvrWHpoYhzyut`%S4*s43oD(=Jar zYJkIrJL}@wlU6yco}$SjObl(YPboMD)WTI)_LiT6)=qC~{F6JOf9H^OtVMP)@&Z~s zOM~bbAwvQVd2V+_L=Lf+()n_L8+9QU9LD|Fe8t&uEi?q&p3DaUn=UaIlyE2E+%3cy zHWaj0kab!SrZ4MOggXJp_GBSM;b!T4`30``7w6SX$t0*DM4%P9*#}NedWa5m0z}+3 z_TOdR71nCm?)|ud8F4f)2!BJNPqTnq77CG&U>QglS4FXRb=hVAp=h za5i!so6vqk@GeI+yM1lMR|Uoi+2dQ;S&;j~nqeRaNf#}Hr$=?+^3YEJ04WhkL_t*2 zg*FkxXh1I9go|jXD@Y%vK|eCTci%2E?;e@X56GEuB61+5*HVuXyDlm9lVJRfo@q2L z(HRZR^eokr*+nKe1a&T2u?ue~{N3Ec)e6#l#3>v|!Hyy6FUq^3zF5jSJxyY#gE-Zr}-8ce0 zP9UT|;?or$!sAFSN=Fqjp(Dr^u>iBR<6|t3d4bmbL+v)fsmy)d8p~lF0Cg>h$(U6A z=fO1jTYWjrrxD|5B2vl6IXp#A^;dlyrLk+G^!1UC#Pm^p&s$5w{g=c$qJxA^vPDc%B>o$=@F& zI3?m!vb)zrEhnZ6S{G!)t%F&$Ey;>)tb66k*c(-7WywEw35*!pcA*s{So%q3y9hZM zl%uri1Trnqh=({kdw{bp`?(IX6yV@UQabQJY5&1hoBX;!W!T_UAKU&g7wA0`cLpKZ z7^DTyhx#2PIq5Af^<00*X0Y{XzCJBd} z*;$`MU*PL1!qeumv79qnF`HYW?vg6vvTt$@>(%YO18fF7v{Sy(iurQ~k|+qQu|V2|ne)X{vN&fosipr3S}h#XK3J-)@={jm z?&;8qIcp)7e`m$$CDcjMLIwe2hzaVWNIKQC03P_737?gS;(y^|qVMKA(YuC{mSs%x zE@7$dGWG{`LY&;AW#qM(go}8FDWZA!w~2FYdbn9ePNx6{S7;hTf6k?Kh4R66ucjfc2azX@^uI}zS z;e_^d=tgAy86dEkbdh?&QeyS4*$e$VN3F+xFd>aPj~W9OM;#;O_J5>a|5tUO?&>T= zXNPitu;ZLS7xPqUwv~4_=0!^hIKiY)BVh`fX9V^9WFiaUU)gus0Jw9}FQE8}}e!sPM;E6&GM<5j@64kQ}dDK&NNo<_4 z&WIB)BN1EvGPt7S$t?YOFWu-`5TG#q1QOD#IZG5?oJ5LY5RwVJsNbtX4u+Udmvdqb z{kg~iw{{ONA!_5@3RLIm%hBjv7h`<+8}smqb*nF@>ReREXtjrV=pgUp^~0s|z(;~s zp)~l}oYt63AIdLa%9v&Uk~xdYrSv8mzRQc}Mzuu8YZ?xB|U4!tZOI)%}z9^8kEgCKq=Amu_A`EccDm&)KW zpCG04R(d(z>#yLayPN~%m~Qml`}@2CEK9(TgQwp{DK^Tys$;E~F6tNtDnb{;FiH9o z_8z^uyt)4t;u-DK5)$Ph@2Iqi*P+h#zhPI_)j_)8Zw>8{r*5-KxOOalrDbdXZwWCz zj-niQr?OCpxCcU?3xmjFg-1ORTNyKE>xcHYc5+b68Z1hWpnuf9n=|QN*U&>OR;5vw ze6=mfA%7+vu?`Ap)GMoOA-M=vduojWYf&e|Y9X>98947TnY3O#WEF%`sytE;CI12g z38!*3>4SzL8ra8i)X!R#9vI~kH&|1 z{J3J&ZwgP8$qF=yBpFC&yf8Lzr33c@!|`00>Dj;r!2R6$J}f7OX7PT=S|7eT!2Te% zgmb=h5@Y#FhY^J%?8IdYl@YdnBujMstv(GxvvSULrf+t}bFsK-)wv80Cz01l_?@JK zRx~*q92?WLW>8F`^2h}S()$p2Yt?=#wo*T?b=%NgjjD*Hc&PnQb74qGQP=jzAmJ1* zUDVM9Cj==TX9{rgXO?}!m_>d)<9qLr=xE$2i1orAwxoxZy*{tLrBVBdNyn-9odc1b zi=pq)#5XO=Q?p*`Y0I^q(5)K@TEPp|Xc#`mlNyzt-%$YDgkDv#mHd4;GG-WAOT zIt-XLv$Ff!c-#x`90brFnRz+r<30`*+*>MC_U|7m9h_U;Kfs6VhbXm;u_lB(jew0z zPMq;0&ApAdDxva)1I;mPB>10fa)EI^Zah4nWgdv|Zf(lhb}a*tU6aW77nO z@Fac6FWeQo{yC&pwsLk?{_b_+UyVzL@0)WvTj8HT6&6)97|D{X&2b9{XwqR~g1RU#CWYhbvd#T9{v7W>&A7Cl8vZ zqIb9w?EE$z5vQ-3>L}cbE?S1G={o{Ig*_x4h_tcG@XGebpp;yX`4FAd8mCdkU{dk!Sg6Z5LMHu8J9Q{> zwKn0w3ua2TdcpjW%Fqiz`Rl;{S?VY#KkILz?;ftQ4(x;U7o@1~G~5g=@Ax!}5MM;) zwU$bIJ?dLpnoP{eDltdjzL6b>@8R7TZMsz#Jkp8?}ri?i&@-*hz1>3$2nR>^~gAB0b zJ}E{QvYx7&xR+6$GbHgGTi3=PDxZi;PK0AJhWPwj*%dBly0xiPdK0VQJRxe9dMnpm zT(_ap-Nq+9?ryIXw#3`^KY-taj!ZO`a`*`op4~w2aYVG8l>!UP?XSQhi}55n-7}8L zHd$3ob<;dosi>McX70tB^+gN;pJFxmPwNY(afTLl5;NeWKKQ6SQyHn8>Y0pjSiJfi zUO&slw}c*|j!M@_m-hdKA)XqR@2hoHaep@kLgb=q#4lx4?tf2plF|?ilQd2iW=@Jc z5}W7aPUFch!BI!_#_w!i{jXw5Y8*^eVvo0bdR`allCkJ}P(1)8V8#yrTX0;qBi) zT&0dmL5>B`K=d4JaV5<11+@hKLbUasJgbf6YzfQ=OJK@=2@GNC`zCA@!j)8m_M}mg z>{~YX#B!WofMNPKAir+nJ&OFb$DRV1YNV&oTL%1xyCWhup;nu5RsyA^4lH?!xA1%? zC4f1yUvT*S9p%9To8tTIJE9h~{)e&}p?g17Th8ue8s44nBz{Sd^l)A7dtaReFcb~H z9I5##2>)zP_<|(HQQoRss2`8xoa(G{=+wue4jJ)y+KANo8fTDxxj6s8^H3 zz@y<&Ddc}N9Dq&J$mslrs~x{}sEQno{ErFDS|yq39^TjfBMA1wM(N@UQdSe+DKgrW4h z05_(QHE>Bxz4Fq-GsrG-y_1+f=lU6k72j5^7Veq5{XjVV6ELGrW%s?X;2R-Q3O&!b z1E^HbMCN({&(e5(C>FwVtd92pg;xNs?C=ra6qZ{}1^UBZ>5j?E<@bySa= zxxNmPzM*9*Jl7lv1k)j#^gJm3j5?o(%H~^jM!_F{VARZrevsw+s0;t%XO*qOzI1vP zl5P3^aF+fztC3%-Fakuf3b$u&)*$$eVIpIaN_sg^_()Uyc+{m8s9hwgS+f*ha6&H| zR_fw4e#NX`Zr@ATZCp2#@TXY*?`WAnw57gxRbn~9wXo7j4|IIIj@ba&3gCYz#~6KI z%W>$Wev<YUh zDN%DccR7A6W0zZNX#+7f=*u$wwj`Cu!x+y7))VOkI~_Xx+=c5Ml}+eLt(WJ$07JRn z$ukvYQct>x3$-e~i8F_9E+*OS@y3HY@Ehj<8VEsQB7_<5NylY61rOn_8{(y0s+YOp zWo;LyN&E`@t^ij{>ZFcIB_fI0>YBu*YxosB)z#rp_`|_G14#6r!a(0)FZH#p{T;uE z@4ufVHDeuk8zXf|J!!lJoRg+f;mkVPZ2RE~J2v-O{ze5=AEA`fAlu(U@AkJKR=rw1 zv8fhBWp04p4>R(+FeAU|tq}QDj#1+JiNu}k%AD8QaVbfj4cw>E@T&upfIzt#f!LdC z5UE(jdKJr+Bi=w9ZCJXAhQ7HqE8iA#0*y~sy8+guTFt`|;-nk8F5NMI)D{SRgAiQR z@S^Y2uz&dZ5V(Ra2Jh6!q>kzo+NZJ3jb#_M6<>Fm&an*u2M2ED$0t{!>p0B*$LMnF z%H;$1#BBJp2z5Umx022-G4uK?eHwM$Jnna4fez4Ao=sL)m#f*cT%ytF59%k7VFR?m z6|JlJZqQFa>PZl_8bn_q_877%+9V|-=-!qzyCmK=&?{Au#cP&{kaB|-cvA* zb5r!#;PBuz_+Qh{2cB4h{A9jGBFj@ZxVG>9_<1C$b^#}1p2op8!Pee}ei~F?&tj>U zulHGQ2Ms=hTrOc_8svUgZ zi!aT^YtaOrLTC3xZO? zXzA^Lto-f7$0U6LVb28F%Nlw;F`e*KqPt|Mp*McSL>$Y?8>&Ej9ZM8{P)?(t#+Hsay_h;fwTqU_w9?Le0LrzoBGArzWZ2O-_fQ!t?t{Wn zNmb9J%V1~w*IEkkGrbwPaqJ@Xz!(U%_qB)z_HoCr2X~j$>D5BG5GZ(M8c&}iGd!4? zG>$eCax;C-4>&0Ay7oE!x7Vw3iuhLYxC-R=aCHMGl#QU=fq}O={HPtq7zuj&&yy19Pc6JbhZ4WMV7V2BWO&)s1#P>(xsCPt{ajIroQ zRJasr{siJ_LFyT_na)%LyEXH@(uCcUqUUg_0qSLnQptsO33un~euJOx(nMOJjom`x&O9Ci;I|)F^CYGOOSxsBfNu55xeaRYE;{_f_R`Zcs2u?3mHOc zeDWA*e>LqbDdXHI6Ir_iU+#iCX-Dr@kdX&E;**Kli`%yhTn9j-vnc_ZbdJX;qDQc# zYISgV+w1vq?0cxBM6l{Lu5QGK2k6C|bxX6!#Hy{F-N@SyiSq5VkloO>X>b$oHAh-E zQTQ+)htv>qlpnyiJ7JT28kt8~?`58?l#QHTEX3zvq&XL_vuV!N+!xcXwn{+p%)v;( z>B-*oLjog#5a{I*-~XXg%|637t^d-0)}*HLEB=GlQD-MzmbG;bC$>+2DW9XT^N~G1 z>g(nti>i);v2?o~9DN@SyQZaDxS`SHOAM)6x)fQG#1iqGyJLs}kgi4xlBB6bS6dBq zww*$2brqvz4db0PY(?mznLFtp7m;2ck)6ZU!i7!9V5&W}qF{iB-NfILX2~x&a`wxm zt%G!)G`LRL>9wuX>WD3o?hiWWk*Eq}Of3B~ds+T(qbeqB2-7%w)H7W3bAGSk#KUWf zLkDkcT+vI!&@f6PCeuB4vjhV)hMF;4p;U+L%rdqlM6K=fhDHkWWHv^6w6d35<5c)5 z9^}j6`&y!w2cq76+Ffdl5dep~=z=g=(jJ^H>t+Df6IJ?`wOxV<@P|-&k=CqYRAi)X}j-cE9 zm@~CMAppFKX&w|#_Hj|QRi2-kPRSCOZ^H~v3DTuWZNkA8_p-+R{CI1BU&bOj1ax|= zHzqYHTkds~F#xT^te{9(LE&gUEQzVlcQ5qBG8%0(7~^^lBWP#B^0%S7 z;qpNH%d}Q))-wzhHc?n#zhFilUeWO~zJc(cSi9sTAvE5ocM7p@yHwbET+-HKtvGG6 z#;86~{`~O400d&4uRpKu%ZztE1XFB-NgkCZ>E@m3z}HTW+dl+G610<7G!odX!IUau z>${wq73o=p!{2>ji;Y?sKi*;mcI(AzbrF}yQE{Y8oFILE)>|0(uz9XGQ?fngKRE`# zfYA+yJHDEE{_kJ6_24I&)VaD^$nHQvf7+tBYtb6*kVAPs^u6*r}NFVYr7Xktw@<6o=+x>Z_K1ye2MOaG#@!@7zSdt&s|f0P(>Yb=9J=khUCg)@EjfHty^EGDazN@`dv8YV=emLlFRYjji&M?Qh zy=P(erky}jI<4l}QE{PE{~ay81Aj?>`|q&R(=!hIfPzltYk@Z%SB4Q0Q#cK}Of2fK zJx-_m&tjbX2>&xGY5b(NEeF3xJS~^7ifN!vjh?}{1aJFRqwgYkb58z9Rhz+ozgC#y zp?b>XoVy$YjTo>_v}NSrhoO_@Bg2D#mqzJ(6sff3;HOzV{gaXE$d{q0Z?tUM|7+hN zH^Ml&?-Z=|MJ(ksxV+_5c;aKFYK~wqHJM|X&<^f}u?8Plx2R;)_(Djk>=Nto#7zj)w ze^$Le7s@)5`Iw<3%6`bV@6&pD;Z3qvCGJ^IhSJ>|1LUQ0=JBr(I<7_d^=+dhWZ~&fmbL$2U)k= zBG_Qv60;1goO2cf`Y$m*@)-v1XF}W%eQBFnv?f*b%z@yqXDI&H5dJ)`R@wH^p%hD4@4-J& z9zmiIUuBaBtPXW{{CT+$y@NE8EMoFnxrwJ2-Ru+?RJyma_4sN$ls31DftcLQ90qEH zH*+8zq(Jz3!SivDxDCeX zOOovQ<;?@vi#b#qC|}GJocv@J(^0QaCqB`ll78x#MRDO0zH)^uAg!BjcJ1PtZ(8O6X6GYrJ5gVt;X z@g9BpptJ42Fe`k7F^2~BvS>*TaH2HdNUUbJaCX-dTQ(o~l^BB%?O-F+Il&6cU-&HP zKapk;%qG=tj3gwDoS4EH6|(4W+WQ8!8ngA}6O@LX{O71(z|-FJU_;2Yfwddh#~+2r z&xTRN1d<9OXf1*)F_Cyfc{sTu=2Hz}j-@eIF$M*y40pEw9%G(=hgk$imzdH9F5%8= zm~*isJb72d+%hIaQ%eGq2R_#`ZdRJi+CQ5yZQTqwgV zEK|Y8-FWbw@(u7%#q>3+fAD3I5kQitky*63QgbeQqe9`&6duy+Id?e*jur-{rILkl zh6=?J{C6V_J_-Q`W|1XJKT)@yZ6`;% zja)W}2im9_mXv?9#w?_3mJ#!2aaZ|ln3fWF2o9X}Q_?ql_ynm6&$CWUPB!;9)fa7M|tLd-N%bpbX4s4rffUo?nCGF)fn23Jl zzV;uK;`kB|)5a}|Q|HW7Ouorbl)j$T0q>(6wQ*Eky!@7-Nhw3%x(8(zYlqK8Hn=+r0Xwc;lRhYm#ATXWQGE%@?!ieN35%7r0St z#bj;!hM2_z%;#IiVK(;}#oL$`U6c!7A9hE3Biw*95;k0Q>TY~rTL80fh z_U*sZGfUGki_-9c9Z83*!spQV!qcBtbYz8dfdMr(F=oNTHie;z-Jhk^*DD%fN}n@~ z!&&}&j4&{!H*b=ssbM24I-bnb%2&)1=B!s@mf$Kd5k0>V@$a;68@MrybwY&3d)5uH z_e3KDOWRf;Qa%J+t*aJuh2<}n#B&bc*>R?2EMsqM-8yu)XO`S5)`-~r{itKW)8zPk zf`k}Y-uigXA^rwLt<}O(ue4X7rY7-dr{JTCy|%S?;GYT8WaWfs-71_+ohr7x{adJ6 zPxIZC4_O{z^;o zy%QtVoPTku9{cw>BkI-qJhw425~mh1f5)9blEoU*>Wgp6iV3yZll?p3`?PST&^P{2_2^i+f!B67D zGd~KH9_8uhDd5w&yw8}g%ByqI5`3r0}=HPV;%f~H3MDC6&2I?h@ z2J4Xy%45^kYanP-vGA&A7WMqZ6Io|}Vay_CI7H766PTrq1krG7$45Q0m_hXSj(~y#OS?=NLH37%+zM1X;0_!ddoi%hR8TFG8+!nmmk$qwI_2 ztpo4%{u2^1X(bhcMeOZt_Ie?V=$S4E69=UxS(wiu&LI1ae>a>ULs&j;scVG%@%Ujt z`%FaCMv!q_;GhZ{~NywRtD?tgqK519s*Z9V0^%Gnm<5|`%6?j)l@(A zl1+Yc+DvBFGNQejpCi<%dPK< zvp2T0MhvRAaY?hH5*A0@ZoUQc@fB<*`&V%Zml$)RLB3fUFj2p!t+)T9g4=y4i<=_k zF2}$z#(+rxeKd2pg>T%)@uN|P#?81>Cbzq>ntqZqW?!ZG>@f zv4cs^W^g^I+T`R{nVfu%_pD8D>OFTk24({WOf?!TwZE9PE@BpqFUBsHVJri|Yj@+l zX)*g7724)%Cg}YGv*;TxOnP#{r7?>w)RdGl4&|UIL^@h!}Nh zUCUhmjmTQiXz7XT&QFGs4zQetw{K!iTgEB?F;@LT&Cx_ynSrg%V7p-0E88{?ZVU`p zA1Qy%F)*7jkfc%dX+=gO=wc#nSvCq908_d5tinK&CDDbAB{J2CGg={hanTK5-8#Uh z&T;F;jw@gmTL>v88eG}_j4X-2&7|jIm?dm3YXq%#Ct3Jt4c4>gm3j~K2oA9Gxt3>z*BQ(F^uLv4?+w`TCBsQ+==?7aYrkcq(MpQ7{?x6&vWe~ zNA}z~Z{cuU(f*e=!UXz+g&0MQH+KF;k^Rg*@k&_3ZqBmmi`%yittSJ;&DAhNQU3E_ z!T>xG{r~pP9;JaOh~wF4qA`V~m4(>bSl9*x4BCP3CuX6 z1PUdA;DXT+=7_-MOiMu5myilWo4W-3O-#o-la@Q2ZvlX1zb=3&SNPvn#dySx#i~5Z zJzLx~>148eIi`*ar5o{O|ByfcjC5w_*RUuD9PXm*3uexUOHvR~FB|T24p6iTmaJ%1 zCihCyqDZf3QO3MC0Pc9Ml?E#X)6`;3?u#Qzpb!$U3`WIwwWUg5vIdN!edv2EKdzAr z6DYfA(0EHhQ6h@gW*$m5$b5M;+Pf0mBufC<1UWG?+*%%`{Kim<2q67*mfuQ`p zy9Jf&OdhKCp4$=@6>s8WZQBS#+O&b|)#2J5pt-8_(`)yclsCFy(J+~az^OoWg%$b#MGb2SrM{Erg& b4-)tScPQ|e!tV`f00000NkvXXu0mjfqFno2 literal 0 HcmV?d00001 diff --git a/layers/+tools/pdf-tools/packages.el b/layers/+tools/pdf-tools/packages.el index b77f7210c..3f1d94a5e 100644 --- a/layers/+tools/pdf-tools/packages.el +++ b/layers/+tools/pdf-tools/packages.el @@ -10,10 +10,7 @@ ;; ;;; License: GPLv3 -(setq pdf-tools-packages - '( - pdf-tools - )) +(setq pdf-tools-packages '(pdf-tools)) (defun pdf-tools/init-pdf-tools () (use-package pdf-tools @@ -22,6 +19,87 @@ :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) + :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 + ^^^^ [_b_] slice from bounding box ^^ [_r_] revert + ^^^^ [_R_] reset slice ^^ [_t_] attachments + ^^^^ ^^ ^^ [_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) + ;; 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) + ;; 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 + "." 'spacemacs/pdf-tools-transient-state/body + ;; 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 @@ -46,44 +124,7 @@ ;; Actions "r" 'pdf-view-revert-buffer "o" 'pdf-links-action-perform - "O" 'pdf-outline - ) - - (evil-define-key 'visual pdf-view-mode-map - "y" 'pdf-view-kill-ring-save - ) - - (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 - ) - - + "O" 'pdf-outline) (evilified-state-evilify pdf-outline-buffer-mode pdf-outline-buffer-mode-map "-" 'negative-argument "j" 'next-line @@ -104,78 +145,16 @@ "''" 'pdf-outline-move-to-current-page "Q" 'pdf-outline-quit-and-kill "q" 'quit-window - "F" 'pdf-outline-follow-mode - ) - + "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 - ) - + "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 - ))) - - (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) - :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 -^^^^ [_b_] slice from bounding box ^^ [_r_] revert -^^^^ [_R_] reset slice ^^ [_t_] attachments -^^^^ ^^ ^^ [_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) - ;; 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) - ;; 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)) - -;; pdf-view-mode-map is not recognized unless wrapped in with-eval-after-load -(with-eval-after-load "pdf-view" - (define-key pdf-view-mode-map (kbd "M-SPC") - - 'spacemacs/pdf-tools-transient-state/body) - (define-key pdf-view-mode-map (kbd "s-M-SPC") - 'spacemacs/pdf-tools-transient-state/body))) + "?" 'evil-search-backward))))