Difference between revisions of "Deployment Platform/Shell Plugins"

From Sugar Labs
Jump to navigation Jump to search
(Created page with "== Summary == Plugins are pluggable Sugar Shell code. By design, plugins are not isolated from the rest of shell code and each other, thus, they are assumed to be setup by Su...")
(No difference)

Revision as of 03:35, 12 June 2013

Summary

Plugins are pluggable Sugar Shell code. By design, plugins are not isolated from the rest of shell code and each other, thus, they are assumed to be setup by Sugar distributors or experienced users.

Plugins are Python modules placed in one of the following (sorted by searched order) directories. Only the first one directory will be used at the end to prevent unwanted code collisions between different installation level plugins.

  • ~/.sugar/PROFILE/plugins/PLUGIN_NAME, user-wide plugins.
  • SHELL_INSTALL_PATH/jarabe/plugins/PLUGIN_NAME, system-wide plugins;

To be detected as a plugin sources, directory should conform the following policies:

  • directory should be a regular Python module;
  • __init__.py file from plugin directory should contain required declarations.

Use sugar-example-plugin sources as a template for new plugins.

After installing, plugins should be enabled from Plugins Control Panel in the Sugar Shell, or, if this sections is disabled, add plugin name to plugins setting in the [shell] configuration section. If plugin has configuration UI, it will appear in the same Plugins section.

Existing plugins

  • telepathy from sugar-plugin-telepathy package
    Alternative implementation of Neighborhood collaboration in Sugar Shell, which is assumed to make Telepathy related code more robust.
  • sn from sugar-plugin-sn package
    Plugin adds Sugar Network integration to the Sugar Shell.
  • proxy from the sugar-plugin-proxy package
    Internet proxy configuration.
  • stats from the sugar-plugin-stats package
    Plugin collects usage statistics and upload it a Sugar Network node.