Slideshow provides a framework for slide presentations on Plan 9
using the native draw(2) functions.
You define a function per slide, with optional transitions between them,
and an array of the steps of the presentation.
The accompanying main.c and mkfile
will build a program for your presentation which will allow you to
step forward and backward through slides.
The functions for your slides can use whatever draw functions you like:
basic strings (or my wordwrap function),
arbitrary drawing with
draw(), line(), and friends,
import arbitrary graphics with loadimage(), whatever.
main.c also includes several helper functions to
simplify common tasks and provide a few common slide types.
Slideshow runs on both Plan 9 and Plan 9 from User Space;
for the later, 'cp mkfile.p9p mkfile'.
Like most of my programs which run on both, it checks for
$service being either blank, unset, or set to unix
to detect Plan 9 from User Space, in which case it will use different fonts.
You may have to change the fonts for your local system.
A proper man page is pending.
As shipped, slideshow assumes you have my
wordwrap
installed, located next to the slideshow directory.
If you'd rather not bother with wordwrap, remove the #include up top
and remove or redefine the functions
wrline, wrlines, and footer
(I recommend removing the first two and redefining the last to use
string).
A few presentations are included in the distribution:
To make your own presentation, create a new .c file for it, create one function for a slide, and define steptab[] containing at least that one function; you could copy demo.c and start adding to that.
This is not the fastest way to create a presentation.
For simple, less-formal things on Plan 9,
consider doing it directly in Acme (with appropriate fonts).
slideshow is for when you want to care a bit more
about the visual presentation or want to provide builds, transitions,
or similar slideshow-specific things.
I have tried a few different ways to handle graphics that can handle showing up at different sizes; I don't have a good answer here yet. This is my biggest frustration/limitation in using this today.
It would be nice to provide a way to write slides as plain text (with, say, indentation indicating content under a heading) and provide an awk script or similar to convert those into common slide types. That remains for future work.
Slideshow was largely inspired by Robin Sloan's "tap essay" Fish, which I highly recommend.