1PDFPC(1) General Commands Manual PDFPC(1)
2
3
4
6 pdfpc - PDF presenter console with multi-monitor support
7
8
10 pdfpc [options] PDF-file
11
12
14 pdfpc is a GTK-based presentation viewer which uses Keynote-like multi-
15 monitor output to provide meta information to the speaker during the
16 presentation. It is able to show a normal presentation window on one
17 screen while showing a more sophisticated overview on the other one,
18 providing information like a picture of the next slide, as well as the
19 time left in the presentation. pdfpc processes PDF documents, which can
20 be created using nearly all modern presentation software.
21
22 By default the presenter view appears in the primary monitor and the
23 presentation view in the second monitor (provided you have two moni‐
24 tors).
25
26
28 -B, --list-bindings
29 List action bindings defined
30
31 -C, --time-of-day
32 Display the time of the day
33
34 -d, --duration=N
35 Duration in minutes of the presentation used for timer display.
36 If not given or if a value of 0 is specified, the clock just
37 measures the time in the presentation.
38
39 -e, --end-time=T
40 End time of the presentation. (Format: HH:MM (24h))
41
42 -f, --note-format=FORMAT
43 Enforce format of notes (plain or markdown. Default: markdown)
44
45 -g, --disable-auto-grouping
46 Disable auto detection of overlay groups. (Default: enabled)
47
48 -h, --help
49 Show this help
50
51 -l, --last-minutes=N
52 In the old timer mode (see Timer below), defines time in minutes
53 before the end of the talk when the timer changes its color.
54 (Default: 5 minutes)
55
56 -L, --list-actions
57 List actions supported
58
59 -M, --list-monitors
60 List monitors known to the operating system
61
62 -n, --notes=P
63 Position of second-screen beamer notes on the PDF page (left,
64 right, top, bottom, or none. Default: none). Note that this dis‐
65 ables slide auto-grouping.
66
67 -N, --no-install
68 Allow for testing pdfpc without proper installation. Icons, con‐
69 figuration files, etc. will be loaded from the source path loca‐
70 tions. Mostly intended for developers.
71
72 -p, --rest-port
73 Port the REST server binds to. (Default: 8088)
74
75 -P, --page
76 Go to a specific page directly after startup. In case of over‐
77 lays, the first slide will be displayed.
78
79 -r, --page-transition=TRANSITION
80 Set default page transition. The TRANSITION specification is of
81 the form type[:duration[:angle[:alignment[:direction]]]]. See
82 the Page transitions section for the list of supported types.
83 duration is in seconds and set to 1 by default. The accepted
84 values for angle are 0/90/180/270; alignment can be h[orizontal]
85 of v[ertical] and direction i[nward] or o[utward]. The last
86 three optional settings are meaningless for some of the transi‐
87 tion types and can be left empty. Examples: "push", "dis‐
88 solve:1.5", "wipe:1:90", "split:1::vertical:outward".
89
90 -R, --pdfpc-location=LOCATION
91 Use custom pdfpc file.
92
93 -s, --switch-screens
94 Switch the presentation and the presenter screen.
95
96 -S, --single-screen
97 Force to use only one screen
98
99 -t, --start-time=T
100 Start time of the presentation to be used as a countdown. (For‐
101 mat: HH:MM (24h))
102
103 -T, --enable-auto-srt-load
104 Try loading video subtitle files automatically. For each video
105 media, pdfpc will append ".srt" to the media URI and attempt to
106 load a subtitle file (in the SRT format) from that location.
107
108 -V, --enable-rest-server
109 Enable REST server for remote control of pdfpc.
110
111 -W, --wayland-workaround
112 Enable Wayland-specific workaround. This might fix HiDPI scaling
113 problems.
114
115 -w, --windowed=MODE
116 Run in the given windowed mode (presenter|presenta‐
117 tion|both|none). The default mode is "presenter" (only the pre‐
118 sentation window is fullscreen).
119
120 -X, --external-script=FILENAME
121 Specify a script to be executed with the 'X' (Shift+x) key dur‐
122 ing the presentation. The script must be executable but can oth‐
123 erwise be written in any language. The script is called with the
124 following command line arguments:
125
126 • Name of pdf file
127 • Total slide count
128 • Current slide number
129 • Current user slide number
130
131 If the script exits with a non-zero return value, whatever the
132 script wrote to stdout is printed in the console. Otherwise
133 nothing is printed.
134
135 -Z, --size
136 Size of the presentation window in width:height format (forces
137 windowed mode)
138
139 -1, --presenter-screen=MONITOR
140 Monitor to be used for the presenter screen (see the -M option).
141
142 -2, --presentation-screen=MONITOR
143 Monitor to be used for the presentation screen (see the -M op‐
144 tion).
145
146
148 These are the default keybindings for pdfpc:
149
150 Right cursor key / Down cursor key / Page down / Return / Space / 1st
151 mouse button / Mouse wheel down
152 Go forward one slide
153
154 Left cursor key / Up cursor key / Page up / Backspace / 3rd mouse but‐
155 ton / Mouse wheel up
156 Go back one slide
157
158 Shift + Page down
159 Go forward one user slide (see Overlays below)
160
161 Shift + Page up
162 Go back one user slide (see Overlays below)
163
164 Shift + Right cursor key / 1st mouse button / Mouse wheel down
165 Go forward 10 slides
166
167 Shift + Left cursor key / 3rd mouse button / Mouse wheel up
168 Go back 10 slides
169
170 Shift + n
171 Go forward 1 slide irrespectively of its "hidden" attribute
172
173 Shift + p
174 Go backward 1 slide irrespectively of its "hidden" attribute
175
176 Home Go to the first slide
177
178 End Go to the last slide
179
180 Shift + Backspace / Shift + Space
181 Go back /forward in history.
182
183 Shift + Home / Shift + End
184 Go to the previous / next slide, skipping over overlays that
185 have already been viewed, but at most one user slide.
186
187 Tab / 2nd mouse button
188 Overview mode
189
190 g Input a slide number to jump to
191
192 m Bookmark the current slide and store it in the .pdfpc file for
193 later usage
194
195 Shift + m
196 Load the bookmarked slide which was saved with m before
197
198 t Toggle the toolbox
199
200 1 / KP_1
201 Switch to the normal mode (pen/eraser and pointer are off)
202
203 2 / KP_2
204 Switch the pointer mode on
205
206 3 / KP_3
207 Switch the pen drawing mode on
208
209 4 / KP_4
210 Switch the eraser drawing mode on
211
212 5 / KP_5
213 Switch the spotlight mode on
214
215 Plus / KP_Add / Equal
216 Depending on the current mode, increase font size of notes or
217 pointer size or the size of pen or eraser or spotlight
218
219 Minus / KP_Subtract
220 Depending on the current mode, decrease font size of notes or
221 pointer size or the size of pen or eraser
222
223 c Clear the drawing on the current page
224
225 d Toggle visibility of the drawings; if in the drawing mode
226 (pen/eraser), exit it
227
228 f Freeze the current presentation display (the presenter display
229 is still fully active)
230
231 w Toggle between the fullscreen and windowed mode of the presenter
232 screen
233
234 Shift + a
235 Maximize/unmaximize the current slide view (e.g., to increase
236 accuracy while drawing)
237
238 b Turn off the presentation view (i.e. fill it with a black
239 color)
240
241 h Hide the presentation window (i.e. make other windows on the
242 other screen visible)
243
244 Escape Exit any "special" state (pause, freeze, blank)
245
246 Ctrl + n
247 Edit notes for the current slide (press Escape to exit this
248 mode)
249
250 Ctrl + z
251 In drawing and eraser mode, undo the last added stroke or erase
252 curve.
253
254 Ctrl + y
255 In drawing and eraser mode, redo the last undone stroke or erase
256 curve.
257
258 s Start timer
259
260 p Pause/continue timer
261
262 Shift + t
263 Cycle between the timer view modes (count up/count down/current
264 time), when applicable
265
266 Ctrl + t
267 Reset timer
268
269 Ctrl + o
270 Toggle the overlay flag for one particular slide (see Overlays
271 below)
272
273 Ctrl + h
274 Toggle the hidden attribute for the current slide (see Hidden
275 slides below)
276
277 Ctrl + e
278 Define end slide
279
280 Ctrl + r
281 Reload the presentation (e.g., if the PDF file has been updated)
282
283 Ctrl + q
284 Exit pdfpc
285
286 ? Show a cheat sheet with the keyboard and mouse bindings; press
287 Escape or Return to exit it
288
289 Within the overview mode, the following key bindings are used:
290
291 Return / 1st mouse button
292 Go to currently selected page (last page of overlay)
293
294 Shift + Return / Shift + 1st mouse button
295 Go to currently selected page (first page of overlay)
296
297 Cursor left / Page up
298 Select previous slide
299
300 Cursor right / Page down
301 Select next slide
302
303
304 See pdfpcrc(5) if you want to customize the key or mouse bindings.
305 Please note though, that only in the normal mode the mouse bindings are
306 configurable.
307
308
310 Caching / Pre-rendering
311 To allow fast changes between the presentation slides, the PDF pages
312 are pre-rendered to memory. The progress bar on the bottom of the pre‐
313 senter screen indicates how many percent of the slides have been pre-
314 rendered already. During the initial rendering phase this will slow
315 down slide changes, as most CPU power is used for the rendering process
316 in the background. After the cache is fully primed, however, the
317 changing of slides should be much faster, as with normal PDF viewers.
318
319
320 To avoid excessive memory consumption, cached are only slides that took
321 a significant time to render; this threshold is configurable. In order
322 to further reduce memory consumption, the pre-rendered and cached
323 slides are selectively compressed in memory. The compression factor is
324 typically 10-30, however, it takes some CPU time to compress and uncom‐
325 press, so there is a trade-off. Small images below a certain (config‐
326 urable) threshold will not be compressed.
327
328
329 Please refer to the pdfpcrc(5) man page for options to fine tune the
330 caching algorithm.
331
332
333 Timer
334 If a duration is given (-d option), the timer will show a countdown
335 with the given parameters. If no duration is specified (or if a value
336 of 0 is given to the -d option), the timer will show how much time has
337 been spent. The duration is stored automatically, so you do not need
338 to repeat it for every invocation.
339
340 The timer is started if you are navigating away from the first page for
341 the first time. This feature is quite useful as you may want to show
342 the title page of your presentation while people are still entering the
343 room and the presentation has not really begun yet. If you want to
344 start over you can use the 'Ctrl + t' key which will make the presenter
345 reset the timer.
346
347 If a duration is given, the timer also provides hints aiding the pre‐
348 senter to judge whether the talk would end on time. There are two
349 modes in which pdfpc can operate. In the old (and the only one avail‐
350 able up to, and including pdfpc-4.0.8) mode, at the moment the timer
351 reaches the defined last-minutes value it will change color to indicate
352 your talk is nearing its end, thus mimicking a chairman frantically
353 pantomiming in front of you with five (four, three, ...) fingers up. A
354 drawback of this approach is it is often too late at that moment to al‐
355 ter the presentation pace without ruining to some extent the rest of
356 the talk. On the other hand, the warning indication provides an unnec‐
357 essary distraction if you have been perfectly conveying the talk and
358 the remaining time is adequate.
359
360 Contrary to that, in the new (default) mode, pdfpc tracks your progress
361 continuously, calculating the expected time as (talk_duration)*(cur‐
362 rent_user_slide_number - 0.5)/(total_number_of_user_slides) and compar‐
363 ing it to the actual wall time since beginning of the talk. If these
364 two numbers differ by more than 60 seconds, the timer changes its color
365 to either orange (indicating you need to speed up) or a blueish one
366 (need to slow down). Once the optimal progress is recovered, the timer
367 becomes white again. In this mode, the last-minutes option (-l) has no
368 effect. The previous behavior can be restored by setting the 'timer-
369 pace-color' option to 'false' in the configuration file, see pdf‐
370 pcrc(5).
371
372 In any case as soon as the timer reaches the zero mark (00:00:00), it
373 will turn red and count further down showing a negative time, to pro‐
374 vide information on how many minutes you are overtime.
375
376
377 Notes
378 Textual notes can be displayed for each slide. pdfpc understands the
379 Markdown syntax, which allows for rendering anything from plain text to
380 a very rich formatting, if so desired. A few types of PDF annotations
381 are understood by pdfpc and will be automatically imported and dis‐
382 played. The PDF annotations can be made using many PDF editors and even
383 viewers; when using LaTeX, the pdfpc package (see below) provides a
384 convenient macro. These "native" PDF notes cannot be edited in pdfpc.
385
386 In addition, while in the presentation mode, pressing 'Ctrl + n' will
387 allow you to take or edit notes for the current slide. These notes are
388 stored in the .pdfpc file. The native PDF annotations take precedence
389 over these notes, i.e., if a note exists for a given slide in the
390 .pdfpc file, any PDF annotation on that page will silently override it.
391 While editing a note, the normal keybindings are disabled, e.g., you
392 are not able to change slides. To exit the note editing mode, press the
393 Escape key.
394
395 Although mixing the two types of notes is possible, for a given presen‐
396 tation one will likely want to have either only the "native" notes
397 (produced by the same PDF authoring software used for making the
398 slides), or only the "pdfpc" ones. Note that if the PDF presentation
399 changes, the notes stored in the respective .pdfpc file may get out of
400 sync.
401
402 pdfpc also supports old-style beamer notes (see the -n option), which
403 are typeset on a half of the "virtual" slide twice as large as the real
404 one. Note that due to a bug in beamer, the auto-grouping feature does
405 not work with such presentations.
406
407
408 Overview mode
409 Pressing the Tab key enters the overview mode, where thumbnails of the
410 slides are shown in a grid. You can select a slide to jump to with the
411 mouse or with the arrow keys. You can also define overlays and the end
412 slide (see next sections) in this mode. Press Escape to exit the mode
413 without making an change.
414
415
416 Overlays
417 Many slide preparation systems allow for overlays, i.e. sets of slides
418 that are logically grouped together as a single, changing slide. Exam‐
419 ples include enumerations where bullet items are displayed one after
420 another, or rough "animations", where parts of a picture change from
421 slide to slide. Pdfpc includes facilities for dealing with such over‐
422 lays.
423
424
425 In this description, we will differentiate between slides (i.e. pages
426 in the PDF document) and "user slides", that are the logical slides.
427 The standard forward movement command (page down, enter, etc.) moves
428 through one slide at a time, as expected. This means that every step
429 in the overlay is traversed. The backward movement command works dif‐
430 ferently depending on whether the current and previous slides are part
431 of an overlay:
432
433
434 • If the current slide is part of an overlay we just jump to the previ‐
435 ous slide. That means that we are in the middle of an overlay and
436 can jump forward and backward through the single steps of it
437
438 • If the current slide is not part of an overlay (or if it is the first
439 one), but the previous slides are, we jump to the previous user
440 slide. This means that when going back in the presentation you do
441 not have to go through every step of the overlay, pdfpc just shows
442 the first slide of each overlay. As one typically goes back in a
443 presentation only when looking for a concrete slide, this is more
444 convenient.
445
446
447 The Shift + Page up/down key combinations work on the "user slide" ba‐
448 sis. You can use them to skip the rest of an overlay or to jump to the
449 previous user slide, ignoring the state of the current slide.
450
451
452 When going through an overlay, two additional previews may be activated
453 in the presenter view, just below the main view, showing the next and
454 the previous slide in an overlay.
455
456
457 Pdfpc tries to find these overlays automatically by looking into the
458 page labels in the PDF file. For LaTeX this works correctly at least
459 with the beamer class and also modifying the page numbers manually
460 (compiling with pdflatex). If your preferred slide-producing method
461 does not work correctly with this detection, you can supply this infor‐
462 mation using the 'Ctrl + o' key for each slide that is part of an over‐
463 lay (except the first one!). The page numbering is also adapted. This
464 information is automatically stored.
465
466
467 Hidden slides
468 When preparing presentation from an existing set of slides, it is some‐
469 times helpful to mark certain slides to be skipped during the talk. The
470 'Ctrl + h' combination toggles the "hidden" attribute of the current
471 slide, making it essentially invisible. It is still possible to navi‐
472 gate to a hidden slide either in the Overview mode, using the Goto ac‐
473 tion ('g'), or by hitting 'Shift + n' or 'Shift + p' to switch to the
474 next/previous slide, respectively, ignoring the "hidden" attribute.
475
476
477 End slide
478 Some people like to have some additional, backup slides after the last
479 slide in the actual presentation. Things like bibliographic references
480 or slides referring to specialized questions are typical examples.
481 Pdfpc lets you define which is the last slide in the actual presenta‐
482 tion via the 'Ctrl + e' key. This just changes the progress display in
483 the presenter screen, as to have a better overview of how many slides
484 are left.
485
486
487 Page transitions
488 Pdfpc supports almost all standard animated PDF page transitions:
489 blinds, box, cover, dissolve, fade, glitter (except the diagonal one),
490 push, split, uncover, and wipe, including various alignments, angles,
491 and directions (where applicable). The transitions are enabled only for
492 sequential (either forward or backward) movement; in the later case,
493 the transition is "inverted".
494
495 Advancing slides automatically is also supported.
496
497
498 Movies
499 Pdfpc can play back movies included in the PDF file. Movies may be
500 started and stopped by clicking within their area. For the presenter,
501 a progress bar is drawn along the bottom of the movie. This expands
502 when the mouse hovers over it, allowing one to seek by clicking or
503 dragging within the progress bar. Switching slides automatically stops
504 playback, and movies will be reset after leaving and returning to a
505 slide.
506
507
508 Movies may be included in PDF files as "screen annotations". In LaTeX,
509 such movies may be added to a presentation with the "multimedia" pack‐
510 age. Note that the autoplay option is not yet supported.
511
512
513 pdfpc will also play back movies linked from a hyperlink of type
514 "launch".
515
516
517 See our website ⟨http://pdfpc.github.io/demo/pdfpc-video-example.zip⟩
518 for a detailed explanation with examples.
519
520
521 Pointer mode
522 If needed, it is possible to turn on a pointer which draws a red (by
523 default) dot in the place pointed by mouse cursor on both presenter and
524 presentation screens. It is also possible to increase and decrease the
525 pointer size. Additionally, when the pointer is enabled, it is possi‐
526 ble to highlight some area of the current slide using the drag mouse
527 motion. The area outside the selected region will be dimmed. You can
528 zoom in the selected area by pressing 'z'; press 'Escape' to exit the
529 zoom mode. You can highlight another region while zoomed in, but there
530 will be no further action on pressing 'z'. Drawing is also disabled in
531 this mode.
532
533
534 Spotlight mode
535 Spotlight mode is similar to the pointer mode: a circular area that
536 moves with the mouse and can be adjusted in size, but instead of high‐
537 lighting the spot by a different color, it shades the background.
538
539
540 Drawing mode
541 It is possible to turn on a mode which allows drawing over slides with
542 the mouse cursor or a connected tablet. When drawing mode is enabled,
543 drawings can be made on the presenter screen. A separate drawing will
544 be kept in memory for each slide (based on user slide numbers, so con‐
545 solidating overlay slides). Drawings are presently not saved between
546 sessions.
547
548 In the drawing mode, there are two drawing tools, a pen and an eraser.
549 An indicator in the bottom-left corner of the presenter screen will in‐
550 dicate which is active. When in the pen mode, the color and size of the
551 pen will be indicated by the cursor. The pen size can be increased or
552 decreased using hot keys specified in the key bindings. When the eraser
553 tool is active, the size of the cursor indicates the amount to erase.
554
555 The color of the pen can be changed through key bindings or using the
556 toolbox.
557
558 If you are using a tablet, the pen or eraser tool will be selected
559 based on whether the tablet reports a pen or eraser input device is be‐
560 ing used, overriding the normal selection of the drawing tool. Also for
561 pressure-sensitive input devices, the pressure will affect the line
562 width and the eraser size. Both these features can be disabled in the
563 configuration file, if desired.
564
565
566 Monitor Plug and Play
567 Pdfpc can handle monitor plug and play. E.g. if pdfpc was started be‐
568 fore the presentation screen was attached to the computer, pdfpc can
569 create and show the presentation screen after the second screen was at‐
570 tached. This allows the user to rehearse the slides and switch to a
571 normal presentation without having the full setup at the computer in
572 advance.
573
574
575 pdfpc files
576 Notes, user-defined overlays, and some additional information are
577 stored in a file with extension "pdfpc". When pdfpc is invoked with a
578 PDF file, it automatically checks for and loads the associated .pdfpc
579 file, if it exists. This means that you normally do not have to deal
580 with this kind of files explicitly.
581
582 Beside internal configuration, the following command-line options are
583 saved in the pdfpc file for later usage:
584
585
586 • duration
587
588 • end_time
589
590 • last_minutes
591
592 • notes (position)
593
594 • page_transition
595
596 • start_time
597
598
599 Appearance
600 With GTK3 it is possible to modify the appearance of pdfpc. There are
601 two locations where pdfpc is looking for files. The default location is
602 /usr/share/pixmaps/pdfpc/pdfpc.css. It can be copied to $XDG_CON‐
603 FIG_HOME/pdfpc/pdfpc.css and modified to the user's liking.
604
605 The geometry of various views (the current/next etc slide) in the pre‐
606 senter window can be adjusted at run time in the "Customization" mode,
607 which is activated by pressing Shift+c. In this mode, mouse-draggable
608 handles will appear. Exit the customization with Escape.
609
610
611 Desktop integration
612 Pdfpc provides a DBus interface that appears on the session bus as
613 io.github.pdfpc. Other applications can, in particular, execute any ac‐
614 tion listed by --list-actions. It is also possible to control pdfpc
615 from the command line (and write shell scripts) using the dbus-send(1)
616 utility. For example, to advance to the next slide, run
617
618 dbus-send --type=method_call --session --dest=io.github.pdfpc
619 /io/github/pdfpc io.github.pdfpc.TriggerAction string:next
620
621 For actions that require an argument, use TriggerActionArg, e.g.,
622
623 dbus-send --type=method_call --session --dest=io.github.pdfpc
624 /io/github/pdfpc io.github.pdfpc.TriggerActionArg string:switchMode
625 string:pointer
626
627 In addition to TriggerAction*, the pdfpc DBus interface exposes the
628 GetNotes method, three properties (NumberOfOverlays, NumberOfSlides,
629 Url) and two signals (OverlayChange and SlideChange).
630
631
632 Remote control
633 Pdfpc has a built-in REST server. When enabled (off by default), it al‐
634 lows for controlling presentations over network, e.g., using a mobile
635 device as a smart controller. (This section will be extended with more
636 details when the REST interface sufficiently stabilizes.)
637
638
639
640 LaTeX package
641 A tiny LaTeX package is available for pdfpc at CTAN. It provides a con‐
642 venient way to specify notes and to define certain meta properties of
643 the presentation. For a full documentation, please consult the pdfpc
644 package documentation. You can open it with:
645
646 $ texdoc pdfpc
647
648
650 Bugs can be reported at our issue tracker ⟨https://github.com/pdfpc/
651 pdfpc/issues⟩.
652
653
655 pdfpc was previously developed by David Vilar ⟨https://github.com/
656 davvil/pdfpc⟩, which in turn was a fork of Jakob Westhoff's PDF Presen‐
657 ter Console ⟨https://github.com/jakobwesthoff/Pdf-Presenter-Console⟩.
658
659
661 pdfpcrc(5)
662
663 There are several other programs with similar functionality.
664
665 impressive(1) has nice transition effects.
666
667 hpdfp(1) is the Haskell PDF Presenter ⟨http://michaeldadams.org/
668 projects/haskell-pdf-presenter/⟩ program, which packs an amazing level
669 of functionality into not many lines of Haskell.
670
671 pympress(1) is a little PDF reader written in Python ⟨https://
672 github.com/Cimbali/pympress⟩ which handles dual screens and beamer
673 notes.
674
675 dspdfviewer(1) is a specialized Dual-Screen PDF Viewer for latex-beamer
676 ⟨https://github.com/dannyedel/dspdfviewer⟩ for beamer-produced wide PDF
677 with notes on the right.
678
679 Many PDF viewers have full-screen presentation modes, but without dual-
680 monitor preview or notes or a timer. These include zathura(1),
681 evince(1), and okular(1).
682
683
684
685 PDFPC(1)