All Projects → stiglers-eponym → Beamerpresenter

stiglers-eponym / Beamerpresenter

Licence: agpl-3.0
Simple dual screen pdf presentation software

Projects that are alternatives of or similar to Beamerpresenter

Pympress
Pympress is a simple yet powerful PDF reader designed for dual-screen presentations
Stars: ✭ 450 (+1400%)
Mutual labels:  presentation, pdf-viewer, presenter
Shlide
🖼 a slide deck presentation tool written in pure bash
Stars: ✭ 406 (+1253.33%)
Mutual labels:  slides, presentation
Reveal Hugo
📽️ Create rich HTML-based presentations with Hugo and Reveal.js
Stars: ✭ 381 (+1170%)
Mutual labels:  slides, presentation
Code Surfer
Rad code slides <🏄/>
Stars: ✭ 5,477 (+18156.67%)
Mutual labels:  slides, presentation
Xaringanthemer
😎 Give your xaringan slides some style
Stars: ✭ 337 (+1023.33%)
Mutual labels:  slides, presentation
Godot Power Pitch
International pitch for the Godot Game Engine, made in Godot, available in 15+ languages
Stars: ✭ 348 (+1060%)
Mutual labels:  slides, presentation
Fusuma
✍️Fusuma makes slides with Markdown easily.
Stars: ✭ 5,033 (+16676.67%)
Mutual labels:  slides, presentation
StageMate
StageMate is the smart assistant for your presentation. It will cover all aspects of your pitch from skipping slides to reminding you if you miss some major point.
Stars: ✭ 60 (+100%)
Mutual labels:  presentation, slides
Presenta Lib
A javascript library to build expressive web presentations in seconds.
Stars: ✭ 614 (+1946.67%)
Mutual labels:  slides, presentation
Backslide
💦 CLI tool for making HTML presentations with Remark.js using Markdown
Stars: ✭ 679 (+2163.33%)
Mutual labels:  slides, presentation
Kubecon 2018
Slides from Kubecon 2018
Stars: ✭ 16 (-46.67%)
Mutual labels:  slides, presentation
Big
presentations for busy messy hackers
Stars: ✭ 3,208 (+10593.33%)
Mutual labels:  slides, presentation
Presentation
📑 Presentation helps you to make tutorials, release notes and animated pages.
Stars: ✭ 3,004 (+9913.33%)
Mutual labels:  slides, presentation
Marpit
The skinny framework for creating slide deck from Markdown
Stars: ✭ 364 (+1113.33%)
Mutual labels:  slides, presentation
code-slides
present your code as slides in VSCode
Stars: ✭ 17 (-43.33%)
Mutual labels:  presentation, slides
Showoff
Don't just present; interact with your audience!
Stars: ✭ 879 (+2830%)
Mutual labels:  presentation, presenter
getting-started-with-grails
Conference Talk - Getting Started with Grails
Stars: ✭ 23 (-23.33%)
Mutual labels:  presentation, slides
slides
Terminal based presentation tool
Stars: ✭ 5,347 (+17723.33%)
Mutual labels:  presentation, slides
Marp Cli
A CLI interface for Marp and Marpit based converters
Stars: ✭ 606 (+1920%)
Mutual labels:  slides, presentation
Miniseminar
Confluence as a backend -> Express -> reveal.js as a presentation -> Profit!
Stars: ✭ 27 (-10%)
Mutual labels:  slides, presentation

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.

This software uses the Qt framework and the PDF engines MuPDF and/or poppler.

Note: the relatively stable version 0.1.3 can be found in branch 0.1.x and in the releases. This new version 0.2.x is not stable yet.

