Difference between revisions of "Platform Team/Sweets Distribution/Factory/Features"

From Sugar Labs
Jump to navigation Jump to search
Line 26: Line 26:
  
 
* [http://git.sugarlabs.org/server/client client] from {{Code|sugar-client}} package<br>Plugin to initiate various deployment related routines on end user side.
 
* [http://git.sugarlabs.org/server/client client] from {{Code|sugar-client}} package<br>Plugin to initiate various deployment related routines on end user side.
 +
 +
* [http://git.sugarlabs.org/desktop/sugar-proxy-plugin proxy] from {{Code|sugar-proxy-plugin}} package<br>Internet proxy configuration.
  
 
=== Misc ===
 
=== Misc ===

Revision as of 08:01, 12 August 2012

Users oriented

The following features are oriented to end users

Sugar Network integration

By default, Sugar Shell looks the same as in pristine Glucose. To start using Sugar Network related improvements in Shell UI, go to Sweets Distribution component in Control Panel and enable integration checkbox and restart Sugar. After restarting, Sugar Network client will be available from activities tray and by F8 shortkey.

Deployment oriented

The following features are being targeted to Sugar distributors who create downstream solutions based on Sweets Distribution and experienced users who enable these features on their own risk.

Blacklist Shell components

Summary

To make deployment distribution more flexible, Sweets Distribution provides functionality to blacklist usage of particular Shell components. The reason for such blacklisting is that otherwise, the only way is removing unneeded Shell components from the installation directory, i.e., upstream packages need to be patched or post-install procedures should be processed. Blacklisting makes it possible to reuse upstream Shell packages as-is and change only local client configuration.

Blocking rules

The blocking rules should be placed to [blacklist] configuration section. Each section item blacklists particular Shell component:

  • deviceicon
    Space separated list of python files, from deviceicon directory, to disable corresponding device icons;
  • cpsection
    Space separated list of directory names, from cpsection directory, to disable corresponding Control Panel sections;
  • globalkey
    Space separated list of python files, from globalkey directory, to disable corresponding global keys.

Shell plugins

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 search order) directories. Only the first directory will be used in order 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 source, a directory should conform to the following policies:

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

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

After installing, plugins should be enabled from the Plugins Control Panel in the Sugar Shell, or, if this section is disabled, add the plugin name to the plugins setting in the [shell] configuration section. If the plugin has a 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 uploads them to a Sugar Network node.

Factory repository provides the following plugins:

  • telepathy from sugar-telepathy-plugin package
    Alternative implementation of Neighborhood collaboration in Sugar Shell that is assumed to make Telepathy related code more robust.
  • sn from sugar-network-plugin package
    Plugin adds Sugar Network integration to Sugar Shell. It is also working example how to replace original sugar-datastore with new implementation.
  • client from sugar-client package
    Plugin to initiate various deployment related routines on end user side.
  • proxy from sugar-proxy-plugin package
    Internet proxy configuration.

Misc

  • Registration on school servers is disabled by default
    Sugar Shell support registration on OLPC XS school server. Sweets Distribution does not provide OLPS XS and this functionality is disabled by default. To revert original behavior, set /schemas/desktop/sugar/show_register GConf key to true.
  • Closer integration with login managers
    Sugar Shell will reuse language setting from GDM manager, #2603.