Confession time: I did my defence on daWuzzzz's MacBook. The first reason was that I already had an Apple remote, the second was Keynote's excellent presenter console.
The downside was having to import my LaTeX/Beamer PDF presentation as images into Keynote and fiddling around with movie positioning afterwards.
You can do something like that purely on Linux - excluding the Apple remote :-) - so this post covers 3 topics:
- the PDF presenter console
- a harangue on crappy vector graphics import in OpenOffice and its presenter console
- using python scripts to convert PDF into ODF with page images
Another option along the lines of the Keynote import workaround would be to use Open Office's presenter console extension (openoffice.org-presenter-console from Ubuntu universe, or OOO's extension page) . I tried direct PDF import (openoffice.org-pdfimport, extension page), which was gruesome: the files had to be linearised first (pdftk file1.pdf output file2.pdf) and the imported slides preserved neither fonts nor images. Converting to SVG with pdf2svg and trying libreoffice's SVG import was not much better - this time I got images but a completely messed up page. The presenter console, however, merits some effort, with previews, timer, slide browser and note view.
The last remaining option was to convert the PDF into PNG page images and have them converted to ODP by a python script. I found the excellent pdf2odp script by yc, which edits an ODP template file and has no external dependencies except Imagemagick and zip. I made some small changes (mainly running ghostscript and convert separately, which generates smaller file sizes, see here), the result of which you can download here.
As I had previously found this odfpy photoalbum example, I decided to adapt it for PDF slides (download here) with some inspiration from yc's version. No template file necessary, but additionally dependent on the odfpy module (if you have python-setuptools installed, get it with easy_install odfpy). Usage: pdf2odp.py -w <width> -d <density> <filename>.pdf or pdf2odp.py -h for help.