BeamerPresenter(1)

πŸ“¦ version 0.2.6, in nixos 26.05, nixpkgs unstable

πŸ’– BeamerPresenter(1) β€” the modular multi-screen PDF presenter πŸ’–

okay so bestie, this is the manual page for BeamerPresenter (that's the <italic>name</italic> up top, and yes it's a <rainbow>General Commands Manual</rainbow> page, iykyk) β€” and like, it's genuinely one of those tools that just gets you. let me walk you through it 🫢

✨ SYNOPSIS ✨

beamerpresenter [-c config-file] [-g ui-file] [-t time] [--log]
                [--nocache] [--renderer name] presentation [notes ...]
beamerpresenter [-h|--help|--help-all|-v|--version]

like, that's the whole vibe right there β€” you give it a presentation and maybe some notes ... and it just slays πŸ”₯

🌸 DESCRIPTION 🌸

So BeamerPresenter is a Qt-based presentation viewer, right? But the whole point β€” the main character energy of it β€” is showing extra info on the speaker's screen while the audience sees the slides. πŸ‘‘

The UI is completely customizable and modular, meaning you can build it out of stuff like:

  • previews of upcoming slides πŸ‘€
  • a totally different presentation file with extra information on it
  • text notes
  • a timer
  • thumbnail slides

Now β€” the way multiple positional arguments get interpreted? That depends entirely on your user interface configuration, which lives in beamerpresenter-ui(5). No cap. πŸ“„

Readable file types are PDF files and gzip compressed XML files in a format that's mostly compatible with Xournal++ (.xopp). πŸ¦‹

