{ "info": { "author": "Peter Liljenberg", "author_email": "petli@ctrl-c.liu.se", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: X11 Applications", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: User Interfaces" ], "description": "The Python X Library\n====================\n\n|Build Status| |codecov.io| |Code Health|\n\n`Homepage`_ | `Releases`_ | `Changelog`_\n\nCopyright\n~~~~~~~~~\n\nThe main part of the code is\n\n::\n\n Copyright (C) 2000-2002 Peter Liljenberg\n\nSome contributed code is copyrighted by `the contributors `_,\nin these cases that is indicated in the source files in question.\n\nThe Python X Library is released under LGPL v2.1 or later (since 2016),\nsee the file LICENSE for details. 0.15rc1 and before were released under\nGPL v2.\n\nRequirements\n~~~~~~~~~~~~\n\nThe Python X Library requires Python 2.7 or newer. It has been tested to\nvarious extents with Python 2.7 and 3.3 through 3.6.\n\nInstallation\n~~~~~~~~~~~~\n\nThe Python Xlib uses the standard setuptools package, to install run\nthis command:\n\n::\n\n python setup.py install\n\nSee the command help for details: ``python setup.py install -h``.\n\nAlternatively, you can run programs from the distribution directory, or\nchange the module path in programs.\n\nThere's a simple example program, implemented twice using both the\nhigh-level interface and the low-level protocol.\n\nIntroduction\n~~~~~~~~~~~~\n\nThe Python X Library is intended to be a fully functional X client\nlibrary for Python programs. It is written entirely in Python, in\ncontrast to earlier X libraries for Python (the ancient X extension and\nthe newer plxlib) which were interfaces to the C Xlib.\n\nThis is possible to do since X client programs communicate with the X\nserver via the X protocol. The communication takes place over TCP/IP,\nUnix sockets, DECnet or any other streaming network protocol. The C Xlib\nis merely an interface to this protocol, providing functions suitable\nfor a C environment.\n\nThere are three advantages of implementing a pure Python library:\n\n- Integration: The library can make use of the wonderful object system\n in Python, providing an easy-to-use class hierarchy.\n\n- Portability: The library will be usable on (almost) any computer\n which have Python installed. A C interface could be problematic to\n port to non-Unix systems, such as MS Windows or OpenVMS.\n\n- Maintainability: It is much easier to develop and debug native Python\n modules than modules written in C.\n\nDocumentation\n~~~~~~~~~~~~~\n\nThe reference manual is not finished by far, but is probably still useful. It\ncan be `browsed online `__.\n\nThere are also some `example programs `_ and, of course,\n`the standard X11 documentation `__ applies.\n\n\nProject status\n~~~~~~~~~~~~~~\n\nThe low-level protocol is complete, implementing client-side X11R6. The\nhigh-level object oriented interface is also fully functional. It is\npossible to write client applications with the library. Currently, the\nonly real application using Python Xlib is the window manager PLWM,\nstarting with version 2.0.\n\nThere is a resource database implementation, ICCCM support and a\nframework for adding X extension code. Several extensions have been\nimplemented; (RECORD, SHAPE, Xinerama, Composite, RANDR, and XTEST)\npatches for additions are very welcome.\n\nThere are most likely still bugs, but the library is at least stable\nenough to run PLWM. A continuously bigger part of the library is covered\nby regression tests, improving stability.\n\nThe documentation is still quite rudimentary, but should be of some help\nfor people programming with the Xlib. X beginners should first find some\ngeneral texts on X. A very good starting point is\nhttp://www.rahul.net/kenton/xsites.html\n\nSee the file TODO for a detailed list of what is missing, approximately\nordered by importance.\n\n.. _Homepage: https://github.com/python-xlib/python-xlib\n.. _Releases: https://github.com/python-xlib/python-xlib/releases\n.. _Changelog: https://github.com/python-xlib/python-xlib/tree/master/CHANGELOG.md\n.. _Contributors: https://github.com/python-xlib/python-xlib/graphs/contributors\n.. _Examples: https://github.com/python-xlib/python-xlib/tree/master/examples\n\n.. |Build Status| image:: https://travis-ci.org/python-xlib/python-xlib.svg?branch=master\n :target: https://travis-ci.org/python-xlib/python-xlib\n.. |codecov.io| image:: https://codecov.io/github/python-xlib/python-xlib/coverage.svg?branch=master\n :target: https://codecov.io/github/python-xlib/python-xlib?branch=master\n.. |Code Health| image:: https://landscape.io/github/python-xlib/python-xlib/master/landscape.svg?style=flat\n :target: https://landscape.io/github/python-xlib/python-xlib/master\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/python-xlib/python-xlib/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/python-xlib/python-xlib", "keywords": "windows,x,x11,xlib", "license": "LGPLv2+", "maintainer": "", "maintainer_email": "", "name": "python-xlib", "package_url": "https://pypi.org/project/python-xlib/", "platform": "", "project_url": "https://pypi.org/project/python-xlib/", "project_urls": { "Download": "https://github.com/python-xlib/python-xlib/releases", "Homepage": "https://github.com/python-xlib/python-xlib" }, "release_url": "https://pypi.org/project/python-xlib/0.25/", "requires_dist": [ "six (>=1.10.0)" ], "requires_python": "", "summary": "Python X Library", "version": "0.25" }, "last_serial": 4775751, "releases": { "0.12": [], "0.16": [ { "comment_text": "", "digests": { "md5": "9dd3f88d354536025161ccc902070770", "sha256": "f6d66954eef4f18e423c4645c62db996160ed7dad38139df5942a7d2e69500c3" }, "downloads": -1, "filename": "python_xlib-0.16-py2-none-any.whl", "has_sig": true, "md5_digest": "9dd3f88d354536025161ccc902070770", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 118899, "upload_time": "2016-07-16T19:21:21", "url": "https://files.pythonhosted.org/packages/bc/7a/ecdca237146993fbf988e78b0c7408d3b2bd8578496e9982c9cba2603e68/python_xlib-0.16-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "379107824aff037322b220fc444cf9ff", "sha256": "ecd265868e2a91d93c49dbafe2d0ec303749b958cac9059dcfe1d4cd19e96065" }, "downloads": -1, "filename": "python_xlib-0.16-py3-none-any.whl", "has_sig": true, "md5_digest": "379107824aff037322b220fc444cf9ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 118905, "upload_time": "2016-07-16T19:21:23", "url": "https://files.pythonhosted.org/packages/f6/11/a31b6ff171065f4e700914289036a1154dd8bfcb6b6e4c06a56c4052367f/python_xlib-0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c60db93fd6d535d24a2bb4cc3e39e9f2", "sha256": "b22f543ec065e6717e30385d9583bd3dae75efd2c6c9fd730631dc01bd9d16e2" }, "downloads": -1, "filename": "python-xlib-0.16.tar.gz", "has_sig": true, "md5_digest": "c60db93fd6d535d24a2bb4cc3e39e9f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 229986, "upload_time": "2016-07-16T19:22:21", "url": "https://files.pythonhosted.org/packages/ff/8e/0b63c8a086ca6bbbf0eafae1aa8e194ee63203c3f655f6e6c4ed24228646/python-xlib-0.16.tar.gz" } ], "0.17": [ { "comment_text": "", "digests": { "md5": "c741c77e760abeb08873b70780fac3e9", "sha256": "0305946e68078078c5dbb75c961e6e8f5b92f64bc976f0eef668eaa9965995ca" }, "downloads": -1, "filename": "python_xlib-0.17-py2-none-any.whl", "has_sig": true, "md5_digest": "c741c77e760abeb08873b70780fac3e9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 119258, "upload_time": "2016-08-10T13:57:06", "url": "https://files.pythonhosted.org/packages/71/ca/0ecaa43b4403b9e56595190c6f2b93aae583fa189bb9acb61b57e75644c6/python_xlib-0.17-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "babd8a1dd7ded2ce08050dd9c50d3cf0", "sha256": "51a0fa5575722d82c0968bdb52b6b07afb97f76069f5b8d6a0cef8c6ad75bccb" }, "downloads": -1, "filename": "python_xlib-0.17-py3-none-any.whl", "has_sig": true, "md5_digest": "babd8a1dd7ded2ce08050dd9c50d3cf0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 119262, "upload_time": "2016-08-10T13:57:09", "url": "https://files.pythonhosted.org/packages/5e/f6/1235775fe2a5cc0d788787b97b5911b208d2e093cc03d15a38175d53788b/python_xlib-0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b392bac1e634f605aa4dac3128dab95", "sha256": "600e820e340528184a873c5c4dccc67d7e4c34d658606fffadb02f32b5edd38a" }, "downloads": -1, "filename": "python-xlib-0.17.tar.bz2", "has_sig": true, "md5_digest": "8b392bac1e634f605aa4dac3128dab95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 185804, "upload_time": "2016-08-10T13:57:12", "url": "https://files.pythonhosted.org/packages/d4/1b/a1ed5a5b47a6b4a1de029a157b61acf784e2fe8cf165fb6e32c627caa790/python-xlib-0.17.tar.bz2" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "d642624c44b0db855b611b1740bb8eb9", "sha256": "05a29952227d40a76f1ae2ac9033f418b1f16afc39bc2ff4acacd12af2eed186" }, "downloads": -1, "filename": "python_xlib-0.18-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d642624c44b0db855b611b1740bb8eb9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 119509, "upload_time": "2016-11-23T14:17:20", "url": "https://files.pythonhosted.org/packages/d9/b3/189b3c786f41d416fddd90195b31d4b0031468bfd7b2392e5a3a9ccce393/python_xlib-0.18-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b54349fd0f3f6b9cbabf3a3303743758", "sha256": "a4b05187cc850e49c1c8c683d89dd2a93fcbf07a7029d1db929a4c1591617ad7" }, "downloads": -1, "filename": "python-xlib-0.18.tar.bz2", "has_sig": true, "md5_digest": "b54349fd0f3f6b9cbabf3a3303743758", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186862, "upload_time": "2016-11-23T14:17:24", "url": "https://files.pythonhosted.org/packages/fa/13/30ba501a3a92ceb35155798aa08f94cab15ca89a28deebcbbbc950c7c732/python-xlib-0.18.tar.bz2" } ], "0.19": [ { "comment_text": "", "digests": { "md5": "eca5a5410a7090ab91263d11ac1340dc", "sha256": "5b372dbb7430b0a301538134eef60e4860b183f401fa660aecb5c2d10dc62969" }, "downloads": -1, "filename": "python_xlib-0.19-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "eca5a5410a7090ab91263d11ac1340dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 119692, "upload_time": "2017-02-20T16:25:54", "url": "https://files.pythonhosted.org/packages/30/0a/ce07aa90f5086a643f70407769989162959147d14c871cba0e3822c8bc7a/python_xlib-0.19-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81f26828fc4ccdcfae8e95de6409d129", "sha256": "10ba17a7b2aea9f6a7fb0b87caa284383389cf867ba9d31619246577b8cc3408" }, "downloads": -1, "filename": "python-xlib-0.19.tar.bz2", "has_sig": true, "md5_digest": "81f26828fc4ccdcfae8e95de6409d129", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188359, "upload_time": "2017-02-20T16:25:56", "url": "https://files.pythonhosted.org/packages/48/9a/bcf41728a0a81b3d76e2a873296c2912300c653f9e6453c760a50bd2ef93/python-xlib-0.19.tar.bz2" } ], "0.20": [ { "comment_text": "", "digests": { "md5": "fcf651a3ce6e480ce9d56465f03537e3", "sha256": "ae343ad036f2ed5b718ece9ff74c30074a0c890d8062ca32b044c54f17e7ab31" }, "downloads": -1, "filename": "python_xlib-0.20-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "fcf651a3ce6e480ce9d56465f03537e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 119873, "upload_time": "2017-09-07T12:28:18", "url": "https://files.pythonhosted.org/packages/85/0a/61acf21c50730dbea320e7dba85f6c68fd4de237d4f31e71ad926cb4cff0/python_xlib-0.20-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6977adf91852bc52bcb791f1eed49637", "sha256": "6c61c6424d7861fe50279e5ff574481f4a9a0ea9c79eb0191aa5f5b3d4471c30" }, "downloads": -1, "filename": "python-xlib-0.20.tar.bz2", "has_sig": true, "md5_digest": "6977adf91852bc52bcb791f1eed49637", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187157, "upload_time": "2017-09-07T12:28:21", "url": "https://files.pythonhosted.org/packages/dc/35/8700b1b53a1bc38a892dd72734eb27c37947e625658531f62a95360abdf8/python-xlib-0.20.tar.bz2" } ], "0.21": [ { "comment_text": "", "digests": { "md5": "66fd1b7bfbe650f6612501f1545596f0", "sha256": "9225b06548858f103247d072ba9c515dd79adfe4ab1cc20e648493d409c0c187" }, "downloads": -1, "filename": "python_xlib-0.21-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "66fd1b7bfbe650f6612501f1545596f0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 123864, "upload_time": "2017-12-05T15:14:24", "url": "https://files.pythonhosted.org/packages/ec/83/b6be3ed4877bef67ace97e363240e4d5ef7327d95b0fa3190fba6c300aed/python_xlib-0.21-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cdf342aa145c2be0ccae46cfb7b62551", "sha256": "25aad0056172920552c01a163e979b02336abaf47b0792dae9c93ecb29500431" }, "downloads": -1, "filename": "python-xlib-0.21.tar.bz2", "has_sig": true, "md5_digest": "cdf342aa145c2be0ccae46cfb7b62551", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172625, "upload_time": "2017-12-05T15:14:26", "url": "https://files.pythonhosted.org/packages/eb/de/b0eaaea7b8512dc41504db071824eef30293ff55c58d83081ebaebe85a38/python-xlib-0.21.tar.bz2" } ], "0.22": [ { "comment_text": "", "digests": { "md5": "2e8d3c3f56663e4b8e2f427d734f9364", "sha256": "ce8fa6cea1ae8289683c34a8cd61364446c636e4e49e16953b7ee76d761eed23" }, "downloads": -1, "filename": "python_xlib-0.22-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e8d3c3f56663e4b8e2f427d734f9364", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 123909, "upload_time": "2018-03-16T19:59:08", "url": "https://files.pythonhosted.org/packages/1d/28/e4f4ec23844220cd1527d4b8b0a7900356ce0b002454cf17b3e2e3cf3c41/python_xlib-0.22-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e21190582c8372d2719a1f5e4b9dc2d", "sha256": "42dece002a6d6b5f864c11e65decdf1e78f498023551bab45c1cb133bb65cfc1" }, "downloads": -1, "filename": "python-xlib-0.22.tar.bz2", "has_sig": false, "md5_digest": "6e21190582c8372d2719a1f5e4b9dc2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172730, "upload_time": "2018-03-16T19:59:10", "url": "https://files.pythonhosted.org/packages/03/6c/57a7194df25ed72ac27c96e3761e34f7379f430e2863a00f28904a2dff86/python-xlib-0.22.tar.bz2" } ], "0.23": [ { "comment_text": "", "digests": { "md5": "842362cd6903f083caa4e230eacd72c4", "sha256": "2ffa01fa51bdf53842fa4e3f9e2501f8147d4abf546a83e9c2b091982da2e1a8" }, "downloads": -1, "filename": "python_xlib-0.23-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "842362cd6903f083caa4e230eacd72c4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 123910, "upload_time": "2018-03-23T21:17:38", "url": "https://files.pythonhosted.org/packages/54/44/e56454e3ce8fd2333e635d704e157e9cc432a375ab6b680e3c98dd7c3bc0/python_xlib-0.23-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "793509fdc158543c2caa59f34bcac34d", "sha256": "c3deb8329038620d07b21be05673fa5a495dd8b04a2d9f4dca37a3811d192ae4" }, "downloads": -1, "filename": "python-xlib-0.23.tar.bz2", "has_sig": false, "md5_digest": "793509fdc158543c2caa59f34bcac34d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172744, "upload_time": "2018-03-23T21:17:39", "url": "https://files.pythonhosted.org/packages/a6/16/921856f28afc5de6886e4297f2bb29088b5ada16b72dac595b143a740380/python-xlib-0.23.tar.bz2" } ], "0.24": [ { "comment_text": "", "digests": { "md5": "73c1b64fc83cc03bce34390f0f3938fe", "sha256": "2772d194e22e644de67e6353ef8432e49bafce1e1e661f0d9ea1a3c7f77f3ba0" }, "downloads": -1, "filename": "python_xlib-0.24-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "73c1b64fc83cc03bce34390f0f3938fe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 121077, "upload_time": "2019-01-27T17:52:50", "url": "https://files.pythonhosted.org/packages/3d/88/c247930a5525cb0b4605bb7371baadedca2c079cdd98235e7f0c6d98014c/python_xlib-0.24-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8da6a2181b1f10b9a9131cb54d6bb055", "sha256": "7ecf32b18b59be2c06848410bae848792ead119ac31084f487730581b3ab598c" }, "downloads": -1, "filename": "python-xlib-0.24.tar.bz2", "has_sig": false, "md5_digest": "8da6a2181b1f10b9a9131cb54d6bb055", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 170949, "upload_time": "2019-01-27T17:52:53", "url": "https://files.pythonhosted.org/packages/0f/da/44bbc26349a243259dc591a6ea1ad1d812f284bd732bcb60b507a312e838/python-xlib-0.24.tar.bz2" } ], "0.25": [ { "comment_text": "", "digests": { "md5": "6b8055e2a382fdbbe2b453e275dada39", "sha256": "cdc806892f28fcd2c52e22a646c2ae3af3f0539cbbacfe7b344231d75eb96095" }, "downloads": -1, "filename": "python_xlib-0.25-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6b8055e2a382fdbbe2b453e275dada39", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 165690, "upload_time": "2019-02-03T21:26:49", "url": "https://files.pythonhosted.org/packages/f7/91/9f794491d1a8b810a9d4bb8fc9766a98354cb62bd6990685032b00f87001/python_xlib-0.25-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ded820dc8e943106bd660801ed7a82f7", "sha256": "204f280b549352af6cbdaff43405186822ae05749518dd9be209bd88a0088f99" }, "downloads": -1, "filename": "python-xlib-0.25.tar.bz2", "has_sig": false, "md5_digest": "ded820dc8e943106bd660801ed7a82f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204578, "upload_time": "2019-02-03T21:26:54", "url": "https://files.pythonhosted.org/packages/3c/d9/51fc07ae57f6a44e62e2ee04bd501d763ac169ff05c838403ec7ae556992/python-xlib-0.25.tar.bz2" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b8055e2a382fdbbe2b453e275dada39", "sha256": "cdc806892f28fcd2c52e22a646c2ae3af3f0539cbbacfe7b344231d75eb96095" }, "downloads": -1, "filename": "python_xlib-0.25-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6b8055e2a382fdbbe2b453e275dada39", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 165690, "upload_time": "2019-02-03T21:26:49", "url": "https://files.pythonhosted.org/packages/f7/91/9f794491d1a8b810a9d4bb8fc9766a98354cb62bd6990685032b00f87001/python_xlib-0.25-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ded820dc8e943106bd660801ed7a82f7", "sha256": "204f280b549352af6cbdaff43405186822ae05749518dd9be209bd88a0088f99" }, "downloads": -1, "filename": "python-xlib-0.25.tar.bz2", "has_sig": false, "md5_digest": "ded820dc8e943106bd660801ed7a82f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204578, "upload_time": "2019-02-03T21:26:54", "url": "https://files.pythonhosted.org/packages/3c/d9/51fc07ae57f6a44e62e2ee04bd501d763ac169ff05c838403ec7ae556992/python-xlib-0.25.tar.bz2" } ] }