Kivy Garden

Welcome to Kivy Garden


This Page is under construction.

This is an organization for developers of Kivy widgets, add-ons and related software.

Join us by opening a new issue.

Memberships are granted for users who have contributed to existing garden flowers in the past year or have submitted their own flower in the application. Please note that memberships expire after a year of inactivity.

General Usage Guidelines

  1. Make sure you have requests installed:

    sudo pip install requests

  2. Install kivy-garden if you don't have it:

    pip install kivy-garden
    Make sure you have the folder that contains garden file on your PATH (or cd to the folder).
    $ garden list
    To list all the installed garden packages
    $ garden search
    To search garden packages on GitHub
    $ garden install package_name
    To install a garden package
    $ garden uninstall package_name
    To uninstall a garden package

  3. To use a installed garden package:

    from import package_name

  4. By default the installation is done in ~/.kivy/garden/garden.widgetname so that all kivy apps can use the widget once installed.

    To include the package in your mobile distribution, you should install the garden package with --app command line argument, this way the package is downloaded and installed in your app directory and thus included in your apk.

    cd my_app_dir
    /path/to/kivy_instalation/kivy/tools/garden install --app graph

    This should install the Graph Widget in my_app_dir/libs/garden/garden.widgetname

Development Guidelines

  1. Code added to the garden must be licensed under MIT (same as Kivy) and a LICENSE file must be added to every repository.
  2. Keep the Widget and add-on simple. Do one task and do it well.
  3. Your repository will be named "garden.widgetname". This will allow us to import your widget by using the following import statement:

    from import WidgetName
  4. Name your widget correctly. Don't put "Widget" in the widget name as this is obvious. (SliderWidget, ProgressBarWidget are wrong, keep it simple.)

  5. Create adequate documentation that explains the functionality of your widget.

  6. Follow the PEP8 guidelines for coding standards.

  7. Follow the kivy guidelines for contributing. To install the pep8 checker into your git directory do

    cp path-to-kivy/kivy/tools/pep8checker/pre-commit.githook path-to-your-source/.git/hooks/pre-commit 
    chmod +x path-to-garden-source/.git/hooks/pre-commit

    Then assuming you have kivy in your path, our style guide check will run whenever you do a commit, and if there are violations in the parts that you changed, your commit will be aborted. Fix & retry.

  8. Use the Monitor module to ensure that your widget can maintain a FPS rate above 60, ensuring smooth interaction with the user.

  9. Follow the performance guidelines for Python, like ensuring minimum lookups, avoiding lookups in loops...

  10. As a way of self-organizing widgets, add a screenshot named "screenshot.png" to the root of your repo showcasing the widget.

  11. Use tags instead of a directory structure to categorize your widgets in the documentation.

Note: you must have a GitHub account to open a ticket. You can create one for free here.

Other issues

For all other issues, please open a ticket in the appropriate repository.

Disabling notification spam

By default you are subscribed to all new Garden github repository notifications. Unless you disable this yourself, your inbox will soon contain only Github spam.

Go to
Select what to watch or uncheck Automatically watch. But attention: latter will disable watch for all organizations.

Transferring repository

How to move your repository to Kivy Garden shared ownership?

About transferring the ownership of repositories. See Github instructions regarding transfers

Personally contact any of the Kivy Garden administrators. Make him/her the owner of the repository which needs to be transferred. If the repository is already part of Github organization then create a new team and make the garden admin person the sole member of this team. Then assign the ownership permission of the repository to the new team. Now the garden administrator can go to the repository settings and press Transfer Ownership button