Quick search

Kivy framework

Kivy is an open source library for developing multi-touch applications. It is cross-platform (Linux/OSX/Windows/Android/iOS) and released under the terms of the MIT License.

It comes with native support for many multi-touch input devices, a growing library of multi-touch aware widgets and hardware accelerated OpenGL drawing. Kivy is designed to let you focus on building custom and highly interactive applications as quickly and easily as possible.

With Kivy, you can take full advantage of the dynamic nature of Python. There are thousands of high-quality, free libraries that can be integrated in your application. At the same time, performance-critical parts are implemented using Cython.

See for more information.

kivy.kivy_base_dir = '/home/runner/work/kivy/kivy/kivy'

Kivy directory

kivy.kivy_config_fn = ''

Kivy configuration filename


Call post-configuration of Kivy. This function must be called if you create the window yourself.

kivy.kivy_data_dir = '/home/runner/work/kivy/kivy/kivy/data'

Kivy data directory

kivy.kivy_examples_dir = '/home/runner/work/kivy/kivy/examples'

Kivy examples directory

kivy.kivy_home_dir = ''

Kivy user-home storage directory

kivy.kivy_icons_dir = '/home/runner/work/kivy/kivy/kivy/data/icons/'

Kivy icons config path (don’t remove the last ‘’)

kivy.kivy_options = {'audio_output': ('gstplayer', 'ffpyplayer', 'sdl2', 'avplayer'), 'camera': ('opencv', 'gi', 'avfoundation', 'android', 'picamera'), 'clipboard': ('android', 'winctypes', 'xsel', 'xclip', 'dbusklipper', 'nspaste', 'sdl2', 'dummy', 'gtk3'), 'image': ('tex', 'imageio', 'dds', 'sdl2', 'pil', 'ffpy', 'gif'), 'spelling': ('enchant', 'osxappkit'), 'text': ('pil', 'sdl2', 'sdlttf'), 'video': ('gstplayer', 'ffmpeg', 'ffpyplayer', 'null'), 'window': ('egl_rpi', 'sdl2', 'sdl', 'x11')}

Global settings options for kivy


Register a function to be called when kivy_configure() is called.


Internal use only.

kivy.kivy_shader_dir = '/home/runner/work/kivy/kivy/kivy/data/glsl'

Kivy glsl shader directory

kivy.kivy_usermodules_dir = ''

Kivy user modules directory


Parses the kivy version as described in require() into a 3-tuple of ([x, y, z], ‘rc|a|b|dev|post’, ‘N’) where N is the tag revision. The last two elements may be None.


Require can be used to check the minimum version required to run a Kivy application. For example, you can start your application code like this:

import kivy

If a user attempts to run your application with a version of Kivy that is older than the specified version, an Exception is raised.

The Kivy version string is built like this:


X is the major version
Y is the minor version
Z is the bugfixes revision

The tag is optional, but may be one of ‘.dev’, ‘.post’, ‘a’, ‘b’, or ‘rc’. The tagrevision is the revision number of the tag.


You must not ask for a version with a tag, except -dev. Asking for a ‘dev’ version will just warn the user if the current Kivy version is not a -dev, but it will never raise an exception. You must not ask for a version with a tagrevision.