Frequently Asked Questions

I have a multi-monitor setup and Impressive never comes up on the correct monitor. What can I do?

Unfortunately PyGame, the windowing API currently used by Impressive, does not contain any support for multi-monitor setups whatsoever. This means that you can't really tell Impressive on with monitor it shall run – at least not directly. Starting from version 0.10.4, Impressive has options that make it possible to use some kind of »manual« multi-screen support. In particular, the so-called »fake fullscreen« mode (which is basically windowed mode, but without a frame and title bar around the window) is instrumental to this.

Imagine you have a two-monitor setup: The primary monitor is 1600x900, the secondary monitor is 1024x768 and logically located right of the primary one. To run a presentation on the secondary monitor, you can try the following: impressive -ff -g 1024x768+1600+0 This runs Impressive in a borderless window, at the position and size of the second screen.

Is there any kind of »presenter screen« in Impressive?

No, and there is currently no proper way (or plans) to implement such a thing. This is due to limitations in PyGame and Impressive's code structure, both of which are hard to overcome.

That being said, there is a feature called »half-screen mode« (command line option -H) that does implement a presenter screen, but it depends on three factors:

Can I make notes on slides or paint on them?

Unfortunately, no. This is a frequently requested feature that's not trivial to implement, so it will not be added in the foreseeable future.

My presentation contains videos, but Impressive fails to play them. How can I make them work?

You can't. Impressive is not able to extract videos from PDF files, let alone play them in a small window inside the page at the proper position and size. The only way to get video in Impressive is by using the 'video' page property, and even then it's important to know that this is an experimental feature that shouldnt't be relied on.

Impressive doesn't run on Windows; it complains that my graphics drivers are too old.

Usually this means that your installed graphics driver doesn't come with OpenGL support, and Windows falls back to its severely outdated software renderer that is missing essential features which are required by Impressive. There are basically two scenarios where this can happen.

If you're sitting in front of a real, physical machine that's running Windows natively, the most likely reason is that no proper graphics driver has been installed. (Recent versions of Windows may install a graphics driver automatically, but it's sometimes a feature-reduced version, lacking OpenGL support, among others.) In this case, install a proper graphics driver from your GPU vendor (AMD, Intel or nVidia) and Impressive should work fine.

If you're running Windows in a VM or using it via a Remote Desktop connection (where there's typically no 3D-accelerated graphics driver available at all), or if you can't install drivers yourself due to corporate policy restrictions, a possible solution is installing the Mesa library specifically for Impressive. This comes with llvmpipe, which is a relatively fast software renderer, and GLonD3D12, which translates OpenGL to Direct3D, which is more likely to have proper drivers installed. Thanks to a third-party developer (who is not affiliated with Impressive in any way), pre-built Windows binaries exist. You need to download the latest mesa3d-...-release-msvc.7z package, and copy the files opengl32.dll, libglapi.dll, libgallium_wgl.dll and dxil.dll from either the x86 or x64 folder of the archive into the directory where Impressive is installed. If you're using the official Win32 packages of Impressive, the x86 version is the correct one for Impressive up to 0.12.x, and the x64 one is to be used from 0.13.0 on; if you're running Impressive from source code, the correct version depends on the »bitness« of your Python installation. With the proper DLL files in place, Impressive should work again.