Features

  • modular user interface (new in 0.2.x)
  • poppler or MuPDF (new in 0.2.x) as PDF engine
  • render slides to compressed cache for fast response (parallelization improved in 0.2.x)
  • draw in slides (improved in 0.2.x)
  • highlighting tools (torch, magnifier, pointer)
  • notes for the speaker in Markdown format (new in 0.2.x)
  • optionally to show separate presentation file for speaker
  • optionally use LaTeX-beamer's option to show notes on second screen and split PDF pages into a part for the speaker and a part or the audience
  • clock and timer for the presentation (some features of 0.1.x not yet available in 0.2.x)
  • navigate using document outline, thumbnail slides, page numbers/labels and links
  • save/load drawings in Xournal format (improved in 0.2.x)
  • videos in presentations (sound will be broken depending on the configuration; improved integration with other features in 0.2.x; some small bugs remaining)
  • slide transitions
  • basic animations by showing slides in rapid succession

Screenshots

These screenshots only show one possible way of using BeamerPresenter. The speaker could also see a different presentation (with additional information), or editable notes.

One possible configuration of the graphical interface shows the previews of the last overlays of the current and next slide to the speaker: The left half of these pictures shows the window visible only to the speaker and the right half shows the presentation. Both are independent windows. These examples were created with the configuration config/gui-2files.json, which also works fine if just one presentation file is given.

Use a magnifier to show details of your plots (size and magnification factor can be adjusted):

Draw in your presentation using a pen or highlighter and focus on parts of your slide using a torch or a pointer: Of course, this is just for demonstration an you'll usually not use pointer and torch at the same time. Annotations can be saved and loaded in a file format borrowed from Xournal (.xoj or xopp).

Use an overview of all slides (or all slides with separate slide labels, especially useful for presentations created with LaTeX beamer):

You can embed videos in your slides. Drawing and highlighting also works in the video. Note the slider on the speaker's screen. Slide transitions may in some cases need to interrupt a video.

Build and install

Note: building and installing the releases of version 0.1.x is described here.

Building is tested in an up-to-date Arch Linux and (from time to time) in xubuntu 20.04. Older versions of ubuntu are not supported, because ubuntu 18.04 uses old versions of poppler and MuPDF and other ubuntu versions before 20.04 should not be used anymore. Version 0.1.x of BeamerPresenter should support ubuntu 18.04 and you should open an issue on github if it does not.

First install required packages. You need Qt5 including the multimedia module. Additionally you need either the Qt5 bindings of poppler or the MuPDF C bindings.

Dependencies in Ubuntu 20.04

For Qt5:

  • qt5-qmake
  • qt5-default
  • qtmultimedia5-dev
  • Note: ubuntu's version of Qt5 does not have native markdown support. Therefore, also BeamerPresenter will not be able to interpret markdown in ubuntu.

For poppler:

  • libpoppler-qt5-dev: version 21.01 is tested. Versions below 0.70 are explicitly not supported, compiler errors in newer versions might be fixed if reported in an issue on github.

For MuPDF:

  • libmupdf-dev: MuPDF versions starting from 1.17 should work, version 1.12 or older is explicitly not supported.
  • libfreetype-dev
  • libharfbuzz-dev
  • libjpeg-dev
  • libopenjp2-7-dev
  • libjbig2dec0-dev
  • libgumbo-dev (for MuPDF 1.18, probably not in 1.17)

Others:

  • zlib1g-dev

Dependencies in Arch Linux

For Qt5:

  • qt5-multimedia (depends on qt5-base, which is also required)

For poppler:

  • poppler-qt5

For MuPDF:

  • libmupdf
  • libfreetype.so (provided by freetype2 in test environment)
  • libharfbuzz.so (provided by harfbuzz in test environment)
  • libjpeg (provided by libjpeg-turbo in test environment)
  • jbig2dec
  • openjpeg2
  • gumbo-parser

Build

Download the sources:

git clone --depth 1 https://github.com/stiglers-eponym/BeamerPresenter.git

Now you need to select the PDF engine. In the file beamerpresenter.pro you will find the lines DEFINES += INCLUDE_POPPLER and DEFINES += INCLUDE_MUPDF. Comment out the PDF engine which you don't need with a #.

