/BeamerPresenter

Simple dual screen pdf presentation software

Primary LanguageC++GNU General Public License v3.0GPL-3.0

BeamerPresenter

BeamerPresenter is a PDF viewer for presentations, which opens a presentation screen and a control screen in two different windows. The control screen optionally shows slides from a dedicated notes document instead of the slides for the audience. Additional information on the control screen includes the current time, a timer for the presentation, and previews of the next slides.

Features include slide transitions, multimedia content, different options for efficient and fast navigation, and different tools for highlighting and drawing in the presentation.

Based on Qt, BeamerPresenter is cross-platform, but mainly tested on Arch Linux with X11 or wayland using presentations created by LaTeX beamer. In general Qt programs more stable in X11 than in wayland.

Features

An extended list of features can be found in the manual (beamerpresenter.1).

  • Speaker screen showing notes, previews of the current and next slide, a timer, a clock and the current slide number.
  • Draw in presentation: You can use different pens and highlighters to draw in the presentation. Drawings are synchronized between notes screen and presentation screen. You can use a pointer, torch and magnifier to highlight parts of the presentation. Drawings can be saved to an experimental binary file format.
  • Simple navigation by using links, scrolling, a table of contents, an overview of all slides on the speaker's screen, and shortcuts for skipping overlays.
  • The timer can be configured to change its color as to indicate whether you are in time.
  • Cache: All slides are rendered to a compressed cache. The total cache size and the number of slides in cache can be limited.
  • Slide transitions: BeamerPresenter probably supports probably all slide transitions which are defined in the PDF standard.
  • Multimedia: You can add videos and audio files to your presentation. A video will continue playing if embedded on two consecutive slides with the same page label (overlays in LaTeX beamer).
  • Animations: You can create simple animations by showing slides in rapid succession. The minimal delay between two frames can be defined in the configuration.

Build

To build and use this project you need to have the Qt5 multimedia module and the poppler Qt5 bindings installed. If building fails on your system, please open an issue on github.

Download, compile and install this project on GNU/Linux systems:

git clone https://github.com/stiglers-eponym/BeamerPresenter.git
cd BeamerPresenter
qmake && make
make install

Showing videos in a presentation additionally requires the installation of some GStreamer plugins.

Installation in Arch Linux

You can install the package beamerpresenter or beamerpresenter-git from the AUR.

Installation in Ubuntu >= 18.04

First install the dependences (note that this changes the default Qt version to Qt5):

sudo apt install g++ qt5-qmake qt5-default libpoppler-qt5-dev qtmultimedia5-dev

Optionally install libqt5multimedia5-plugins for multimedia content.

Then download the source and build. To download the latest release use

wget https://github.com/stiglers-eponym/BeamerPresenter/archive/v0.1.2.tar.gz
tar -xf v0.1.2.tar.gz
cd BeamerPresenter-v0.1.2
qmake && make

To build from current git version use

git clone https://github.com/stiglers-eponym/BeamerPresenter.git
cd BeamerPresenter
qmake && make

You could now install BeamerPresenter using sudo make install, but it is recommended to use checkinstall in order to keep track of all installed files using dpkg or apt:

sudo apt install checkinstall
echo 'Simple dual screen pdf presentation tool' > description-pak
sudo checkinstall -D \
    --pkglicense=GPL3 \
    --requires=libpoppler-qt5-1,libqt5multimediawidgets5 \
    --pkgsource=github.com/stiglers-eponym/BeamerPresenter \
    make install

After the installation you can remove the packages libpoppler-qt5-dev, qtmultimedia5-dev, libpoppler-dev and checkinstall.

Building in macOS

First install the dependencies via Homebrew package manager:

brew install qt poppler

Then download the source and build as described for ubuntu. For the latest git version use

git clone https://github.com/stiglers-eponym/BeamerPresenter.git
cd BeamerPresenter
qmake && make

Installation is currently not supported but opening the application can be done via command:

open beamerpresenter.app/Contents/MacOS/beamerpresenter

from the directory where it was built.

Other OS

For building BeamerPresenter in any other OS you need to have Qt5 and the poppler-qt5 library installed. In beamerpresenter.pro you need to configure INCLUDEPATH and LIBS manually.

On Microsoft Windows you can either use the Windows Subsystem for Linux or build directly in Windows. Using the subsystem for linux has the advantage that you can use recent poppler versions provided by e.g. ubuntu. But it requires manual configuration of the display. When building directly in Windows you need poppler and Qt5 for Windows.

Usage

beamerpresenter [options] <presentation.pdf> [<notes.pdf>]

For more options and usage possibilities use beamerpresenter --help and the man pages.

If you start beamerpresenter without any arguments, it will show a file dialog in which you can pick you presentation and notes file.

Settings

Settings can be placed in a file beamerpresenter.conf (on platforms other than GNU/Linux: beamerpresenter.ini). An example configuration file is provided. The configuration can only be edited directly with a text editor.

Typical usage

I compile my LaTeX beamer presentations once with an aspect ratio optimized for the projector (e.g. 16:10) and once with aspect ratio 4:3 for the speaker's screen. The layout is less important for the speaker's screen, but it should leave enough space on the screen for a clock, a timer and a preview of the next slide. In the slides for the speaker screen I can include some additional information.