Place here Python modules with plugins.
Each Python module should contain at least the following attributes.

Required attributes:

  * `ORDER` constant.
    Plugins with smaller `ORDER` will be initiated and started earlier

  * `init()` function to initialize the plugin.
    This function will be called before Shell initialization phase, so,
    it is possible to put here a monkey patcing code.

  * `start()` function to start the plugin
    Actual starting the plugin. This function will be called when Shell starts
    heavy code like Journal.

Optional attributes:

  * `TITLE` constant.
    This title will appear in "Plugins" Control Panel component to let user
    a chnace to enable, or, disable the plugin. If `TITLE` is omitted,
    plugin will be enabled unconditionally.

  * `control_panel_section()` function to create Control Panel sub-section.
    If exists, it should return a widget to place to "Plugins" Control Panel
    section to configure the plugin. Returing widget should take care about
    reading/writing plugin configuration on its own and should assume applying
    configuration changes right after making them, i.e., without any apply
    buttons. The regular way to handle plugin configuration is using
    `Option` class like `example plugin`_ does.

  * `binding()` function to return a list of Posix shell commands.
    Resulting lines will be sourced before starting Sugar Shell process.
    Note that sourcing will happen before starting DBus session.

  * `online_schedule()` function to trigger on getting online.
    The function will be called after (there is hardcoded, 3min by default,
    delay to avoid overloading the system on startup) the system will be
    connected to the network. If function return a positive integer, the call
    will be repeated in specified number of seconds.

Optional directories:

  * `locale/`
    Compiled locale files for `sugar-plugin-<PLUGIN_NAME>` domain.


.. _example plugin: https://git.sugarlabs.org/desktop/sugar-example-plugin
