Francisco Lobos
Versión en español: Una vista de presentador para Impressive

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.

impressive-presenter

This workflow is recommended:

  1. Make your PDF slides however you like.
  2. Run impressive-presenter.sh with your presentation file as an argument. It will create some files in the presentation directory.
  3. Modify the .info file if you need to (for transitions, for example). The notes property will be shown on the presenter screen as speaker notes. HTML is allowed.
  4. At the time of your presentation, open presenter.html in your laptop screen.2
  5. 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.


  1. 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. 

  2. 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.