PyWayland provides a wrapper to the libwayland
library using the CFFI
library to provide access to the Wayland library calls and written in pure
Python.
Below is outlined some of the basics of PyWayland and how to get up and running. For more help, see the full documentation.
PyWayland is still in a developmental state. An current version is available on the cheese shop. Current development versions can be obtained from the git repository, feedback, as well as any bug reports or fixes are highly appreciated.
Installing PyWayland requires the Wayland library and the headers to be installed.
PyWayland requires the cffi package to be installed. PyWayland runs and is tested against Python 3.6+, including sufficient versions of PyPy3 (see Running Tests).
See the installation guide for more information on installing required dependencies
Installation can be done through pip to pull the most recently tagged release. To see instructions on running from source, see the relevant documentation on installing from source.
In order to run from source, you will need to generate the interfaces to the
Wayland protocol objects as defined in the wayland.xml file. By default, this
file will be located in /usr/share/wayland/wayland.xml
. In this case, the
protocol files can be generated by the scanner module:
$ python -m pywayland.scanner
See the help for this module to use non-default locations for the input and output of the scanner.
The scanner is installed as a script pywayland-scanner
when PyWayland is
installed. See pywayland-scanner -h
for more information.
PyWayland implements a (currently limited) test-suite in ./tests
. The
tests can be run through pytest
. Be sure you build the protocol files (see
Building Wayland protocols) before running the tests.