Skip to main content

Python X Library

Project description

Build Status codecov.io Code Health

The Python X Library

Requirements

The Python X Library requires Python 2.7 or newer. It has been tested to various extents with Python 2.7 and 3.3 through 3.5.

Installation

The Python Xlib uses the standard setuptools package, to install run this command:

python setup.py install

See the command help for details: python setup.py install -h.

Alternatively, you can run programs from the distribution directory, or change the module path in programs.

There’s a simple example program, implemented twice using both the high-level interface and the low-level protocol.

Introduction

The Python X Library is intended to be a fully functional X client library for Python programs. It is written entirely in Python, in contrast to earlier X libraries for Python (the ancient X extension and the newer plxlib) which were interfaces to the C Xlib.

This is possible to do since X client programs communicate with the X server via the X protocol. The communication takes place over TCP/IP, Unix sockets, DECnet or any other streaming network protocol. The C Xlib is merely an interface to this protocol, providing functions suitable for a C environment.

There are three advantages of implementing a pure Python library:

  • Integration: The library can make use of the wonderful object system in Python, providing an easy-to-use class hierarchy.

  • Portability: The library will be usable on (almost) any computer which have Python installed. A C interface could be problematic to port to non-Unix systems, such as MS Windows or OpenVMS.

  • Maintainability: It is much easier to develop and debug native Python modules than modules written in C.

Project status

The low-level protocol is complete, implementing client-side X11R6. The high-level object oriented interface is also fully functional. It is possible to write client applications with the library. Currently, the only real application using Python Xlib is the window manager PLWM, starting with version 2.0.

There is a resource database implementation, ICCCM support and a framework for adding X extension code. Several extensions have been implemented; (RECORD, SHAPE, Xinerama, Composite, RANDR, and XTEST) patches for additions are very welcome.

There are most likely still bugs, but the library is at least stable enough to run PLWM. A continuously bigger part of the library is covered by regression tests, improving stability.

The documentation is still quite rudimentary, but should be of some help for people programming with the Xlib. X beginners should first find some general texts on X. A very good starting point is http://www.rahul.net/kenton/xsites.html

See the file TODO for a detailed list of what is missing, approximately ordered by importance.

Contact information

Author email: Peter Liljenberg petli@ctrl-c.liu.se

Mailing list: http://sourceforge.net/mail/?group_id=10350

The Python X Library is a SourceForged project (currently migrating to GitHub). The project page is http://sourceforge.net/projects/python-xlib/. Source is available from that page as zip archive and from the releases list.

There isn’t any real web page yet, only a derivative of this file. It is located at http://python-xlib.sourceforge.net/. It now also features the documentation for downloading or browsing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-xlib-0.17.tar.bz2 (185.8 kB view details)

Uploaded Source

Built Distributions

python_xlib-0.17-py3-none-any.whl (119.3 kB view details)

Uploaded Python 3

python_xlib-0.17-py2-none-any.whl (119.3 kB view details)

Uploaded Python 2

File details

Details for the file python-xlib-0.17.tar.bz2.

File metadata

  • Download URL: python-xlib-0.17.tar.bz2
  • Upload date:
  • Size: 185.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for python-xlib-0.17.tar.bz2
Algorithm Hash digest
SHA256 600e820e340528184a873c5c4dccc67d7e4c34d658606fffadb02f32b5edd38a
MD5 8b392bac1e634f605aa4dac3128dab95
BLAKE2b-256 d41ba1ed5a5b47a6b4a1de029a157b61acf784e2fe8cf165fb6e32c627caa790

See more details on using hashes here.

File details

Details for the file python_xlib-0.17-py3-none-any.whl.

File metadata

File hashes

Hashes for python_xlib-0.17-py3-none-any.whl
Algorithm Hash digest
SHA256 51a0fa5575722d82c0968bdb52b6b07afb97f76069f5b8d6a0cef8c6ad75bccb
MD5 babd8a1dd7ded2ce08050dd9c50d3cf0
BLAKE2b-256 5ef61235775fe2a5cc0d788787b97b5911b208d2e093cc03d15a38175d53788b

See more details on using hashes here.

File details

Details for the file python_xlib-0.17-py2-none-any.whl.

File metadata

File hashes

Hashes for python_xlib-0.17-py2-none-any.whl
Algorithm Hash digest
SHA256 0305946e68078078c5dbb75c961e6e8f5b92f64bc976f0eef668eaa9965995ca
MD5 c741c77e760abeb08873b70780fac3e9
BLAKE2b-256 71ca0ecaa43b4403b9e56595190c6f2b93aae583fa189bb9acb61b57e75644c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page