Skip to main content

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.

The Python X Library will only work on systems that have an X server installed, such as most Linux distros, but will not work on Windows or MacOS.

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, DAMAGE, Generic Event, SECURITY, XFIXES, XInput, XTEST, NV-CONTROL, DPMS and XRes); 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.

Release files for python-xlib 0.33

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-xlib 0.33
File Size Uploaded
python-xlib-0.33.tar.gz 269.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-xlib 0.33
File Interpreter ABI Platform
python_xlib-0.33-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 451.3 kB

Release files / python-xlib-0.33.tar.gz

Download URL python-xlib-0.33.tar.gz
Size 269.1 kB
Tags Source
SHA-256 checksum
How to use checksums
55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32
BLAKE2b-256 checksum
How to use checksums
86f58c0653e5bb54e0cbdfe27bf32d41f27bc4e12faa8742778c17f2a71be2c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/30.4.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/2.7.17

Release files / python_xlib-0.33-py2.py3-none-any.whl

Download URL python_xlib-0.33-py2.py3-none-any.whl
Size 182.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
c3534038d42e0df2f1392a1b30a15a4ff5fdc2b86cfa94f072bf11b10a164398
BLAKE2b-256 checksum
How to use checksums
fcb8ff33610932e0ee81ae7f1269c890f697d56ff74b9f5b2ee5d9b7fa2c5355
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/30.4.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/2.7.17

Release history Release notifications | RSS feed

This release

0.33 This release

2 release files

0.32

2 release files

0.31

2 release files

0.30

2 release files

0.29

2 release files

0.28

2 release files

0.27

2 release files

0.26

2 release files

0.25

2 release files

0.24

2 release files

0.23

2 release files

0.22

2 release files

0.21

2 release files

0.20

2 release files

0.19

2 release files

0.18

2 release files

0.17

3 release files

0.16

3 release files

0.12

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page