beamer-control
Overview
Beamer is a LaTeX class for creating slides for presentations. beamer-control allows you to simultaneously control two PDF viewers to synchronize slides—displayed with a projector—and notes—displayed on a laptop screen. beamer-control uses the AT-SPI accessibility framework to communicate with any compatible viewers, such as evince.
Setup (in the case of the Awesome window manager)
- Ensure you are running
at-spi2-registryd
. - Run
beamer-control
and usexwininfo
to identify its window identifier. - Configure Awesome to treat beamer-control as a floating window; write the following to your Awesome configuration, where
Beamer Control
is the window identifier from the previous step:
awful.rules.rules = {
...
{ rule = { name="Beamer Control", instance = "python3" }, properties = {floating = true}},
...
}
A workflow
- Add the following to your presentation's preamble to ensure every slide has a note, and thus the number of slides and note pages are equal:
\makeatletter
\def\beamer@framenotesbegin{%
\gdef\beamer@noteitems{}%
\gdef\beamer@notes{{}}%
}
\makeatother
- Add the following to allow building either the slides or notes from the command line:
\ifcsname ifshowOnlyNotes\endcsname\else
\expandafter\let\csname ifshowOnlyNotes\expandafter\endcsname
\csname iffalse\endcsname
\fi
\ifshowOnlyNotes
\setbeameroption{show only notes}
\fi
- Build slides with
pdflatex presentation.tex
. - Build notes with
pdflatex --jobname=notes "\let\ifshowOnlyNotes\iftrue\input{presentation}"
. - Open the slides using evince and place them on one screen in presentation mode.
- Open the notes using evince and place them on the other screen in fullscreen mode.
- Run
beamer-control
and place on the notes screen (anywhere but the top-left corner). - Control the presentation by placing the focus on beamer-control and pressing the up or down arrow keys.