llpp

Related articles
MuPDF
llpp
is a lightweight, fast and featureful
PDF
, EPUB, XPS and CBZ viewer based on
MuPDF
.
Installation
Install
the
llpp
AUR
package.
Usage
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 the
full help text
.
Configuration
llpp
uses a configuration file to store settings:
$XDG_CONFIG_HOME/llpp.conf
or
~/.config/llpp.conf
. This file stores the following:
Application defaults.
File-by-file user preferences (e.g. the last page viewed).
Per-document options
Pressing
i
will enter information mode, where you can examine and modify display settings for the current document.
Alternately, pressing
-X
(where
X
is one of the tunable options shown in the help screen) allows you to set a single setting directly.
UI Font
One can set the font used by
llpp
by indicating the size and filename in the configuration. For example:
<llppconfig>
  <ui-font size='16'><![CDATA[/usr/share/fonts/TTF/DejaVuSansMono.ttf]]></ui-font>
  <defaults ... >
  ...
  </defaults>
</llppconfig>
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:
<llppconfig>
  <defaults ... >
    <keymap mode='view'>
      <map in='esc' out=
/>
</keymap>
  </defaults>
</llppconfig>
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 file by right clicking while holding
Shift
. 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
echo
s the current PDF file path to the
savepath-command
option.
Opening links in web browser
By default,
llpp
will not open links in the default browser. The
uri-launcher
option in
llpp.conf
is responsible for handling this action. To open links in your default web browser, set it to:
uri-launcher='xdg-open "%s"'
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)
Multiple columns
For side-by-side 2-page viewing, press
-C2
(or set
columns
to
2
in info mode).
If the page offset is wrong (left-hand page showing on the right-hand side), set columns to
2,1,0
.
A unique feature of llpp is being able to split a single page down the middle by setting columns to
-2
. Use
-3
to split a 3-column document.
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 below to your
~/.config/llpp.conf
under the
defaults
tag:
<defaults
    ...
    synctex-command='SyncTeX-inverse.sh'
    ...>
    ...
</defaults>
where
SyncTeX-inverse.sh
is the script below
#!/bin/bash
pdf_file=$1
page=$(($2 + 1)) # The page number star at zero in llpp
x=$3
y=$4

# 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
llpp Git repository