Presenter
From Tuxisalive
Contents |
[edit] Specifications
- Send keystrokes to X to control any generic application.
- Associated scripts that would follow the presentation progress and animate the presentation with speech, sounds, movements, interaction. The format of the script has to be defined. We could use tags or python here.
- Advanced support of Impress or other special software:
- Mode where tux would read all the text of the slides.
- Tags in the lecture notes could be used to animate tux during the slide using speech, sounds and movements. This would override the use of extra scripts and would not use python.
- Configuration of the slide to use, the application to launch, and the key mapping to use.
- It may be interesting to make a standalone application also.
[edit] List of presentation tools
Here's a list of applications that are used to show presentations and that we may want to support:
- Keynote (MacOS X)
- PDF Presentations
- S5 Simple Standards-Based Slide Show System.
- Keyjnote A fancy PDF presentation tool with smooth page transitions and some really useful features. - This one is promising, written in python and has a bunch of nice features that would be really nice to support from the remote control or .info scripts.
- Indeview - Independent Presentation Viewer for OpenOffice Impress and KOffice KPresenter.
- LaTeX beamer
- Media player (movies, slideshows, ...)
[edit] Key mapping
Describe here the mapping of the keys between tux's buttons and remote and functions. The mapping between the function and each presentation software will be specific to each application and will be in a separate configuration section.
| Function | Main Key | Options |
|---|---|---|
| Quit | ||
| Previous slide | ||
| Next slide | ||
| Play | ||
| Pause | ||
| Restart/Rewind | ||
| Toggle overview mode | ||
| Toggle fullscreen mode | ||
| Display progress | ||
| Take over mouse control | ||
| Release mouse control |
[edit] Sending keystrokes and mouse events to X
Controlling X is the easiest way to support any presentation software like the user would do manually.
The Xtest API seems to be what we want. It comes with any X system and is originally for automated testings of a remote X system. It can deal with keys and mouse events.
TODO: decode on the implementation
[edit] Links
- The Python X Library is a X library for Python which is supposed to do what we need though the project seems pretty dead. It supports the Xtest extension.
- The xautomation project has some utilities to control X from the console. xte is a command line tool that uses the Xtest API.
- Small python script that uses xte to relay keys remotely keyrelay
- pyrobot is a small wrapper for Xtest as a C extension module used in python, no dependencies needed this way.
- This enthought module also uses Xtest with SWIG it seems, see the source code here.
- a2x is designed to interface DragonDictate to the X Window System. a2x converts the ASCII output of DragonDictate into X device events.
[edit] Application specific configurations
- TODO Impress and tags from the lecture notes
- TODO keyjnote and its advanced controls