πŸ’… OPTIONS πŸ’…

  • -h, --help β€” shows you the help. that's it, that's the whole thing πŸ’–
  • --help-all β€” same but extra β€” shows help including Qt-specific options. the full lore. πŸ“š
  • -v, --version β€” tells you the version info ✨
  • --renderer option β€” defines the renderer and PDF engine. Depending on your install this might be:
    • just a PDF engine β€” MuPDF, Poppler, or QtPDF, or
    • "ENGINE-external" where ENGINE is a PDF engine. The "external" part means: instead of using that PDF engine, the rendering gets delegated to an external program. The command for calling that program must be defined in the configuration β€” peep beamerpresenter.conf(5) πŸ‘€
  • --log β€” prints times of slide changes to standard output. Lowkey only does anything if there's a page label/number widget in your user interface. so if nothing's happening, that's why bestie 😭
  • --nocache β€” disables caching slides. genuinely helpful for debugging, or when your presentation has slides of different geometry. icon behavior tbh πŸŽ€
  • --debug flag1,flag2,... β€” shows debugging messages. ⚠️ only available if it was built with the option CONFIG+=debug ⚠️ Valid flags are: rendering, cache, drawing, media, key-input, other-input, settings, transitions, page-change, layout, widgets, all, verbose. FYI the "verbose" flag doesn't turn on any logging by itself β€” it just shows additional messages for whatever other flags you set. πŸ’€
  • -t, --time number β€” timer preset, in minutes (and yes it's a floating point number, go wild with 0.5 πŸ•)
  • -c, --config file β€” path to the configuration (settings) file. πŸ–₯️ On Windows, using this command line option is the only way to make BeamerPresenter use a config file instead of the Windows registry. like, the only way. fr fr.
  • -g, --gui-config file β€” path to the user interface configuration file (JSON-formatted) 🌈

⌨️ DEFAULT KEY BINDINGS ⌨️

okay these are the defaults, get comfy:

  • PageUp, Left = previous β€” go to previous page ⬅️
  • PageDown, Right = next β€” go to next page ➑️
  • space = update β€” refresh the view πŸ”„
  • Home = first β€” go to the first page πŸ₯‡
  • End = last β€” go to the last page 🏁
  • Ctrl+C = copy β€” copy the selection to the clipboard πŸ“‹
  • Ctrl+V = paste β€” paste from the clipboard πŸ“₯
  • Ctrl+X = cut β€” remove the selection and copy it to the clipboard βœ‚οΈ
  • Ctrl+Z = undo β€” undo (e.g. when drawing or adding text) ↩️
  • Ctrl+Y = redo πŸ”
  • Del = delete β€” remove selection πŸ—‘οΈ
  • Ctrl+S = save β€” saves drawings, notes, and times (see the FILE FORMAT section below πŸ’Ύ)
  • Ctrl+Shift+S = save as πŸ“
  • Ctrl+O = open β€” load drawings etc. from a file πŸ“‚

🧚 CONFIGURATION 🧚

So the configuration is made of two things, bestie, don't mix them up:

1. A configuration file β€” beamerpresenter.conf(5) β€” based on Qt's settings format, which is integrated in the system settings. This defines stuff like the cache size and keyboard shortcuts. Most settings in this settings file can be configured right in the settings widget of the graphical user interface. (See command line option -c or --config.) βš™οΈ

2. The graphical interface itself, which is defined in a JSON-formatted file gui.json β€” that's beamerpresenter-ui(5). This file defines the user interface, and it can only be edited manually. no GUI for the GUI, sorry 😭 (See command line option -g or --gui-config.)

πŸŽ€ FILE FORMAT πŸŽ€

BeamerPresenter can save drawings along with text notes (from a notes widget) and other file-specific settings to a gzipped XML file (.bpr).

⚠️ Heads up: the PDF document is not included in this file. ⚠️

The file type aims for compatibility with Xournal++'s .xopp for saving and loading drawings. BeamerPresenter can read .xoj (Xournal) and .xopp files if those contain annotations of a PDF document. Xournal++ can open BeamerPresenter files, but transformations of text boxes will be ignored. πŸ”₯ And BeamerPresenter can only handle a small subset of the features Xournal++ provides, and it also adds a few features that Xournal++ will ignore. it's giving mutual tolerance πŸ’…

Exporting notes to a PDF document is currently not supported. πŸ™ˆ But you can use Xournal++ to do it with this command:

xournalpp -p output.pdf input.xopp
⚠️ Note: when saving with the file extension .xopp in BeamerPresenter, only annotations will be saved. Text notes and times set for slides will not be saved in that case. When opening a file, it does not need to be gzipped. However, when saving to a file, it will always be gzipped. 🫠

πŸ”₯ PDF FEATURES / MULTIMEDIA πŸ”₯

BeamerPresenter is aimed at implementing the features in the PDF standard that can reasonably be used in presentations. That's the goal. ⭐

JavaScript is explicitly excluded and there is currently no plan to implement 3D artwork. πŸ’€ periodt.

Basic implementations exist for slide transitions and multimedia content.

Only external multimedia content (movies and sounds) is supported. Embedded files will be ignored. Also, only the Poppler PDF engine currently supports sound links β€” so sounds may be missing when you're using the MuPDF engine. As a workaround, sounds can be included as if they were videos. 🎬 Supported audio/video formats depend on the media player backend.

Media sources in the PDF may be local files or URLs. BeamerPresenter interprets the scheme and query of a URL to allow settings beyond the PDF standard. These schemes are treated specially: πŸ‘‡

  • udp, rtp β€” it's assumed this shall be a live stream. By default, play/pause is disabled and there's no slider. πŸ“‘
  • v4l, v4l2, cam β€” the URL path is interpreted as the id of a camera. In Linux this is usually of the form /dev/video0. The live view of the camera with the given id is shown without any media controls. This option is only available in Qt 6 and must be enabled at compile time. πŸ“·

🌈 URL query options 🌈

The following URL query options can take the values "true" or "false":

  • autoplay = true β€” show and play media when reaching a slide ▢️
  • mute = false β€” mute audio (can also be achieved with the volume option in the PDF standard) πŸ”‡
  • slider = true β€” show a slider for showing the progress of the video on the control screen πŸ“Š
  • interaction = true β€” allow the user to pause the video ⏸️
  • live = false β€” media shows a live stream. Currently this option has no effect. πŸ«₯

πŸ“ Examples πŸ“

udp://127.0.0.1:8010?mute=false&interaction=true

Show a stream from the given URL without audio. The udp scheme changes the default options to live=true, slider=false, interaction=false. Here we override the option for interaction. πŸ‘€ Note: this source will be blocked unless external links are enabled in the configuration. 🚫

v4l2:///dev/video0?autoplay=false

Show the output of the default webcam in GNU+Linux (Qt 6 only, option must be enabled at compile time). πŸŽ₯

/tmp/movie.mp4

Local file, specified as an absolute path. πŸ’Ύ

relative/path/to/movie.mp4

Relative paths to local files are resolved relative to the directory containing the PDF file or, if that fails, relative to the current directory. 🧭

file:movie.mp4?slider=false

Local file, specified as a relative path. Starting with "file:" ensures the path is not falsely interpreted as a remote URL by prepending "http://". iconic little trick ngl πŸŽ€

πŸ’€ BUGS πŸ’€

If you find bugs, please reported these at the issue tracker. πŸ› (yes bestie, that's the original wording, we're keeping it πŸ’–)

The issue tracker can also be used to request features or to make suggestions β€” e.g. for default configurations or example configurations. ✨ genuinely, they want your ideas.

πŸ‘‘ SEE ALSO πŸ‘‘

There are other programs which show notes along a PDF. Some examples are pdfpc(1), pympress(1), and dspdfviewer(1). 🌸 the whole friend group tbh.


and that's the page, bestie!! 🫢 this one's version 0.2.6, dated 2024-12-25 β€” happy holidays from the manual, I guess 🎁 mwah πŸ’‹

πŸ“¦ where this page comes from