Difference between revisions of "Llpp"

From ArchWiki
Jump to navigation Jump to search
(update Pkg/AUR templates)
(Tag: wiki-scripts)
(Clean up history: Remove tip as this is now available via the `-gc` option and documented in the man page http://repo.or.cz/llpp.git/commit/1ef1cdc42b42b72037b9f18cd82157a7f4531f8d)
Line 88: Line 88:
* {{ic|rect <pageno> <color> <x0> <y0> <x1> <y1>}} - draw a rectangle
* {{ic|rect <pageno> <color> <x0> <y0> <x1> <y1>}} - draw a rectangle
* {{ic|activatewin}} - raise and switch to llpp's window
* {{ic|activatewin}} - raise and switch to llpp's window
=== Clean up history ===
Files that no longer exist can be cleaned from llpp's history by using a "garbage collecting" script, such as the upstream python2 script [http://repo.or.cz/w/llpp.git/blob/HEAD:/misc/gc.py here].  Use the {{ic|-gc}} flag:
$ llpp -gc /path/to/script
gc.py done.
=== Inverse search using Synctex and Vim/Emacs ===
=== Inverse search using Synctex and Vim/Emacs ===

Revision as of 22:03, 13 June 2018

llpp is a lightweight, fast and featureful PDF, EPUB, XPS and CBZ viewer based on MuPDF.


Install the llpp package, or llpp-gitAUR for the development version.


llpp uses keyboard shortcuts and the mouse to navigate through a document. By default, pressing F1 or h will bring up a help page where all other key bindings are described.

Check out the following page for a complete list of the key and mouse bindings.


llpp uses a configuration file to store settings: $XDG_CONFIG_HOME/llpp.conf or ~/.config/llpp.conf. This file stores: 1) application defaults, and 2) file-by-file user preferences (e.g. the last page viewed).

UI Font

One can set the font used by llpp by indicating the size and filename in the config. For example:

  <ui-font size='16'><![CDATA[/usr/share/fonts/TTF/DejaVuSansMono.ttf]]></ui-font>
  <defaults ... >

Custom key bindings

It is possible to configure key bindings. For example, to disable Esc exiting llpp, add the keymap element in between the defaults tags as follows:

  <defaults ... >
    <keymap mode='view'>
      <map in='esc' out=/>

More examples can be found in llpp's example file keys.txt. For vi-like key bindings, see this example.

Tip: Bindings can be set for particular modes, including birdseye, global, help, info, listview, outline, and view. Example here.

Save annotations to pdf

You can annotate a pdf with Shift + Right Click. To allow saving of annotations add

   savepath-command='echo %s'

to your llpp.conf. After annotating the file save the changes by pressing W. This echos the current pdf path to the option savepath-command

Tips and Tricks

Reload File

A document can be reloaded in three ways:

  • Pressing the r key
  • Sending a HUP signal to the llpp process
$ killall -SIGHUP llpp
  • Using the "remote" interface (see below)

Remote Interface

The following commands will setup the remote interface and use it to reload the file "image.pdf".

$ mkfifo /tmp/llpp.remote
$ llpp -remote /tmp/llpp.remote image.pdf & disown
$ sleep 1
$ echo reload >/tmp/llpp.remote

There are eight remote commands:

  • reload - reload
  • quit - quit
  • goto <page-number> <x-coordinate> <y-coordinate> - goto
  • goto1 <page-number> <relative-y-coordinate> - goto
  • gotor <file-name> <page-number> - goto other document
  • gotord <file-name> <remote-destination> - goto named destination within the other document
  • rect <pageno> <color> <x0> <y0> <x1> <y1> - draw a rectangle
  • activatewin - raise and switch to llpp's window

Inverse search using Synctex and Vim/Emacs

To use the synctex capability of llpp, add the line bellow to your ~/.config/llpp.conf under the defaults tag:


where SyncTeX-inverse.sh is the script bellow

page=$(($2 + 1)) # The page number star at zero in llpp

# for vim
synctex edit -o "$page:$x:$y:$pdf_file" \
       -x "gvim --servername synctex --remote-wait-silent +%{line} '%{input}'"

# for emacs
# synctex edit -o "$page:$x:$y:$pdf_file" -x "emacsclient +%{line} '%{input}'" 

Make sure SyncTeX-inverse.sh is an executable script and add it to your PATH environment variable. To use the synctex command you will need texlive-bin package from the official Arch repositories.

See also