1IMPRESSIVE(1) Impressive Documentation IMPRESSIVE(1)
2
3
4
6 Impressive - presentation tool with eye candy
7
9 impressive [OPTIONS...] FILES...
10
12 Impressive is a simple presentation program that displays slideshows of
13 PDF documents, image files or video files. Rendering is done via
14 OpenGL, which allows for some "eye candy" effects.
15
16 A somewhat-modern GPU (graphics processing unit) supporting OpenGL 2.0
17 or OpenGL ES 2.0 and appropriate drivers are required to run Impres‐
18 sive.
19
21 -a <seconds> or --auto <seconds>
22 Automatically advance to the next page after the given number of
23 seconds. Together with the -w option (described below), this can
24 be used to create automatic slideshows.
25 Note that this option will not interrupt video playback: If a
26 video is longer than the interval specified with --auto, it will
27 be played until the end, but Impressive will change to the next
28 page directly after that.
29
30 -A <X>:<Y> or --aspect <X>:<Y>
31 Specifies the display aspect ratio. Normally, Impressive assumes
32 that the pixel aspect ratio is 1:1 (square pixels), regardless
33 of the display resolution that has been set up. If a resolution
34 has been selected that doesn't match the display's aspect ratio,
35 the screen will be distorted. To overcome this, this option may
36 be used to manually specify the display aspect ratio, e.g. "-A
37 16:9". Note that this option has no effect if the MuPDF backend
38 is used for rendering.
39
40 -b or --noback
41 Disables background rendering. By default, Impressive will
42 pre-render all pages in a separate background thread while the
43 presentation runs. If this option is specified, it will instead
44 render all pages immediately on startup. This option has no ef‐
45 fect if caching is disabled (--cache none, see below).
46
47 -bare
48 Disables all functionality that relies on temporary files,
49 specifically video frame extraction using MPlayer (extracting
50 video frames with FFmpeg still works), PDF page title extrac‐
51 tion, PDF hyperlinks, and even PDF rendering for all backends
52 except MuPDF 1.4 or newer on Unix-like operating systems.
53
54 --box-edge <pixels>
55 Sets the border size (in pixels when unzoomed) of the highlight
56 boxes' and spotlight's smooth edges. The default value is 4 pix‐
57 els; it can be set to zero, in which case highlight boxes and
58 the spotlight will have hard edges.
59
60 -B <ms> or --boxfade <ms>
61 Sets the duration (in milliseconds) of the highlight box
62 fade-in/fade-out animation. Default value: 100 ms.
63
64 -c <mode> or --cache <mode>
65 Specifies the page cache mode to use. Valid options are:
66 none
67 Disables page caching altogether, only the current and
68 the following page will be kept in RAM. Jumping between
69 pages will be very slow, because Impressive will need to
70 render the requested pages on the fly. In addition, the
71 overview page won't be complete until every page has been
72 shown at least once.
73 memory
74 Caches all page images in memory. This is the fastest
75 method, but it requires very large amounts of memory
76 (about 3 MiB per page at 1024x768 resolution).
77 compressed or z
78 Caches all page images in memory as well, but in com‐
79 pressed form. This will be a little slower than memory
80 mode, but on pages with uniform backgrounds, this will
81 easily reduce the required amount of RAM by a factor of
82 20.
83 disk
84 Like memory, but uses a temporary file rather than memory
85 for storage. This is the default.
86 persistent
87 Uses a permanent cache file for caching. This file will
88 not be deleted when Impressive quits and will be reused
89 on subsequent invocations. The default name for the cache
90 file is derived like the names for Info Scripts (see be‐
91 low for an explanation), but with a .cache file name ex‐
92 tension instead of .info. This method is a little bit
93 slower than disk mode, but the time span until the over‐
94 view page is fully populated will be significantly de‐
95 creased if Impressive is ran again with the same input
96 files and options.
97 The mode name may be abbreviated at will, down to one character.
98 Thus, --cache persistent, -c persist and even -cp are all syn‐
99 onyms.
100
101 -C <filename>[:<X>,<Y>] or --cursor <filename>[:<X>,<Y>]
102 This option can be used to specify an image that shall be used
103 as a (software) mouse cursor instead of the normal (hardware)
104 one. It can either be a name of an image file (typically a
105 transparent .png) or one of the special values "-" (dash) or
106 "default", both of which select a built-in cursor image. On
107 platforms that do not support a hardware cursor, this default
108 cursor will also be used as a default if this option is not
109 used.
110 If the name of an external file is specified, the position of
111 the hotspot (the pixel inside the cursor where the actual mouse
112 position is located) can be specified as well, for example:
113 --cursor mycursor.png:2,4.
114
115 --clock
116 If this option is enabled, the current time will be shown in‐
117 stead of the elapsed time if time display is activated (with the
118 T key in the default control configuration). Compatible with the
119 -M option.
120
121 --control-help
122 This option will output a short help screen of how the control
123 configuration (keyboard and mouse bindings) work, along with a
124 list of all recognized events and actions and a dump of the cur‐
125 rent bindings (which is the default configuration if no other
126 -e/--bind or -E/--controls options precede this option). After
127 that, Impressive will exit; no presentation will be started.
128
129 -d <time> or --duration <time>
130 Specifies the expected run time of the presentation. The time
131 parameter can be either a number of seconds or a human-readable
132 time like 1:23 (1 minute and 23 seconds), 4:56h (4 hours and 56
133 minutes), 3m45s (3 minutes and 45 seconds), 5m (5 minutes) or
134 1:23:45 (1 hour, 23 minutes and 45 seconds).
135 If an expected duration is specified, Impressive will show a
136 semi-transparent green progress bar at the bottom edge of the
137 screen, indicating how much time has already passed. If the time
138 is up, the bar will occupy the whole edge and fade to yellow (at
139 125% of the expected time) to red (at 150% or more).
140
141 -D <ms> or --mousedelay <ms>
142 Sets the time (in milliseconds) the mouse cursor is shown if it
143 is not moved. There are two special values: 0 (zero) shows the
144 mouse cursor permanently, 1 (one) hides it completely. The de‐
145 fault value is 3000 ms if Impressive is started in fullscreen
146 mode, and 0 (i.e. don't hide) if started in windowed mode.
147
148 --darkness <percentage>
149 Specifies how much the screen shall become darker when using
150 highlight boxes or spotlight mode. The value is specified in
151 percent, with 25 being the default. A value of zero would mean
152 no darkening at all (the screen would just be blurred slightly,
153 and desaturated if the graphics hardware supports it), and a
154 value of 100 would make everything but the highlighted parts of
155 the screen black.
156
157 -e <bindings> or --bind <bindings>
158 Configures keyboard or mouse bindings. For the syntax of the ar‐
159 gument, refer to the Control Configuration section of the man‐
160 ual.
161
162 -E <filename> or --controls <filename>
163 Loads a configuration file for keyboard and mouse bindings. For
164 the syntax of these files, refer to the Control Configuration
165 section of the manual.
166
167 --evtest
168 If this option is specified, Impressive will not start a normal
169 presentation, but instead enter the so-called "Event Test Mode"
170 after the display has been initialized. In this mode, Impressive
171 will simply capture all keyboard and mouse events and display
172 the name of the last event on the screen. In addition, events
173 will be logged to standard output. This mode helps with deter‐
174 mining the event names for each key when creating a custom con‐
175 trol configuration (see the Control Configuration section).
176
177 -f
178 Sets the window/fullscreen mode Impressive shall start up with.
179 This option can be specified multiple times; each times it is
180 found, the next of the three options is selected, in the follow‐
181 ing order: (1.)True fullscreen mode, including setting the video
182 mode. This is the default mode. (2.)Windowed mode, where Impres‐
183 sive runs in a standard window. (3.)"Fake-fullscreen" mode,
184 where fullscreen is emulated by using a window without border
185 that fills the whole screen. Setting the display resolution is
186 not possible in this mode. Each of these modes has a correspond‐
187 ing long option that enables it directly (--fullscreen, --win‐
188 dowed and --fake-fullscreen).
189
190 --fullscreen
191 Starts Impressive in fullscreen mode (the default). See the dis‐
192 cussion of the -f option for details.
193
194 --fake-fullscreen
195 Starts Impressive in "fake fullscreen" mode. See the discussion
196 of the -f option for details.
197
198 -F <file> or --font <file>
199 Impressive uses some kind of text OSD to overlay the current
200 page number and title (if available) on the overview page. This
201 option can be used to specify a TrueType font file (.ttf) to use
202 for the OSD. If the path specified doesn't directly point to a
203 useable font file, Impressive will try to search the system font
204 directories. It assumes that all fonts are stored below /usr/
205 share/fonts, /usr/local/share/fonts or /usr/X11R6/lib/X11/fonts/
206 TTF for this purpose (the latter one is useful for Mac OS X sys‐
207 tems specifically). If this option is not specified, any of De‐
208 jaVuSans.ttf or Vera.ttf (the typical file name of Bitstream
209 Vera Sans) will be used as a default.
210
211 -g <width>x<height>[+<posX>+<posY>] or --geometry
212 <width>x<height>[+<posX>+<posY>]
213 Sets the screen size or resolution Impressive shall use (in pix‐
214 els). If xrandr is installed, the default screen size for
215 fullscreen mode is the current screen resolution; on other plat‐
216 forms, Impressive uses the highest resolution available to the
217 graphics system. If a standard resolution cannot be determined,
218 the default is 1024x768 pixels. This is also the default for
219 windowed mode.
220 Furthermore, if the additional parameters posX and posY are
221 present, they specify the position of the upper-left corner of
222 the window (relative to the upper-left corner of the desktop),
223 in pixels, for windowed and fake-fullscreen mode. The values are
224 ignored in "true" fullscreen mode.
225
226 -G <gamma>[:<blacklevel>] or --gamma <gamma>[:<blacklevel>]
227 Sets up the startup gamma and (optional) black level value. The
228 black level is the original image's intensity level (0...254)
229 that is to be mapped to black in Impressive's output. Note that
230 gamma and black level adjustments may be unavailable or con‐
231 strained on some systems.
232
233 -h or --help
234 If this option is specified, Impressive writes a short command
235 line help screen to standard output and does not start a presen‐
236 tation.
237
238 -H or --half-screen
239 This option makes Impressive show the overview page and OSD ele‐
240 ments on the right half of the screen only. The overview page
241 will only show the left half of the slides as previews. The
242 box-zoom boxes will also be shown on the left half. Using a
243 multi-monitor setup with a wide virtual screen and specially
244 crafted slides (e.g. those that can be generated with LaTeX's
245 beamer class), this makes it possible to have presenter's notes
246 on the second screen.
247 Note that transitions and animations are still operating on the
248 whole screen, making some of them (like PagePeel) look ugly. Im‐
249 pressive also disables the overview zoom animation in
250 half-screen mode; it can be re-enabled by explicitly setting it
251 to another value with a later command line option (--zoomtime).
252 Another limitation is that the allocation of the screen halves
253 (slides left, overview right) is fixed.
254
255 -i <page> or --initialpage <page>
256 Specifies the page number to start with. The default value is 1
257 (start with the first page). If another value is specified, the
258 page shown by Impressive right after initialization is not the
259 first one of the PDF or image list. Additionally, pre-rendering
260 (if enabled) will also start at the specified page.
261
262 -I <filename> or --script <filename>
263 Overrides automatic derivation of the info script filename and
264 specifies a script file directly.
265
266 --invert
267 This option makes Impressive invert the colors of each page,
268 turning black to white and vice-versa. Note that it is a full
269 RGB inversion, so it will, for example, turn dark green to light
270 purple (and vice-versa) too.
271
272 -k or --auto-progress
273 This option makes Impressive show a progress bar, visualizing
274 the timeout on pages that have one (either specified as a page
275 property or using the --auto command-line option). Nothing is
276 done on pages that don't have a timeout.
277 If the --duration or --page-progress bars are enabled too, the
278 --auto-progress bar is shown on the top of the screen; other‐
279 wise, it's shown on the bottom.
280
281 -l or --listtrans
282 If this option is specified, Impressive writes a list of all
283 available transition classes to standard output and does not
284 start a presentation. Transitions that are enabled by default
285 are marked with a star (*) left of the class name.
286
287 -L <spec> or --layout <spec>
288 Specifies the OSD layout. Read below for an explanation of this
289 option.
290
291 --maxzoom <factor>
292 The maximum zoom factor up to which Impressive shall attempt to
293 render a high-resolution image of the page when zoomed in. This
294 can be any real number larger than or equal to 1.0; the default
295 is 5.0. A setting of 1.0 causes Impressive to never render a
296 high-resolution image for zooming; in this case, the zoom and
297 box-zoom modes will upscale the image, but not enhance any de‐
298 tails.
299 Note that regardless of this setting, Impressive always checks
300 the graphics hardware capabilities (in particular, the maximum
301 supported texture size) and may reduce the effective value of
302 --maxzoom if the hardware supports less than what has been spec‐
303 ified.
304
305 --min-box-size <pixels>
306 This option sets the minimum size of a highlight box, in pixels.
307 Boxes that are not this many pixels wide and high are rejected
308 in order to prevent accidental creation of highlight boxes. The
309 default value for this is 30 pixels.
310
311 -M or --minutes
312 If this option is set, Impressive will show the on-screen timer
313 (activated with the T key) only with 1 minute resolution. By de‐
314 fault, it will show a timer with 1 second resolution.
315
316 --noblur
317 By default, Impressive uses a fragment shader to blur and desat‐
318 urate the image when in highlight box or spotlight mode. This is
319 usually the faster and nicer-looking method; however, some very
320 old hardware implementations can't deal with that shader and
321 fall back to an unusably slow software implementation. Impres‐
322 sive tries to detect scenarios where this would happen and auto‐
323 matically falls back to a different implementation.
324 There might be situations where this mechanism fails and Impres‐
325 sive tries to use the non-functional shader anyway. In these
326 cases, the --noblur option can be used to enforce the fallback
327 implementation.
328
329 -N or --nocursor
330 This option disables any display of a mouse cursor, i.e. neither
331 the system ("hardware") not bitmap ("software") cursor is shown
332 at any time. It it equivalent to setting --mousedelay to 1. This
333 is mainly useful for automated presentations, where no mouse in‐
334 teraction is needed.
335
336 --noclicks
337 If this option is enabled, switching to the previous or next
338 page with the left and right mouse buttons is deactivated. The
339 keyboard shortcuts are unaffected from this.
340 Note that this option only works as intended when the default
341 controls are used. If the -e/--bind or -E/--controls options
342 have been used, --noclicks might not have the intended effect.
343
344 --nologo
345 This option disables the Impressive logo and version number dis‐
346 play. Instead, the loading screen will be just black or, if
347 background rendering is disabled, only the progress bar will be
348 visible.
349
350 --nooverview
351 This option disables the overview page. Overview thumbnails are
352 not created, and the Tab that normally enters overview mode is
353 ignored. (More precisely, the overview-enter action is ignored.)
354
355 --noquit
356 This option disables the keyboard shortcuts (Q and Esc) that
357 could normally quit Impressive with a single keypress. If it is
358 used, the only way to exit the program is the key combination
359 Alt+F4, and accidental quitting is no longer possible.
360 Note that this option only works properly if the default con‐
361 trols are used. If the -e/--bind or -E/--controls options have
362 been used, --noquit might not have the intended effect.
363
364 -o <directory> or --output <directory>
365 Do not display the presentation, but render it into a series of
366 PNG image files inside the specified directory. The images will
367 be generated in the current resolution as specified by the -g
368 option. This option is useful if the presentation is to be given
369 on on a foreign PC with an old, broken or otherwise problematic
370 MuPDF/Xpdf/GhostScript installation: By generating images of the
371 PDF pages, is is made sure that no rendering bugs will happen on
372 the target system.
373
374 -O <mode> or --autooverview <mode>
375 Enables or disables automatic derivation of whether a page shall
376 or shall not be shown on the overview page. This feature is
377 based on the fact that some LaTeX presentation packages tag all
378 pages with a title (that can be read by Impressive with the help
379 of pdftk), except those that contain multiple reveal steps.
380 The following modes are available:
381 off
382 Disables automatic overview mode. All pages will be shown
383 on the overview page by default. This is also the default
384 setting.
385 first
386 All pages with a PDF title will be shown on the overview
387 page. The purpose is to show the initial state of
388 multi-step slides on the overview page.
389 last
390 All pages before a page with a PDF title will be shown on
391 the overview page. The purpose is to show the final state
392 of multi-step slides on the overview page.
393 Again, the mode may be abbreviated arbitrarily, down to one
394 character, just like with the -c option above..
395
396 --overtime <ms>
397 Sets the duration (in milliseconds) of the overview page
398 zoom-in/zoom-out effects, without affecting the zoom or box-zoom
399 animation time. Default value: 250 ms.
400
401 -p <start>-<end> or --pages <start>-<end>
402 Using this option, the range of the page displayed can be nar‐
403 rowed down. The presentation will start at the first page in the
404 range. All pages outside of the range will not be shown on the
405 overview page and will not be cached. However, they can be en‐
406 tered manually when cycling through the presentation. Due to the
407 fact that these pages are uncached, preparation of the display
408 will take considerably longer.
409
410 -P <path> or --gspath <path>
411 This option can be used to override the Xpdf / GhostScript path
412 autodetection. The full path to the executable of either Ghost‐
413 Script (gs or gs.exe) or Xpdf's pdftoppm utility must be speci‐
414 fied.
415
416 -q or --page-progress
417 If this option is enabled, Impressive will show a light-blue
418 semi-transparent progress bar at the bottom edge of the screen
419 that shows the position inside the presentation, i.e. the rela‐
420 tion between the current page number and the total number of
421 pages.
422 If the -d/--duration progress bar is enabled too, the
423 --page-progress bar will be stacked above that.
424
425 --progress-last <number>
426 This option sets the page number at which the slide the
427 --page-progress progress bar should end. This can be useful to
428 ignore backup slides.
429 This option does not have any effect if -q/--page-progress is
430 not used.
431
432 -Q or --autoquit
433 If this option is specified, Impressive quits automatically when
434 trying to navigate to the page after the last page or the page
435 before the first page.
436 This option does not have any effect if --wrap is used.
437
438 -r <n> or --rotate <n>
439 Display all pages rotated by nx90 degrees clockwise. Try -r 1 or
440 -r 3 if there are problems with PDFs generated by LaTeX on some
441 Xpdf or GhostScript versions.
442
443 -s or --scale (image input only)
444 If a directory with image files is used as input, Impressive
445 will scale down images that are too big for the screen. But by
446 default, it will not scale up smaller images to fit the screen;
447 it will leave a black border instead. This option overrides this
448 setting and enables upscaling of smaller images.
449
450 -s or --supersample (PDF input only)
451 This switch enables antialiasing by 4x supersampling instead of
452 the normal multisampling method used by Xpdf or GhostScript.
453 While this usually degrades both visual quality and performance,
454 it may be necessary for circumventing white strips or moire-like
455 patterns in gradients.
456
457 -S <pixels> or --fontsize <pixels>
458 This option sets the size, in pixels, of the OSD font. The de‐
459 fault value is 14.
460
461 --spot-radius <pixels>
462 This option sets the initial radius of the spotlight, in pixels.
463 The default value is 64.
464
465 --time-display
466 This option enables display of the elapsed presentation time, as
467 if the T key has been pressed immediately after startup. This
468 implies time tracking mode (--tracking option).
469
470 -t <trans1[,trans2...]> or --transition <trans1[,trans2...]>
471 Using this switch, the set of transitions Impressive will ran‐
472 domly draw at page changes can be specified. If only one transi‐
473 tion class is specified, this class will be used for all pages
474 that do not have another transition explicitly assigned in their
475 page properties. Multiple transitions have to be separated by
476 commas; they will be used in random order. The -l option can be
477 used to get a list of available transitions.
478
479 -T <ms> or --transtime <ms>
480 Sets the duration (in milliseconds) of page transitions. 0
481 (zero) disables transitions altogether. Default value: 1000 ms.
482
483 --tracking
484 This option enables time tracking mode. In this mode, a report
485 of all pages visited with their display duration, enter and
486 leave times will be written to standard output. This can be very
487 useful when preparing presentations.
488
489 -u <seconds> or --poll <seconds>
490 If this option is specified, the source file or directory will
491 be checked for changes regularly. If a change in the input PDF
492 file or any of the image files in the input image directory is
493 detected, the page cache will be flushed and the current page as
494 well as the info script will be reloaded. The current page's
495 transition will be shown between the old and the new version of
496 the page.
497 The new PDF file must have at least as much pages as the old
498 one; also, it should have the same aspect ratio. If the input is
499 a directory, image files must not have disappeared.
500
501 -v or --verbose
502 This option makes Impressive more verbose, i.e. it will print
503 slightly more informational messages than usual.
504
505 -V <pixels> or --overscan <pixels>
506 PDF files often contain tiny amounts of white borders around the
507 edges which look bad in screen presentations. To eliminate this
508 problem, Impressive uses "overscan": PDF files will not be ren‐
509 dered to fit the screen size exactly, but they will be rendered
510 a bit larger so that the (possibly broken) borders can be
511 cropped off. The amount of overscan, in screen pixels, can be
512 set with this option. The default value is 3 pixels, which
513 should remove borders in most presentations at most common
514 screen resolutions without cropping the pages too much.
515
516 -w or --wrap
517 If this option is set, Impressive will "wrap" over to the first
518 page after the last page. In other words, advancing to the next
519 page at the end of the presentation will restart the whole pre‐
520 sentation.
521
522 -W or --nowheel
523 By default, it is possible to change pages using the mouse
524 wheel. This option disables this behavior, which can be useful
525 to prevent spurious page changes if the mouse wheel is likely to
526 be moved by accident. In addition, it makes it possible to enter
527 zoom mode with the mouse wheel.
528 Note that this option only works properly if the default con‐
529 trols are used. If the -e/--bind or -E/--controls options have
530 been used, --nowheel might not have the intended effect.
531
532 --windowed
533 Starts Impressive in windowed mode. See the discussion of the -f
534 option for details.
535
536 -x or --fade
537 This option enables a smooth fade-in effect at the start of the
538 presentation and a fade-out effect just before Impressive quits.
539
540 -X or --shuffle
541 If this option is enabled, the input files will be shuffled into
542 random order before starting the presentation. The individual
543 pages of PDF input files will stay in their original order,
544 though, so this option is mainly useful for image presentations.
545
546 -y or --auto-auto
547 This option can be used together with --duration to have Impres‐
548 sive compute a page timeout (as with the --auto option) automat‐
549 ically. This results in a presentation that runs automatically,
550 displaying each slide for the same time, so that the desired to‐
551 tal duration will be reached (almost) exactly. One exception is
552 the runtime of videos, which is not taken into account.
553
554 --zbox-edge <pixels>
555 Sets the border size (in pixels when unzoomed) of the box-zoom
556 boxes' smooth edges. The default value is 1 pixel; it can be set
557 to zero, in which case the box-zoom area will have a hard edge.
558
559 -z <factor> or --zoom <factor>
560 Sets the scaling factor that is used in zoom mode. It can be any
561 real value above 1.0; the default value is 2.0. Note that it
562 might not be possible to get high-quality zooming for large zoom
563 factors due to hardware restrictions. Furthermore, please be
564 aware that after leaving zoom mode, the image quality of the
565 normal page display may be slightly degraded until another page
566 is displayed if a zoom factor other than 2.0 is used.
567
568 --zoomdarkness <percentage>
569 Specifies how much the non-selected parts of the screen shall
570 become darker in box-zoom mode. The value is specified in per‐
571 cent, with 90 being the default. A value of zero would mean no
572 darkening at all (parts outside of the zoom box would still be
573 perfectly visible), and a value of 100 would make everything but
574 the selected region black.
575
576 -Z <ms> or --zoomtime <ms>
577 Sets the duration (in milliseconds) of the zoom, box-zoom and
578 overview page zoom-in/zoom-out effects, all at once. Default
579 value: 250 ms.
580 If separate animation time settings for overview zoom and zoom/
581 box-zoom are desired, the -Z/--zoomtime option must be specified
582 before the --overtime option.
583
584 --cachefile <filename>
585 Activates persistent cache mode and specifies the name of the
586 cache file to use.
587
589 Following the options, the input file name(s) must be specified. Recog‐
590 nized file types are PDF, image files (JPEG, PNG, TIFF, BMP, PGM/PPM)
591 and video files (AVI, MOV/MP4, MKV/WebM, OGV, MPEG, M2TS, FLV). If the
592 name of a directory is put on the command line, all recognized image
593 files (no PDF files!) in this directory will be played in alphanumeric
594 order (case-insensitive).
595
596 In addition, Impressive can use a text file containing a list of files
597 or directories to show: This text file must contain at most one file
598 name per line; every character after a hash sign (#) is treated as a
599 comment and will be ignored. If such a comment is put on the same line
600 as an image file name, it will be used as the page's title. List file
601 names must be prefixed with an at sign (@) on the command line, e.g.
602 impressive @my_list_file.
603
604 Impressive will also expand wild-card characters (* and ?) if this
605 isn't already done by the shell, but apart from that, it will not re‐
606 order the arguments. Thus, it will show the documents in the order
607 specified at the command line.
608
609 If video files are specified on the command line, Impressive generates
610 presentation pages for them just like it does for image files. If FFm‐
611 peg or MPlayer are installed, the page will be shown as a screenshot of
612 the first video frame. When entering such a page, the video will be
613 played back if a suitable player (MPlayer, or omxplayer on Raspberry
614 Pi) is installed.
615
616 LAYOUT OPTIONS
617 The OSD layout option (-L/--layout) accepts a string with comma-sepa‐
618 rated key=value pairs. The following keywords are recognized:
619 alpha
620 The opacity of the OSD text, either as a floating-point value
621 between 0 and 1 or a percentage between 2 and 100.
622 margin
623 The distance (in pixels) of the OSD text to the screen borders.
624 time
625 The position of the timer.
626 title
627 The position of the page title in overview mode.
628 page
629 The position of the page number in overview mode.
630 status
631 The position of the status line.
632 The position specifications are composed by one character that indi‐
633 cates whether the text shall be displayed at the top (T) or bottom (B)
634 edge of the screen and one character that indicates whether it shall
635 appear on the left (L), on the right (R) or centered (C).
636
637 For example, the default OSD layout equals the following option string:
638 -L margin=16,alpha=1,time=TR,title=BL,page=BR,status=TL
639
640 EXAMPLES
641 The following examples illustrate some typical command lines. They as‐
642 sume that Impressive can be run by simply typing "impressive" on the
643 command line. Depending on how Impressive is installed, this has to be
644 substituted with the actual way to run Impressive (e.g. "python ~/im‐
645 pressive/impressive_dev.py" for a fresh SVN checkout). Furthermore, the
646 file "demo.pdf" is used as the document to show here; obviously this
647 has to be replaced by the path to the actual PDF file too.
648
649 In the simplest case, Impressive is run directly with the name of the
650 file to show and no further parameters. This will start a full-screen
651 presentation with all settings at their defaults:
652 impressive demo.pdf
653
654 To just quickly check a slide deck, it might make sense to run Impres‐
655 sive in a small window and not full-screen. This can be done with some‐
656 thing like
657 impressive -f -g 800x600 demo.pdf
658
659 Impressive can also be used in digital signage scenarios, like displays
660 in shop windows with a permanent slideshow. This can be achieved by
661 having Impressive advance to the next page automatically after a speci‐
662 fied time (e.g. 10 seconds) and re-start the presentation from the
663 start after the last slide:
664 impressive -a 10 -w demo.pdf
665
667 On startup, Impressive will display a black screen with the program
668 logo at the center. If caching is enabled, but background rendering is
669 disabled, all pages of the presentation will then be rendered once. A
670 bar in the lower half of the screen displays the progress of this oper‐
671 ation. Any key or mouse click (except for those that quit Impressive,
672 typically Q and Esc) skips this process, with the effect that Impres‐
673 sive will render the remaining pages on demand. Please note that the
674 overview page will not be complete until every page has been rendered
675 at least once. In other words, if the precaching process was skipped,
676 placeholders will be displayed for all pages that have not been ren‐
677 dered yet. By default, Impressive will build up the cache in the back‐
678 ground while the presentation runs. Thus, the progress bar will not ap‐
679 pear and the preparation will only take the amount of time required to
680 render the first two pages of the presentation. After this initializa‐
681 tion process, Impressive will switch to the first page directly and
682 without any transition.
683
685 The keyboard and mouse controls used by Impressive are configurable
686 (with very few exceptions). The default controls are as follows:
687
688 Esc key
689 Return from the currently active special mode (zoom, box-zoom,
690 overview, spotlight, highlight boxes); if no such special mode
691 is active, quit Impressive altogether.
692
693 Q key or Alt+F4
694 Quit Impressive immediately.
695
696 LMB (left mouse button), mouse wheel down, Page Down key, Cursor Down
697 key, Cursor Right key or Spacebar
698 Go to the next page (using a transition).
699
700 RMB (right mouse button), mouse wheel up, Page Up key, Cursor Up key,
701 Cursor Left key or Backspace key
702 Go to the previous page (using a transition).
703
704 Home key / End key
705 Go directly to the first or last page of the presentation.
706
707 Ctrl key (modifier)
708 If one of the page navigation keys (Page Up/Down, Cursor keys,
709 Space, Backspace, Home, End) is pressed while the Ctrl key is
710 held down, the destination page will be entered immediately,
711 without a transition.
712
713 L key
714 Return to the last (most recently displayed) page. This can be
715 used to toggle back and forth between two pages.
716
717 F key
718 Toggle fullscreen mode.
719
720 Tab key
721 Zoom back to the overview page. While in overview mode, a page
722 can be selected with the mouse and activated with the left mouse
723 button. The right or middle mouse button or the Tab key leave
724 overview mode without changing the current page.
725
726 MMB (middle mouse button)
727 In normal display mode, this acts like the Tab key: it zooms
728 back to the overview page. If the page is zoomed in, it will re‐
729 turn to normal mode.
730
731 LMB over a PDF hyperlink
732 Jump to the page referenced by the hyperlink. Two types of hy‐
733 perlinks are supported: Links that point to some other page of
734 the same document, and URL hyperlinks like Web links and e-mail
735 addresses. This feature is only available if pdftk is installed.
736 Furthermore, xdg-open from the freedesktop.org Portland project
737 is required for URL links to work. Please note that the hyper‐
738 link feature will not work properly when pages are rotated.
739
740 click&drag with LMB (left mouse button)
741 Create a new highlight box. While at least one highlight box is
742 defined on the current page, the page itself will be shown in a
743 darker, blurry and (if supported by the graphics hardware) de‐
744 saturated rendition. Only the highlight boxes will be displayed
745 in their original lightness, sharpness and color saturation.
746 If a page with highlight boxes is left, the boxes will be saved
747 and restored the next time this page is shown again.
748
749 click&drag with Ctrl+LMB (left mouse button)
750 Draw a box to zoom into. This enters so-called "box-zoom" mode,
751 where the selected region is zoomed into full view and anything
752 else is displayed in much darker colors (but not blurred like in
753 highlight box mode). The page contents will be re-rendered in a
754 higher resolution, if possible (limited to what has been config‐
755 ured with the --maxzoom command-line option, and the graphics
756 hardware's maximum supported texture size). To leave this mode
757 again, use RMB, MMB or Esc.
758 Note that box-zoom mode is mutually exclusive with highlight
759 boxes and the spotlight; if any of those is currently active,
760 it's not possible to draw a zoom box.
761
762 RMB (right mouse button) over a highlight box
763 If the right mouse button is clicked while the mouse cursor is
764 above a highlight box, the box will be removed. If the last box
765 on a page is removed, the page will turn bright and sharp again.
766
767 A key
768 Toggle automatic slideshow mode.
769 If an automatic presentation has been started with the -a/--auto
770 option, it is temporarily disabled until this key is pressed
771 again. It is not automatically re-enabled after changing the
772 page. If the -a/--auto has not been used, an automatic presenta‐
773 tion with a timeout of 30 seconds is started when this key is
774 pressed for the first time.
775 Note that if a page has a timeout PageProp, the specified time‐
776 out is always in effect when the page is entered, even if the
777 automatic slideshow is otherwise disabled.
778
779 S key
780 Save the info script associated with the current presentation.
781 The main purpose for this is to permanently save highlight boxes
782 or keyboard shortcuts, so they will be restored the next time
783 this presentation is started.
784
785 T key
786 Activate or deactivate the time display at the upper-right cor‐
787 ner of the screen. If the timer is activated while the very
788 first page of the presentation is shown, it activates time
789 tracking mode, just as if the command-line option --tracking had
790 been specified.
791
792 R key
793 Reset the presentation timer.
794
795 C key
796 Removes ("clears") all highlight boxes from the current page.
797
798 Return key or Enter key
799 Toggle spotlight mode. In this mode, the page is darkened in the
800 same way as if highlight boxes are present, but instead of (or
801 in addition to) the boxes, a circular "spotlight" will be shown
802 around the mouse cursor position, following every motion of the
803 mouse cursor.
804
805 + / - key, 9 / 0 key or mouse wheel in spotlight mode
806 Adjust the spotlight radius.
807
808 Ctrl+9 or Ctrl+0 keys
809 Resets the spotlight radius to the default value, i.e. the value
810 that has been set up by the radius page property, the --spot-ra‐
811 dius command-line option or Impressive's built-in default.
812
813 7 / 8 key
814 Adjust the amount of darkening applied to the page in spotlight,
815 highlight box or box-zoom mode.
816
817 Ctrl+7 or Ctrl+8 keys
818 Resets the amount of darkening in spotlight, highlight box and
819 box-zoom mode to the default values, i.e. the value that have
820 been set up by the darkness and zoomdarkness page properties,
821 the --darkness and --zoomdarkness command-line options or Im‐
822 pressive's built-in defaults.
823
824 Z key
825 Toggle zoom mode. When this key is first pressed, the current
826 page will zoom in. The page will be displayed at double size,
827 but in its original resolution (i.e. it will be blurry). Impres‐
828 sive will re-render the page at the new resolution if the graph‐
829 ics hardware supports it. During this time, Impressive will not
830 accept any input, so don't even think about clicking the mouse
831 or pressing keys before the image gets crisp again.
832 In zoom mode, all other functions will work as normal. Any oper‐
833 ations that leave the current page, such as flipping the page or
834 entering the overview screen, will leave zoom mode, too.
835
836 [ / ] key
837 Adjust the gamma value of the display (might not be supported on
838 every hardware).
839
840 { / } key
841 Adjust the black level of the display (might not be supported on
842 every hardware).
843
844 \ key
845 Revert gamma and black level back to normal.
846
847 O key
848 This will toggle the "visible on overview page" flag of the cur‐
849 rent page. The result will not be visible immediately, but it
850 can be saved to the info script (using the S key) and will be in
851 effect the next time the presentation is started.
852
853 I key
854 This will toggle the skip flag of the current page. A page
855 marked as skipped will not be reachable with the normal forward/
856 backward navigation keys.
857
858 B / W key or . (dot) / , (comma) key
859 Fade to black or white, respectively. This feature can be used
860 if a whiteboard or blackboard in front of the projection area is
861 to be used during the presentation. Using these two keys, the
862 screen will fade into a solid color. On any keypress or mouse
863 click, it will fade back to normal. These keys are not available
864 in overview mode.
865
866 click&drag with MMB (middle mouse button) or RMB (right mouse button)
867 in zoom mode
868 Move the visible part of the page in zoom mode.
869
870 mouse wheel up / down in zoom mode, U key
871 Zoom a bit in or out. When zoomed out fully, zoom mode is left;
872 note that in the default configuration, this means that when
873 trying to zoom out even more using the wheel, the page is left
874 instead. This is different if the -W/--nowheel option is used,
875 where page navigation using the mouse wheel is disabled, and the
876 wheel is always used for zooming. In this mode, the wheel can
877 also be used to enter zoom mode in the first place.
878 Note that changing the zoom level on the fly with the wheel does
879 not make Impressive automatically re-render the page at a higher
880 resolution to increase the level of detail. To do this, the U
881 key needs to be pressed manually when the desired zoom level has
882 been set up.
883
884 Cursor keys in overview mode
885 Navigate through pages.
886
887 Alt+Tab keys
888 If Impressive is in fullscreen mode, the window will be mini‐
889 mized so that other applications can be used.
890
891 Any alphanumeric (A-z, 0-9) or function key (F1-F12) that is not bound
892 to a specific action mentioned above or configured by the user (see be‐
893 low) can be used to assign shortcuts to pages that require quick ac‐
894 cess. If one of the keys is pressed together with Shift, the currently
895 displayed page is associated with this key. To recall the page later,
896 it is sufficient to press the shortcut key again. Shortcuts can be
897 stored permanently with the S key.
898
900 As already mentioned in the previous chapter, the keyboard and mouse
901 bindings of Impressive can be widely configured. The only exceptions
902 are the Alt+F4 and Alt+Tab key combinations that will always quit or
903 minimize Impressive, respectively. For everything else, there is a ver‐
904 satile configuration system in place; the controls described in the
905 previous section are merely the defaults.
906
907 Impressive's control system works by associating events with actions.
908 An event is a key on the keyboard, a mouse button or a mouse wheel
909 movement. An action is something that is performed by Impressive as a
910 result of an event, like going to the next page, switching to overview
911 mode or quitting the program. The association of an event to an an ac‐
912 tion is called a binding. Multiple events can be bound to the same ac‐
913 tion (like the page down and space keys in the default setting, both of
914 which go to the next page); furthermore, multiple actions can be bound
915 to the same event. In fact, bindings do not associate events with sin‐
916 gle actions at all, but with chains of actions. Only the first action
917 in the chain that matches (i.e. makes sense in) the current context
918 will be executed if the event fires; all other actions will be ignored.
919 If no action matches, no action will be performed and the event will be
920 ignored.
921
922 One example of such an action chain is the default binding for the left
923 mouse button, which draws a highlight box if the mouse cursor moved, or
924 visits a hyperlink if the mouse cursor hovers over one, or goes to the
925 next page if none of the other conditions are met.
926
927 Both events and actions have mnemonic names that are used in the com‐
928 mand-line options and configuration files used for setting up bindings.
929 Event and actions names are generally case-insensitive, though the
930 canonical notation is lowercase.
931 If an event or action specified on the command line or in a configura‐
932 tion file is not recognized by Impressive, an error message will be
933 written to the console and the offending event or action will be ig‐
934 nored. Errors in control configuration are thus always non-fatal.
935
936 SUPPORTED EVENTS
937 Keyboard events are generally named after the keys they refer to. Con‐
938 sequently, the events a to z and 0 to 9 mean the respective letter and
939 number keys on the main keyboard, f1 to f12 are the function keys and
940 kp0 to kp9 are the number keys on the numerical keypad. All of these
941 are raw scancodes, which has two implications: First, the key names are
942 not internationalized and refer to the US keyboard layout (e.g. the Z
943 key on a German or French keyboard will actually react to the event
944 name y or w); second, modifiers will be ignored as well (e.g. the nu‐
945 merical keypad will always generate the kpX scancodes, even if Num Lock
946 is off).
947
948 The mnemonic names for the other keyboard events are as follows (in al‐
949 phabetic order): ampersand, asterisk, at, backquote, backslash,
950 backspace, break, capslock, caret, clear, comma, down, end, escape,
951 euro, exclaim, greater, hash, help, home, insert, kp_divide, kp_enter,
952 kp_equals, kp_minus, kp_multiply, kp_plus, lalt, last, lctrl, left,
953 leftbracket, leftparen, less, lmeta, lshift, lsuper, menu, minus, mode,
954 numlock, pagedown, pageup, pause, period, plus, power, print, question,
955 quote, quotedbl, ralt, rctrl, return, right, rightbracket, rightparen,
956 rmeta, rshift, rsuper, scrollock, semicolon, slash, space, sysreq, tab,
957 underscore, up. The events prefixed with kp_ refer to keys on the nu‐
958 merical keypad. Other than that, the names should be reasonably de‐
959 scriptive, so they will not be described futher at this point. Also
960 note that not all keyboards and platforms support the full range of
961 keys defined in this list.
962
963 Mouse event names are mapped as follows:
964
965 lmb
966 the left mouse button
967
968 mmb
969 the middle mouse button
970
971 rmb
972 the right mouse button
973
974 wheelup
975 scrolling the mouse wheel upwards
976
977 wheeldown
978 scrolling the mouse wheel downwards
979
980 btnX (i.e. btn6, btn7, ...)
981 additional mouse buttons, the mapping of which is device-spe‐
982 cific; use --evtest to see which button is which
983
984 The event names can be prefixed with the three modifiers ctrl+, alt+
985 and shift+ to make the event valid only if the specified set of modi‐
986 fiers is pressed as well. This works for both keyboard and mouse
987 events. Multiple modifiers can be combined, but the order must match
988 the one mentioned in this paragraph. For example, ctrl+shift+x is a
989 valid event name, while shift+ctrl+x is not.
990
991 A simple way to determine the name associated with an event is using
992 Impressive's "Event Test Mode" by invoking impressive --evtest. In this
993 mode, the name of each incoming event will be displayed on the screen
994 (and logged to standard output), which makes it possible to determine
995 event names by experimentation.
996
997 SUPPORTED ACTIONS
998 The following list describes all actions supported by Impressive, to‐
999 gether with the conditions under which they will match. Note that most
1000 actions will not match in overview mode and during video playback, un‐
1001 less mentioned otherwise in the description.
1002
1003 auto-start
1004 (Re-)enable automatic presentation mode. If the current page has
1005 no timeout PageProp and no -a/--auto option has been specified,
1006 an automatic presentation is started with a 30-second page in‐
1007 terval.
1008
1009 auto-stop
1010 Disable automatic presentation mode. If the current page has a
1011 timeout PageProp or an -a/--auto option has been specified, the
1012 timeout for the current page is stopped.
1013 The automatic presentation stays disabled after changing pages,
1014 unless a timeout PageProp is specified for the target page,
1015 which will take precedence over the otherwise disabled automatic
1016 presentation mode.
1017
1018 auto-toggle
1019 Disables or (re-)enables automatic presentations, depending on
1020 the current state.
1021
1022 box-add
1023 Draw a highlight box if the mouse has been moved since the but‐
1024 ton has been pressed down. This action must only be bound to a
1025 mouse button event, otherwise it will not function properly.
1026
1027 box-clear
1028 Removes all boxes from the current page.
1029
1030 box-remove
1031 Removes the highlight box under the mouse cursor, if there is
1032 any.
1033
1034 box-zoom
1035 Define a region to zoom into by drawing a rectangle. This action
1036 must only be bound to a mouse button event, otherwise it will
1037 not function properly.
1038
1039 box-zoom-exit
1040 If in box-zoom (but not normal zoom) mode, leave box-zoom mode.
1041
1042 fade-less, fade-more
1043 Decrease or increase the amount of darkening applied to the
1044 background in spotlight or highlight box mode.
1045
1046 fade-reset
1047 Resets the background darkness in spotlight or highlight box
1048 mode to its default value.
1049
1050 fade-to-black, fade-to-white
1051 Fades to a black or white screen. Once the screen is faded out,
1052 any event except those bound to the quit action will just leave
1053 fade mode and not perform its assigned action.
1054
1055 fullscreen
1056 Toggle fullscreen mode on platforms that support it.
1057
1058 gamma-decrease, gamma-increase
1059 Decrease or increase the gamma level (i.e. roughly the bright‐
1060 ness) of the display on platforms that support it.
1061
1062 gamma-bl-decrease, gamma-bl-increase
1063 Decrease or increase the black level of the display on platforms
1064 that support it.
1065
1066 gamma-reset
1067 Reset the gamma and black level settings to their defaults.
1068
1069 goto-end, goto-end-notrans
1070 Go to the last page of the presentation, with or without a tran‐
1071 sition.
1072
1073 goto-last, goto-last-notrans
1074 Go to the last (i.e. most recently) visited page, with or with‐
1075 out a transition.
1076
1077 goto-next, goto-next-notrans
1078 Go to the following page of the presentation, with or without a
1079 transition.
1080
1081 goto-prev, goto-prev-notrans
1082 Go to the previous page of the presentation, with or without a
1083 transition.
1084
1085 goto-start, goto-start-notrans
1086 Go to the first page of the presentation, with or without a
1087 transition.
1088
1089 hyperlink, hyperlink-notrans
1090 Navigate to the hyperlink under the mouse cursor, if there is
1091 one. If the hyperlink is a reference to another page of the pre‐
1092 sentation, this page will be activated with or without a transi‐
1093 tion. If the hyperlink refers to an external object (e.g. an
1094 URL), it will be opened externally, if supported by the system.
1095
1096 overview-confirm
1097 When in overview mode, confirm the selection and leave overview
1098 mode, navigating to the selected page.
1099
1100 overview-down, overview-up
1101 When in overview mode, select the page above or below the cur‐
1102 rently selected one in the grid.
1103
1104 overview-enter
1105 When not in overview mode, zoom out of the current page, enter‐
1106 ing overview mode.
1107
1108 overview-exit
1109 When in overview mode, leave overview mode, zooming back to the
1110 page that has been displayed before entering overview mode.
1111
1112 overview-next, overview-prev
1113 When in overview mode, select the following or previous page.
1114
1115 quit
1116 Quits Impressive immediately. This action is available in all
1117 modes.
1118
1119 save
1120 Save or update the Info Script for the current presentation.
1121
1122 spotlight-enter
1123 If spotlight mode is not active, enable spotlight mode.
1124
1125 spotlight-exit
1126 If spotlight mode is active, deactivate spotlight mode.
1127
1128 spotlight-grow, spotlight-shrink
1129 When in spotlight mode, increase or decrease the radius of the
1130 spotlight.
1131
1132 spotlight-reset
1133 When in spotlight mode, reset the spotlight radius to the de‐
1134 fault value.
1135
1136 time-reset
1137 Reset the presentation timer.
1138
1139 time-toggle
1140 Toggle on-screen display of the current presentation time, or
1141 wall-clock time if the --clock option is used. If this is done
1142 at the start of the presentation, before the first page has been
1143 left, time tracking mode will be enabled, like the --tracking
1144 option would have done.
1145
1146 toggle-overview
1147 This toggles the "page is visible on overview screen" flag for
1148 the current page. This will not have an immediate effect, but it
1149 can be saved to an Info Script.
1150
1151 toggle-skip
1152 This toggles the "skip page when navigating with goto-prev and
1153 goto-next" flag for the current page.
1154
1155 video-pause
1156 In video playback mode, this pauses or unpauses playback.
1157
1158 video-seek-backward-10, video-seek-backward-1, video-seek-forward-1,
1159 video-seek-forward-10
1160 In video playback mode, seek forward or backward by 1 or 10 sec‐
1161 onds.
1162
1163 video-step
1164 In video playback mode, if playback is paused, advance one frame
1165 in the video.
1166
1167 video-stop
1168 In video playback mode, stop playback and return to normal page
1169 display mode.
1170
1171 zoom-enter
1172 If not in zoom mode, enter zoom mode with the zoom level config‐
1173 ured with the -z/--zoom option.
1174
1175 zoom-exit
1176 If in zoom or box-zoom mode, leave that mode.
1177
1178 zoom-in, zoom-out
1179 Slightly increase or decrease the current zoom level. This does
1180 not change the page's rendering resolution, it only zooms the
1181 visible part of the screen in or out, centered around the mouse
1182 cursor's position. Zoom mode is left automatically if the zoom
1183 level goes to down to 1x; conversely, zoom mode is entered when
1184 calling zoom-in while zoom mode is not active.
1185
1186 zoom-pan
1187 If in zoom mode, the visible area of the page can be moved
1188 around with the mouse while the key or mouse button of the asso‐
1189 ciated event is held down.
1190
1191 zoom-update
1192 If in zoom mode, re-render the current page in a resolution that
1193 best fits the current zoom level, up to the limits of the graph‐
1194 ics hardware or the --maxzoom setting. This only needs to be
1195 done explicitly when zooming with the zoom-in action; zoom-enter
1196 and box-zoom do this automatically.
1197
1198 BINDING SYNTAX
1199 The arguments of the -e/--bind command-line option have the following
1200 basic syntax:
1201 <event> [,<event2>...] <operator> <action> [,<action2>...]
1202 In other words, it is a sequence of event names joined with commas,
1203 followed by an operator (see below) and a sequence of action names
1204 joined with commas. Multiple such binding statements can be combined
1205 into one argument by joining them with a semicolon (;).
1206
1207 The used operator defines in which way the action list shall modify the
1208 bindings of the referenced events:
1209
1210 = (equals sign), += (plus sign and equals sign)
1211 The specified actions will be added to the bindings of the spec‐
1212 ified events. In other words, event=action1,action2 does exactly
1213 the same as event=action1; event=action2.
1214
1215 := (colon and equals sign)
1216 The specified actions will replace the bindings of the specified
1217 events.
1218
1219 -= (minus sign and equals sign)
1220 The specified actions will be removed from the bindings of the
1221 specified events. For example, to make the Esc key in the de‐
1222 fault bindings not clear highlight boxes, but otherwise preserve
1223 its original functionality, escape -= box-clear can be used.
1224
1225 Other than bindings, a statement can also contain one of the following
1226 special commands:
1227
1228 clearall
1229 Clears all current bindings.
1230
1231 defaults
1232 Discards all current bindings and (re-)establishes the default
1233 bindings.
1234
1235 include <filename>
1236 Loads and executes a control configuration file with a specified
1237 name.
1238
1239 The syntax for the configuration files used with the -E/--controls op‐
1240 tion or include statement is exactly the same as for the ad-hoc config‐
1241 uration option, except that individual bindings can be written on indi‐
1242 vidual lines instead of joining them together to a single long line
1243 with semicolons. In addition, everything following a hash sign (#) on a
1244 line will be ignored as a comment.
1245
1246 One practical example for such a configuration file can be the follow‐
1247 ing: The author of this program uses a cheap presentation remote con‐
1248 trol device that has four cursor keys, one "enter" key and a slider
1249 that switches between keyboard and mouse mode. Mouse mode works as ex‐
1250 pected, but what it does in keyboard mode is quite peculiar: the up and
1251 down keys act like Page-Up and Page-Down keys on a keyboard, the right
1252 arrow key sends the letter B to the computer, and the left key toggles
1253 between Esc and F5 each time it's pressed. The following configuration
1254 file allows basic navigation and access to overview mode with this de‐
1255 vice:
1256
1257 clearall # don't use the default bindings
1258 lmb = quit # quit Impressive by clicking in mouse mode
1259 # everything else uses keyboard mode:
1260 return = overview-enter, overview-confirm # toggle overview mode
1261 escape, f5 = overview-prev, goto-prev
1262 b = overview-next, goto-next
1263 pageup = overview-up, goto-prev
1264 pagedown = overview-down, goto-next
1265
1266 To get a better idea of how the control configuration system works in
1267 practice, it's recommended to study the output of impressive --con‐
1268 trol-help - this not only gives a concise overview of all events and
1269 actions, but also a full dump of Impressive's default bindings that can
1270 be used as a starting point for own customizations.
1271
1273 Impressive offers a powerful way to customize individual presentations
1274 using so-called info scripts. An info script is a text file having the
1275 same name and located in the same directory as the presentation file
1276 itself, except for the additional suffix .info. Thus, a presentation
1277 file called BrandNewProduct.pdf would have a info script with the name
1278 BrandNewProduct.pdf.info. If multiple arguments were specified on the
1279 command line, the info script will be called just .info (a dot file, so
1280 to speak). If a directory name was specified as the only argument, ei‐
1281 ther a file called DirectoryName.info or a file called .info inside the
1282 directory will be used, depending on whether a path separator was spec‐
1283 ified at the end of the directory name or not - Impressive simply ap‐
1284 pends .info to whatever the input path name was.
1285 In any case, the default file name can be overridden by the -I command
1286 line option.
1287
1288 Info scripts are actually Python scripts with full access to Impres‐
1289 sive's global data structures and functions. (It is possible, though
1290 heavily discouraged, to write real interactive applications using info
1291 scripts.) This has some good and bad side effects. The bad news first:
1292 The info scripts must be compatible with the Python version used by Im‐
1293 pressive itself; it's best to write them in a way that's compatible
1294 with both Python 2.7 (with the __future__ imports print_function, uni‐
1295 code_literals and division) and Python 3.x. Furthermore, there's no
1296 built-in security; in other words: don't trust info scripts you re‐
1297 ceived from somebody else. The good news, however, is that they can
1298 modify a broad range of settings concerning Impressive. This manual
1299 will only cover the most basic ones.
1300
1301 PAGE PROPERTIES
1302 The main part of an info script defines the properties of each page. At
1303 the moment, the following properties are defined:
1304
1305 title
1306 Each page can have a title that is displayed in the Impressive
1307 window's title bar. If there is no title explicitly specified in
1308 the info script, the title of the page will be extracted from
1309 PDF metadata if pdftk is installed, or the image file name will
1310 be used if the presentation is an image slideshow.
1311
1312 transition
1313 With this property, the transition class to be used for render‐
1314 ing the transition to this page (i.e. between the previous page
1315 and this page) can be specified. For pages lacking this prop‐
1316 erty, random transitions will be chosen. A list of available
1317 transition classes can be obtained with impressive -l.
1318
1319 transtime
1320 This property overrides the global transition time parameter (-T
1321 at the command line). It contains the integer time (in millisec‐
1322 onds) the transition to this page shall take.
1323
1324 overview
1325 This property holds a boolean value (0/False or 1/True) that
1326 specifies whether the page shall be included in the overview
1327 page. If this property isn't specified, it is assumed to be
1328 True.
1329
1330 skip
1331 This boolean property can be set to 1/True if the page shall be
1332 skipped during the presentation.
1333 Pages with overview:True, skip:False will be accessible both by
1334 cycling through the pages and using the overview page,
1335 pages with overview:True, skip:True will be silently skipped in
1336 the normal page cycle, but remain accessible from the overview
1337 page,
1338 pages with overview:False, skip:False will appear in the normal
1339 cycle, but not on the overview page
1340 and pages with overview:False, skip:True will not be accessible
1341 at all.
1342
1343 next
1344 This property can be set to the number of the page that shall be
1345 shown after this page. This can be used to skip a lot of pages
1346 without setting the skip property on each of those, or to create
1347 a loop that can only be escaped by using the overview page or
1348 bookmarks.
1349
1350 prev
1351 This property can be set to the number of the page that shall be
1352 shown when navigating from this page to the previous page (e.g.
1353 using the right mouse button or the Page-Up key in the default
1354 mappings).
1355
1356 boxes
1357 This property stores a list of highlight box coordinates. Nor‐
1358 mally, there is no need to edit this by hand, as Impressive han‐
1359 dles this automatically if the S key is pressed.
1360
1361 timeout
1362 If a timeout property is present and the page is shown, Impres‐
1363 sive will automatically switch to the next page after the speci‐
1364 fied number of milliseconds. Normally, the timeout will only be
1365 effective the first time the page is shown unless wrap mode is
1366 used (command-line option -w or --wrap). This restriction makes
1367 it possible to create self-running presentations with individual
1368 per-page timeouts.
1369
1370 radius
1371 This property takes an integer value that, if defined, will be
1372 used to set a new spotlight radius every time the page is en‐
1373 tered. This overrides the current setting as defined by the
1374 --spot-radius command line option or run-time adjustments. Note
1375 that the value is not reset to the default value after the page
1376 has been left again.
1377
1378 darkness
1379 This property takes an integer or floating-point percentage
1380 value that, if defined, will be used to set the background dark‐
1381 ness in spotlight or highlight box mode each time the page is
1382 entered. This overrides the current setting as defined by the
1383 --darkness command line option or run-time adjustments. Note
1384 that the value is not reset to the default value after the page
1385 has been left again.
1386
1387 zoomdarkness
1388 This property takes an integer or floating-point percentage
1389 value that, if defined, will be used to set the background dark‐
1390 ness in box-zoom mode each time the page is entered. This over‐
1391 rides the current setting as defined by the --zoomdarkness com‐
1392 mand line option or run-time adjustments. Note that the value is
1393 not reset to the default value after the page has been left
1394 again.
1395
1396 comment
1397 This property can hold a string with a single line of text that
1398 will be displayed on screen while the page is shown. Display of
1399 this text can not be disabled.
1400
1401 sound
1402 Specifies the file name of a sound file to be played (via
1403 MPlayer) when the page is first entered. Once started, the sound
1404 will be played until its end is reached, another sound or video
1405 is played, or Impressive is exited.
1406
1407 video
1408 Specifies the file name of a video file to be played when the
1409 page is first entered. The video will be displayed full-screen.
1410 Any key or mouse click stops playback, except the cursor keys,
1411 which are used to seek in the video file, and space, which can
1412 be used to pause playback.
1413 Please not that this function is still somewhat experimental. It
1414 uses an external player application (MPlayer, or omxplayer on
1415 Raspberry Pi) to perform the actual playback, and embeds it into
1416 Impressive's window.
1417
1418 always
1419 If this property is present and set to 1 or True, the media file
1420 specified in the sound or video properties will be played every
1421 time the page is entered, not just the first time.
1422
1423 progress
1424 If this property is set to zero, the presentation progress bars
1425 (which are set up with the -d/--duration, -q/--page-progress or
1426 -k/--auto-progress command line switches) will not be shown on
1427 this page. In practice, it might be useful to hide the bar(s)
1428 from the first page so that they are not visible during the in‐
1429 troduction.
1430
1431 reset
1432 If this property is set to 1 or True, the timer will be reset
1433 each time this page is left, just as if the R has been pressed.
1434 If the special value 2 or FirstTimeOnly is used, the reset will
1435 only take place if the page was shown for the first time. Again,
1436 this is particularly useful on the first page: A combination of
1437 progress:False, reset:FirstTimeOnly makes it possible to set up
1438 the presentation long before it actually begins - the first page
1439 can be showed as long as desired, actual timing starts at the
1440 second page.
1441
1442 rotate
1443 This property is a per-page override of the global -r command
1444 line option: It specifies how the page shall be rotated, in
1445 90-degree steps clockwise.
1446
1447 OnEnter, OnLeave, OnEnterOnce, OnLeaveOnce
1448 These properties can contain a Python callable (i.e. a function
1449 reference or lambda expression) that is executed when the page
1450 is entered or left. The ~Once variants will only be executed
1451 when the page is entered or left for the first time. The
1452 callable must not take any arguments. This feature can be used
1453 to associate arbitrary Python code with specific pages, for ex‐
1454 ample to execute external programs.
1455 Warning: Lambda expressions cannot be properly processed by the
1456 Info Script save function (S key). If Impressive encounters
1457 lambda expressions when saving, it will remove them. In addi‐
1458 tion, it will not overwrite the original info script, but gener‐
1459 ate an extra file that needs to be merged with the original
1460 script by hand.
1461
1462 keys
1463 This property can be assigned a dictionary that maps alphanumer‐
1464 ical keys to Python functions. For example, 'keys': { 'x': Some‐
1465 Function } will invoke SomeFunction() if the lowercase character
1466 'x' is typed while the page is displayed. Regarding the func‐
1467 tions, the same restrictions as for the OnEnter/OnLeave family
1468 apply: the function must not take any parameters and lambda
1469 functions can not be saved. Also note that it is not possible to
1470 overwrite Impressive's pre-defined key bindings with this
1471 method.
1472
1473 invert
1474 This property specifies whether the colors of that page shall be
1475 inverted in the same way the --invert command-line switch does.
1476 It overrides the --invert setting on a per-page basis: If set to
1477 True, the page will always be inverted; if set to False, the
1478 page will never be inverted even if --invert has been specified
1479 on the command line.
1480
1481 Note that in Impressive versions prior to 0.11.0, the transition and
1482 transtime properties defined the transition from the current page to
1483 the next, not from the previous page to the current one.
1484
1485 The properties are stored together in a Python dictionary called Page‐
1486 Props. The syntax looks like in this example:
1487
1488 PageProps = {
1489 1: {
1490 'title': "Title Page",
1491 'transition': PagePeel,
1492 'sound': "background_music.mp3"
1493 },
1494 2: {
1495 'title': "Another Page",
1496 'timeout': 5000
1497 }
1498 }
1499
1500 The PageProps definition (and only the PageProps definition) will be
1501 rewritten by Impressive if the S key is pressed. User-defined PageProps
1502 entries will also be left untouched, except for some pretty-printing.
1503
1504 GLOBAL PRESENTATION PROPERTIES
1505 The name of the presentation is shown in the title bar of the Impres‐
1506 sive window (if not in fullscreen mode). By default, the file name or
1507 (if available) PDF metadata title will be used for this purpose, but
1508 the presentation title can also be explicitly set by overwriting the
1509 DocumentTitle variable:
1510 DocumentTitle = "My Presentation"
1511
1512 Another useful variable, AvailableTransitions, contains a list of all
1513 transition classes that may be used for randomly assigning transitions
1514 to pages lacking the transition property. Thus, if a certain transition
1515 is undesired (either because of personal dislike or because it shall be
1516 used exclusively on pages where it is manually assigned using Page‐
1517 Props), something like the following can be written:
1518 AvailableTransitions.remove(WipeBlobs)
1519 On the other side, it's possible to activate transitions that are not
1520 enabled by default:
1521 AvailableTransitions += [SlideUp, SlideDown]
1522 Alternatively, AvailableTransitions can be completely overwritten to
1523 have the same transition (or set of transitions) assigned to all pages:
1524 AvailableTransitions = [Crossfade]
1525
1526 OPTION OVERRIDES
1527 Another use of info scripts is overriding the default or command-line
1528 settings on a per-file basis. This can be done by simply overwriting
1529 one of the variables that are defined at the beginning of impres‐
1530 sive.py. Each of these variables corresponds either to a command-line
1531 setting, or to some constant related to visual appearance or perfor‐
1532 mance. So, for example, to force fullscreen mode for a presentation,
1533 write
1534 Fullscreen = True
1535
1536 WORKING DIRECTORIES
1537 The working directory while executing the info scripts themselves is
1538 always the directory in which the info script is stored in.
1539
1540 The base directory for external actions that originate from Page Prop‐
1541 erties or PDF hyperlinks is always the directory of the PDF or image
1542 file this page belongs to. In other words, if e.g. 'sound': "music.mp3"
1543 is written in the info script for one page of presentation.pdf, the
1544 file music.mp3 is expected to be located in the same directory as pre‐
1545 sentation.pdf.
1546
1548 Impressive and its documentation has been written mainly by Martin J.
1549 Fiedler <martin.fiedler@gmx.net>, with small portions of the code writ‐
1550 ten by external contributors. See the source code file for details.
1551
1553 Report bugs to to <martin.fiedler@gmx.net>.
1554
1555
1556
1557Martin J. Fiedler 2020-05-31 IMPRESSIVE(1)