Now you can start building.

qmake && make

If this fails and you have all dependencies installed, you should check your Qt version (qmake --version). If you use 5.8 < qt < 6, you should open an issue on github. In older versions you may also open an issue, but it will probably not be fixed.

Install

In GNU/Linux you can install BeamerPresenter with

make install

When installing manually, you may need the following files (in build directory):

  • beamerpesenter: executable, the program
  • config/beamerpesenter.conf: settings file, usually stored in /etc/xdg/beamerpresenter/beamerpresenter.conf or $HOME/.config/beamerpresenter/beamerpresenter.conf. If located at a different path, specify the path with the command line option -c <path>.
  • config/gui.json: user interface configuration, mandatory! Usually stored in /etc/xdg/beamerpresenter/gui.json or $HOME/.config/beamerpresenter/gui.json. The path to this file needs to be specified in the settings file (see above) or given explicitly with the command line option -g <path>.
  • doc/*: manuals, not required for running the program.
  • share/*: icon and desktop file, not required for running the program.
  • LICENSE (optional): you might want to remember that it's AGPL3 (see below for details)

Development

Version 0.2.x of BeamerPresenter has been developed independent of version 0.1.y with the aim of avoiding the chaotic old code. The configuration files of version 0.2.x and 0.1.x are incompatible.

Already implemented

  • render with Poppler or MuPDF
  • cache pages (with limitation of available memory; doesn't work if pages have different sizes)
  • read slides and notes from the same PDF, side by side on same page
  • navigation links inside document
  • navigation skipping overlays
  • build flexible GUI from config
  • draw and erase using tablet input device with variable pressure (wacom)
  • highlighting tools: pointer, torch, magnifier
  • full per-slide history of drawings (with limitation of number of history steps)
  • select per-slide or per-overlay drawings
  • save and load drawings to xopp-like xml format (rather experimental)
  • animations and automatic slide change
  • slide transitions
  • videos
  • widgets:
    • slide
    • clock
    • page number (and max. number)
    • page label (and max. label)
    • tool selector
    • timer
    • editable markdown notes per page label (only available if qt was compiled with native markdown implementation)
    • table of contents (requires improvement: keyboard navigation)
    • thumbnails (requires improvement: keyboard navigation)
    • settings (still kind of improvised)

To be implemented / fixed

  • improve cache management and layout corrections: sometimes cache is not used correctly.
  • cache slides even when size of slides varies (partially implemented)
  • cache only required slides in previews showing specific overlays
  • fix layout, avoid recalculating full layout when clock label changes text
  • sounds
  • option to insert extra slides or extra space below slide for drawing (partially implemented)
  • improve text input tool
  • combination of slide transitions and videos sometimes interrupts videos
  • improve widgets:
    • settings (more explanations)
    • timer (with color indicating progress relative to estimate like in version 0.1.x)
    • thumbnails (cursor, keyboard navigation)
    • table of contents (cursor, keyboard navigation)
    • all: keyboard shortcuts
  • fine-tuned interface, fonts, ...
  • manual, man pages

Bugs

If you find bugs or have suggestions for improvements, please open an issue.

When reporting bugs, please include the version string of BeamerPresenter (beamerpresenter --version) or the Qt version if you have problems building BeamerPresenter (qmake --version).

License

This software may be redistributed and/or modified under the terms of the GNU Affero General Public License (AGPL), version 3, available on the GNU web site. This license is chosen in order to ensure compatibility with the software libraries used by BeamerPresenter, including Qt, MuPDF, and poppler.

BeamerPresenter can be compiled without including MuPDF, using only poppler as a PDF engine. Those parts of the software which can be used without linking to MuPDF may, alternatively to the AGPL, be redistributed and/or modified under the terms of the GNU General Public License (GPL), version 3 or any later version, available on the GNU web site.

BeamerPresenter is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].