Skip to main content

Python X Library

Project description

Build Status codecov.io Code Health

Homepage | Releases | Changelog

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.6.

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.

Documentation

The reference manual is not finished by far, but is probably still useful. It can be browsed online.

There are also some example programs and, of course, the standard X11 documentation applies.

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.

Project details


Release history Release notifications | RSS feed

This version

0.21

Download files

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

Source Distribution

pyxlib-0.21.tar.gz (144.4 kB view details)

Uploaded Source

Built Distribution

pyxlib-0.21-py2.py3-none-any.whl (123.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pyxlib-0.21.tar.gz.

File metadata

  • Download URL: pyxlib-0.21.tar.gz
  • Upload date:
  • Size: 144.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyxlib-0.21.tar.gz
Algorithm Hash digest
SHA256 515e9dc278e345bcc28de250a091c2d2149d7d5ab2d6e2308e963874e4d4aafb
MD5 ff4f8262b94e445123b5f9c5cde7ca02
BLAKE2b-256 50f8480de4f2aa385b0e8de29789dc9f6d0a4af0aafdc9200cdc8a85d74d5e7f

See more details on using hashes here.

File details

Details for the file pyxlib-0.21-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyxlib-0.21-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 63379343249809ed4cdce305c1a1c44cf00c474ad4b077f59ffbdab83139d0ac
MD5 d03c5eca073e158e875a313c740dda1f
BLAKE2b-256 8067169d3566eb1eb0729feb8c0e118b0cad1f036ebde8b1ea567c57f22b89fb

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