Perlbox Voice Desktop Plugin

Creating Desktop Plugins for Perlbox Voice

Desktop plugin support for the Perlbox Voice Application Framework was designed so that the creation and extention of plugins would NOT require a degree in computer science. The format of the plugin is very simple; a single file that stores a list of command:response pairs.

Definitions:

Command: This is what the user will 'say' to invoke the computer's 'response'. There are only two basic rules for building command phrases:
1. You must use real words (including most common proper nouns)
2. The phrase MUST begin with the word 'desktop', this way Perlbox Voice knows what type of plugin to push the command through.

Response: This is the action that the computer will perform on hearing a valid command. As before, there are some rules for this section
1. You must use real executable system calls that are valid on the computer
2. The response must be complete, meaning there is no scripting presently (though evironmental variables should work fine).

Examples (from the kde plugin):

desktop one:dcop kwin KWinInterface setCurrentDesktop 1

The command here is desktop one. When the user says desktop one, the computer will execute the command dcop with the arguments kwin KWinInterface setCurrentDesktop 1. Dcop knows what to do with this, and the user will be switched to the first virtual desktop.

Note that the command:response pair are separated by a colon, this is not optional.

Important!

1.) All files must be named name.plug, where name is the name of your plugin.
2.) To insure forward compatability with Perlbox Voice, the first line of the file should begin with a comment describing the plugin (see the example below).

File Locations

Addon plugins should be installed in $HOME/.perlbox-voice/dtplugins/, where $HOME is the users home directory.

Example (from kde.plug)

#kde desktop plugin for perlbox-voice January 2004 by Shane C. Mason (me at perlbox dot org)
desktop one:dcop kwin KWinInterface setCurrentDesktop 1
desktop two:dcop kwin KWinInterface setCurrentDesktop 2
desktop next:dcop kwin KWinInterface nextDesktop
desktop previous:dcop kwin KWinInterface previousDesktop
desktop menu:dcop kicker kicker popupKMenu 100
desktop exit now:dcop kdesktop KDesktopIface logout

We hope that you have found this document useful. Please, feel free to contact us with any questions at me@perlbox.org . January 2004, Shane C. Mason.