GithubHelp home page GithubHelp logo

bnavigator / python-xlib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from python-xlib/python-xlib

0.0 0.0 0.0 1.15 MB

XLib in pure Python (Py2/Py3 compatible)

License: GNU Lesser General Public License v2.1

Python 99.78% Awk 0.21% Shell 0.01%

python-xlib's Introduction

The Python X Library

Build Status codecov.io Code Health

Homepage | Releases | Changelog

Copyright

The main part of the code is

Copyright (C) 2000-2002  Peter Liljenberg

Some contributed code is copyrighted by the contributors, in these cases that is indicated in the source files in question.

The Python X Library is released under LGPL v2.1 or later (since 2016), see the file LICENSE for details. 0.15rc1 and before were released under GPL v2.

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

python-xlib's People

Contributors

vasily-v-ryabov avatar benoit-pierre avatar petli avatar mikeggrant avatar svetlanafilicheva avatar forestbond avatar leinardi avatar takluyver avatar whitelynx avatar tkhanova avatar thiagokokada avatar jakogut avatar mgarg1 avatar frafra avatar calroc avatar mwm avatar kwadrat avatar cclauss avatar opoplawski avatar sebelino avatar t-wissmann avatar acrisci avatar nbah22 avatar hbregalad avatar gpatel-fr avatar jan-nabot avatar thomasleveil avatar sporif avatar richrd avatar gerardwx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.