beamerpresenter-ui(5)
π NAME π
okay bestie, this is beamerpresenter-ui(5) β yep, the File Formats Manual page for the user interface configuration of BeamerPresenter. This is part 1 of 3, and it's giving layout-tree main character energy already. π«Ά
πΈ GENERAL πΈ
The GUI configuration file is JSON-formatted β¨. It contains a list of widgets, and each widget defines its own window. Every widget is a JSON dictionary. Some widgets provide their own content, and then there are layout widgets β those don't provide their own contents, but they contain a list of child widgets. That's the whole layout tree situation, iykyk. π³
Example configuration files can be found in /usr/share/doc/beamerpresenter/examples/. Go look, bestie. π
π§© arguments shared by all widgets
typename β widget type defined in section WIDGETS. This is the only mandatory argument. Periodt.keyskeyboard shortcut β key combination to set focus to this widget. Example: use"keys":"Ctrl+F"for a search widget. πtitletext β title of the widget, visible only if the widget is shown in a tabbed widget or as a top level widget (own window).colorcolor name / #RRGGBB / #AARRGGBB β background color, color name known to Qt. Some Qt styles may override colors set in the GUI config. π
πͺ arguments for all top level widgets (widgets that are shown as windows)
always showbool β this window should always be shown on top of other windows if the window manager supports that. Default value isfalseexcept if the widget is of type"tool selector". πwidth/heightinteger β default window width or height in pixels. π
π WIDGETS π
π°οΈ clock
clock is a digital clock. This widget lets you start the timer with a double click on the clock or by tapping on the clock on a touch screen. β°
Arguments:
touch inputtrue/false β start/stop the timer by touching the clock. π«Ά
π°οΈ analog clock
This widget lets you start the timer with a double click on the clock or by tapping on the clock on a touch screen. β°
Arguments:
touch inputtrue/false β start/stop the timer by touching the clock.intervalinteger β update interval in milliseconds.secondstrue/false β show/hide hand indicating seconds.hour/minute/second colorcolor β color for hour/minute/second hand.tick colorcolor β color for ticks.small tickstrue/false β show/hide small ticks (6Β° interval).aspectnumber β preferred aspect ratio (width/height) of the widget. Adjust this if the clock is too large or too small. π¦
π notes
Rich text editable notes, bestie. π Notes are included when saving drawings to gzipped xml file (.bpr/.xopp). Alternatively, they can be saved separately in an xml file using the keyboard actions while the notes widget has focus: save notes with Ctrl+S, save under new file name with Ctrl+Shift+S, open from file with Ctrl+O. Currently the notes are saved as HTML string, which is escaped when saving in xml format. This format might change in the future! π
Arguments:
identifier"label"or"number"β notes are associated with a page (number) or a group of pages with the same page label.idβ only required when using multiple distinct notes widgets: unique ID of this widget used when saving or loading notes.zoominteger β zoom step for the widget (defined byQTextEdit).file pathβ path to xml-file to read notes from. The notes file contains a root element<speakernotes>with child elements<page-notes>containing the rich text notes. Each page element has an attribute"label"or"number"to identify a page or a group of pages. Which of"label"or"number"is used must be specified by the attribute"identifier"or the root element.
Example file:
<?xml version="1.0" encoding="UTF-8"?>
<speakernotes identifier="label">
<page-notes label="1">notes on first page
</page-notes>
<page-notes label="2">notes on second page
</page-notes>
</speakernotes>
π search
Search text in PDF document. It jumps to the next slide on which the searched text is found and highlights all occurrences (or up to 20 occurrences when using MuPDF) on this slide. To highlight occurrences of the text on another slide you need to start a new search. The search is case-insensitive. You can use the option "keys":"Ctrl+F" to start a search with Ctrl+F. π
βοΈ settings
Change settings and get help. That's it. That's the widget. π οΈ
π¬ slide
Slide of a presentation. This is the main widget shown to the audience and on the speaker's screen. π
Arguments:
file pathβ PDF file shown in the presentation or alias name. Aliases such as"presentation"or"notes"will be filled with command line arguments or by asking in a file open dialog.shiftinteger β shift slide number relative to the main presentation slide. E.g.shift=1creates a preview of the next slide, which can be shown in the speaker's view.page partleft/right β side of the page to be shown if the pages are split into a left and a right side showing presentation and notes on the same page.media controls = falseβ show/hide a slider to navigate inside a video. π₯show tools = trueβ enable/disable pointing tools.media = trueβ enable/disable multimedia content on this widget. Caution: if multiple widgets show the same slide, the configuration of one of these widgets is used for the other widgets. Switching off multimedia for one widget may also disable multimedia for other widgets.mute = trueβ mute or unmute the slide connected to this widget. By default normal slides are muted and slides marked as"master"are unmuted. Make sure that exactly one slide widget is unmuted in the GUI configuration (typically the presentation slide widget). πtransitions = trueβ enable/disable slide transitions. Caution: if multiple widgets show the same slide, the configuration of one of these widgets is used for the other widgets. Switching off transitions for one widget may also disable transitions for other widgets.autoplay = trueβ automatically play videos on this slide. Caution: if multiple widgets show the same slide, the configuration of one of these widgets is used for the other widgets. Switching off autoplay for one widget may also disable it for other widgets.cache videos = trueβ cache videos before the slide with the video is reached. Caution: if multiple widgets show the same slide, the configuration of one of these widgets is used for the other widgets.draw = trueβ enable/disable drawing on this widget. Caution: if multiple widgets show the same slide, the configuration of one of these widgets is used for the other widgets. Disabling drawing for one widget may disable it also for other ones. βοΈcache hashinteger β integer to identify slide widgets with the same geometry, which should use the same cached slides. Set the same"cache hash"for multiple slides to make them use the same cache. Note that this can also cause problems if the geometry of the widgets is not exactly the same. β οΈthreadsinteger β number of threads used to pre-render pages in cache. Disable pre-rendering by setting this to zero.overlaysfirst/last/none β show only first/last page of each group of pages with the same page label.scroll mode aspectnumber β Experimental: set width / height ratio of scroll view widget. Scroll view means that the page size is not completely fit to the window size. Instead, pages will be shown with fixed width and you probably want to scroll down. See also: actions"scroll down"and similar. π
π·οΈ slide label
Show label of current slide and allow navigation by editing the slide label. π·οΈ
π’ slide number
Show number of current slide and allow navigation by editing this number. π’
πΌοΈ thumbnails
Thumbnail overview of all slides. πΌοΈ
Arguments:
overlaysskip β set this option to"skip"to show only one preview slide for each group of pages with the same page label.columnsinteger β number of columns in which the thumbnail slides are arranged.file path or aliasβ path to PDF document defining which thumbnail images are shown. By default, this is the alias"presentation"for the default file shown to the audience.
β±οΈ timer
Timer for the presentation. Both the total time and the passed time are editable text fields. By double-clicking between these two text fields you can store the passed time (left field) as the target time for the currently visible page. These times per page are stored when saving drawings. The times per page are used to indicate the current progress relative to the planned progress by the background color of the passed time text field. β³
Arguments:
require confirmationbool β ask for confirmation before setting the time for a slide.confirmation defaultbool β when asking for confirmation when setting the time for a slide, this will be the default (accept or cancel). The default value isfalse. β
colormap JSON object
Okay so this one is lowkey the glow-up of the whole timer vibe π
β it lets you customize the function that maps the current time relative to the target time of the current slide onto a color. This JSON object maps times (as integers, in seconds) to colors (e.g. in #rrggbb format). Positive times mean the speaker has that amount of time left π«Ά. Between the times you define in this map, a linear interpolation is used β so it's all smooth, no cap.
Default configuration:
"colormap" : {
"-300" : "#ff0000",
"-90" : "#ffff00",
"0" : "#00ff00",
"90" : "#00ffff",
"300" : "#ffffff"
}
toc
Outline / table of contents β¨ β shows the document outline tree. Very "let me see the whole syllabus" of it, honestly.
Arguments:
- file path or alias β Path to the PDF document defining which outline is shown. By default, this is the alias
"presentation"for the default file shown to the audience.
tools
Shows the current mapping of devices to tools π±οΈπ§ β and you can change the tools using a pop-up dialog. Currently this shows a block of mouse buttons (a touch pad is treated like a mouse), the touch input (if available), and a block of tablet devices (if available). For simple usage this is best combined with a tool selector widget β they're literally a match made in heaven π.
Arguments:
- orientation
horizontal/verticalβ Arrange different devices next to each other or above each other. - mouse devices array β List of devices that are included in the group of mouse devices. Possible values:
"left button","right button","middle button","no button" - tablet devices array β List of devices that are included in the group of tablet devices. Possible values:
"tablet pen","tablet eraser","tablet hover","tablet cursor","tablet mod","tablet other"
tool selector
A grid layout of buttons, bestie β think of it like your fave app's tool palette but make it presentation-core π. It contains a mandatory argument buttons, which must be an array of arrays of buttons. That array of arrays constitutes a matrix defining the arrangement of the buttons. A button can be any of the following:
- string defining an action β Available actions are listed below in section ACTIONS. Pushing an action button is equivalent to sending a keyboard shortcut connected to that action.
- JSON array of strings defining actions β A button can have multiple actions. Slay, multitasking queen π.
- string defining a tool β The tool is created with default settings.
- JSON object defining a tool β The JSON object must have the property
"tool"defining the tool. Available tools and their configuration options are listed below in section TOOLS. - string defining a tool property β A drop down menu for this tool property is created. Available tool properties are:
"color","width"(in points),"shape"(for draw tools),"style"(pen style for draw tools),"brush"(fill pattern for draw tools). - JSON object defining a tool property β The JSON object must have the items
"select":"property"where"property"should be replaced. It should further have the item"list":[...]containing a list of selectable values for the drop down menu.
Examples:
{"select":"color", "list":["red", "green", "blue"]}
{"select":"width", "list":[0.5, 1, 2, 4]}
π«Ά fun fact (well, actual fact): it is possible to select a different tool for a button while BeamerPresenter is running by clicking the button while pressing the ctrl key. But this changes the tool only temporarily, and this modification will not be saved. So don't come crying when it's gone, bestie π
π LAYOUTS π
horizontal
Horizontally arranged child widgets. The relative size of the widgets is determined by their preferred aspect ratios to ensure maximal usage of the screen by slide widgets β¨.
vertical
Vertically arranged child widgets β see horizontal. Same energy, rotated 90Β° π.
stacked
Stacked child widgets, shown in the same place. The currently visible widget can only be selected by keyboard shortcuts defined using the "keys" argument of the subwidgets. iykyk π
tabbed
Similar to stacked widget, but shows the child widgets as tabs, which can be selected using the cursor π
.
Arguments:
- orientation
north/east/south/westβ position of the tab bar.
π₯ ACTIONS π₯
Available actions are:
previousβ navigate to previous pagenextβ navigate to next pagefirstβ navigate to first pagelastβ navigate to last pageupdateβ Update view (technically navigates to current page)next skipping overlayβ Navigate to next page which has a different page label than current pageprevious skipping overlaysβ Navigate to previous page which has a different page label than current pageinsert slideβ Insert a new empty slide that can be used for drawing. Blank canvas era π¨remove slideβ Remove current slide. Restore slides by navigating to the previous slide and inserting a slide.restore slideβ Restore a previously removed slide. If the current slide is a PDF page, try to restore PDF pages before trying to restore non-PDF pages.reloadβ Reload the presentation PDF (if it has been modified).undoβ Undo last drawing action on current pageundo left/rightβ Undo last drawing action on left/right part of current page, assuming that the page is split into a left and right half which represent presentation and notes, respectivelyredoβ Redo last drawing action on current pageredo left/rightβ Redo last drawing action on left/right part of current page, assuming that the page is split into a left and right half which represent presentation and notes, respectivelyclearβ Clear all drawings on the current page.clear left/rightβ Clear all drawings on the left/right part of current page, assuming that the page is split into a left and right half which represent presentation and notes, respectivelyscroll up/normal/downβ Scroll the slide view up / to normal position / down. This allows the presenter to add extra space for drawings."scroll normal"also resets zoom.zoom in/reset/outβ Zoom the slide view. Use the tool"drag view"(experimental) to drag the zoomed view and to zoom using double-click, click and scroll, or touch zoom gestures.saveβ Save drawings to file. Does not ask for file name if a file name is known.save asβ Save drawings to file. Always asks for the file name.openβ Load drawings from file.open unsafeβ Load drawings from file without clearing existing paths.export svgβ Experimental: Export all drawings as SVG images, one image per page. π¦copyβ Copy selected items on currently focused slide to clipboard.pasteβ Paste clipboard on currently focused slide.cutβ Copy selected items on currently focused slide to clipboard and remove them.to foregroundβ Move selected items on currently focused slide to the foreground.to backgroundβ Move selected items on currently focused slide to the background.deleteβ Delete selected items on currently focused slide. πselect allβ Select all items on currently focused slide.clear selectionβ Clear selection on currently focused slide.start/stop/toggle timerβ Start or stop timer in timer widget.reset timerβ Reset the timer (passed time) in timer widget.play/pause/stop mediaβ Start, pause or stop playing multimedia content.mute/unmuteβ Mute or unmute all multimedia content. Media on slides views which are muted in the GUI config are not affected.fullscreenβ Toggle full screen view for currently active window.quitβ Close BeamerPresenter. Ask for confirmation if there are unsaved changes. Note that the detection of unsaved changes is not reliable yet π so maybe save your stuff, bestie.quit unsafeβ Close BeamerPresenter ignoring unsaved changes. Main character energy, zero regrets π
β¨ TOOLS β¨
okay so tools are configured in a JSON object that looks like {"tool":"pen", ...} and then you fill in the configuration options listed below. Some config options are shared across whole groups of tools β like draw tools, for example. Also important: all lengths (stroke width, etc.) are in points (1/72 inch) in the PDF. periodt π
π οΈ Common Options for all tools
these ones work for every single tool, bestie:
colorβ Color name known to Qt or#RRGGBBor#AARRGGBBdeviceβ Device name (e.g."tablet pen","touch"),"all", or"all+"(see alsobeamerpresenter.conf (5)). If this property is set, pushing this button will set the tool for the defined input devices. If this property is not set, then the tool will always be set only for the input device with which the button was pressed.
β General Tools
noneβ No tool or hand tool. Follow hyperlinks and click on videos to start or stop them.drag viewβ Drag and zoom view. Available configuration options:touch-zoombool β Zoom using touch screen pinch gesturescroll"zoom" | "move" | "none"β Effect of scroll wheel (only when the tool is active for a device that supports scrolling)double-click"zoom" | "none"β Effect of double click with left mouse button (only when the tool is active for a device that supports double click)
textβ Add a text field. Configurable options:fontβ Anything that Qt can interpret as a font name.font sizeβ Font size (positive number).
ποΈ Draw Tools
penβ Pen of variable line width if the input device provides pressure information.fixed width penβ Pen of fixed line width.highlighterβ Fixed width pen with default options adjusted for highlighting.
Common options for draw tools
widthβ Stroke width in pt (positive number).fillβ Color to fill the path. Leave empty if paths should not be filled.style = SolidLineβ Pen style for stroking the path. Possible values are"nopen" , "solid", "dash", "dot", "dashdot", and "dashdotdot".brush = SolidPatternβ Filling style of the path, seehttps://doc.qt.io/qt-6/qt.html#BrushStyle-enumfor valid names. Gradients are not allowed.shape = freehandβ Draw this shape instead of a freehand path. Allowed values are"freehand","rectangle","ellipse","line", and"arrow".compositionβ Composition mode, valid values are:"source over"(default for pen),"darken"(default for highlighter),"lighten","difference","plus","multiply","screen","overlay"
π¦ Pointing Tools
eraserβ Erase previously drawn strokes. Option:linewidth = 0β Draw a circle of given line width around the eraser. The circle is only drawn on the currently active widget.
pointerβ Laser pointer.magnifierβ Enlargen the slide in a circular region. Option:scale = 2β Magnification factor (number between0.1and5).
torchβ Highlight parts of the slide by darkening everything else.
Common options for pointing tools
sizeβ Radius of the tool (positive number).
π― Selection Tools
click selectβ Click on items to select them.rectangle selectβ Select items in a rectangular region.freehand selectβ Select items in a drawn region.
π SEE ALSO
go say hi to beamerpresenter(1) and beamerpresenter.conf(5), β theyβre literally right there, bestie π«Ά
this lil page is serving version 0.2.6, dated 2024-12-25 β beamerpresenter-ui(5) forever, no cap πβ¨
π¦ where this page comes from
- nixos 26.05: beamerpresenter 0.2.6
- nixpkgs unstable: beamerpresenter 0.2.6
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms