"Presenter Pi" is a little Pi Zero project that is a little gadget that boots into a LibreOffice presentation running in a raw X session straight over HDMI and also via VNC over an ad-hoc wifi hotspot it starts up. Navigation thru the presentation is controlled via a Skywriter pHAT.
- Pi Zero
- SkyWriter pHAT
- Small external phone battery pack
- wifi dongle
- X (no display/window manager needed)
- Skywriter Python library
- tap North -> Start presentation (F5 key)
- tap South -> Finish presentation (Esc key)
- swipe South-to-North -> top of presentation (Home key)
- swipe North-to-South -> end of presentation (End key)
- tap East = swipe East-to-West -> next slide (Page Down key)
- tap West = swipe West-to-East -> previous slide (Page up key)
- tap Centre -> Enter key (in case of odd dialogs)
- tap North, East, South, West -> Reboot ("sudo reboot") (rotate Right = Reboot)
- tap North, West, South, West -> Shutdown ("sudo shutdown -h now")
- Skywriter is a very neat little device, but it does take some practice to reliably trigger the right event every time. It's also very weak at detecting Z-axis (height), so it's best to treat that as a binary event (within 3cm-ish of the surface, or not near it).
- Ad-hoc Wifi network connections are not supported by stock Android phones. Although they technically can handle it, the network manager app explicitly hides any ad-hoc networks
*. That is a really obnoxious move on Google's part. It would literally have been less work for them to support ad-hoc networks, than to cripple their OS. Ah well, rooted devices with alternative network apps cope ok, as do iPhones.
- vncserver needs to know how big an X display you want, since there isn't a physical display to work with. So you'll need to pick a standard screen size that works well for your presentations and any client devices that you expect.
* Yes I know about Wifi Direct being a "new and improved" way of trying to achieve the same end as ad-hoc wifi. That doesn't in any way invalidate the fact that deliberately crippling your software to explicitly break a reasonable use case, that would have worked if you had done less work, is a total arsehole thing to do.