A presenter screen for Impressive
I ditched presentation software a while ago. Now I make my slides in PDF and show them with a document reader.1 Recently I’ve been checking out Impressive, a program written in Python that displays PDF presentation slides using OpenGL. It contains some unique features, but sometimes a presenter screen comes in handy, and sadly, Impressive doesn’t come with one:
As a corollary to PyGame’s inability to support multiple monitors or even multiple windows, it is also not possible to have a presenter screen like OpenOffice or Keynote.
I know there are alternatives, such as pdf-presenter-console, which is good, but rather basic and lacks some features I like from Impressive, such as transitions and the overview screen. Luckily, Seppe vanden Broucke came up with a great solution. He built a presenter screen in HTML. Every time a slide is shown, and taking advantage of its scripting capabilities, Impressive writes some information to a JSON object stored in a plain text file. Then this file is loaded in the presenter screen using jQuery. Pretty neat, in my opinion.
So, I took his code, changed some stuff, and made impressive-presenter.
This workflow is recommended:
- Make your PDF slides however you like.
- Run
impressive-presenter.sh
with your presentation file as an argument. It will create some files in the presentation directory. - Modify the
.info
file if you need to (for transitions, for example). Thenotes
property will be shown on the presenter screen as speaker notes. HTML is allowed. - At the time of your presentation, open
presenter.html
in your laptop screen.2 - In the main screen, start your presentation with Impressive. If everything goes well,
presenter.html
should update its info.
It’s a quick and dirty solution, but one advantage of this approach is that if you know HTML and CSS, the presenter screen is fully customizable. Anyway, if you want to give it a shot, the code is available at GitHub.
-
I use LibreOffice Impress to make the presentations and export them to PDF, but I’m considering the switch to desktop publishing software like InDesign or Scribus. Beamer bores the hell out of me. ↩
-
In Chrome, you’ll need to execute the browser with the
--allow-file-access-from-files
flag, otherwise it won’t work. This flag could change without notice, so be careful and check the documentation. Or just use another browser. ↩