Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Latest commit

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Python X Library
*** 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 GPL, see the file COPYING for
details.
*** Requirements
The Python X Library requires Python 1.5.2 or newer. It has been
tested to various extents with Pythons 1.5.2, 2.0 - 2.5.
*** Installation
The Python Xlib uses the standard distutils to make installation
easy. Distutils is shipped with Python 1.6 and newer. Python 1.5.2
users must download and install distutils before Python Xlib can be
installed. Distutils can be downloaded from
http://www.python.org/sigs/distutils-sig/.
Install Python Xlib by running this command:
python setup.py install
Installation can be modified with the normal install options, see the
documentation of distutils for details.
Alternatively, you can run programs from the distribution directory,
or changing 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. Currently only the XTEST
extension has been implemented.
There are most likely still bugs, but the library is at least stable
enough to run PLWM. A continously 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. The project page is
http://sourceforge.net/projects/python-xlib/. Source is available
from that page as tar.gz-releases and from the CVS tree.
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.

About

My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - Ademan/python-xlib-branch: My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished. · GitHub
Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Latest commit

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Python X Library
*** 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 GPL, see the file COPYING for
details.
*** Requirements
The Python X Library requires Python 1.5.2 or newer. It has been
tested to various extents with Pythons 1.5.2, 2.0 - 2.5.
*** Installation
The Python Xlib uses the standard distutils to make installation
easy. Distutils is shipped with Python 1.6 and newer. Python 1.5.2
users must download and install distutils before Python Xlib can be
installed. Distutils can be downloaded from
http://www.python.org/sigs/distutils-sig/.
Install Python Xlib by running this command:
python setup.py install
Installation can be modified with the normal install options, see the
documentation of distutils for details.
Alternatively, you can run programs from the distribution directory,
or changing 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. Currently only the XTEST
extension has been implemented.
There are most likely still bugs, but the library is at least stable
enough to run PLWM. A continously 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. The project page is
http://sourceforge.net/projects/python-xlib/. Source is available
from that page as tar.gz-releases and from the CVS tree.
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.

About

My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Ademan/python-xlib-branch: My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished. · GitHub
Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Latest commit

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Python X Library
*** 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 GPL, see the file COPYING for
details.
*** Requirements
The Python X Library requires Python 1.5.2 or newer. It has been
tested to various extents with Pythons 1.5.2, 2.0 - 2.5.
*** Installation
The Python Xlib uses the standard distutils to make installation
easy. Distutils is shipped with Python 1.6 and newer. Python 1.5.2
users must download and install distutils before Python Xlib can be
installed. Distutils can be downloaded from
http://www.python.org/sigs/distutils-sig/.
Install Python Xlib by running this command:
python setup.py install
Installation can be modified with the normal install options, see the
documentation of distutils for details.
Alternatively, you can run programs from the distribution directory,
or changing 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. Currently only the XTEST
extension has been implemented.
There are most likely still bugs, but the library is at least stable
enough to run PLWM. A continously 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. The project page is
http://sourceforge.net/projects/python-xlib/. Source is available
from that page as tar.gz-releases and from the CVS tree.
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.

About

My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Ademan/python-xlib-branch: My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished. · GitHub
Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Latest commit

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Python X Library
*** 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 GPL, see the file COPYING for
details.
*** Requirements
The Python X Library requires Python 1.5.2 or newer. It has been
tested to various extents with Pythons 1.5.2, 2.0 - 2.5.
*** Installation
The Python Xlib uses the standard distutils to make installation
easy. Distutils is shipped with Python 1.6 and newer. Python 1.5.2
users must download and install distutils before Python Xlib can be
installed. Distutils can be downloaded from
http://www.python.org/sigs/distutils-sig/.
Install Python Xlib by running this command:
python setup.py install
Installation can be modified with the normal install options, see the
documentation of distutils for details.
Alternatively, you can run programs from the distribution directory,
or changing 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. Currently only the XTEST
extension has been implemented.
There are most likely still bugs, but the library is at least stable
enough to run PLWM. A continously 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. The project page is
http://sourceforge.net/projects/python-xlib/. Source is available
from that page as tar.gz-releases and from the CVS tree.
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.

About

My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - Ademan/python-xlib-branch: My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished. · GitHub
Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Latest commit

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Python X Library
*** 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 GPL, see the file COPYING for
details.
*** Requirements
The Python X Library requires Python 1.5.2 or newer. It has been
tested to various extents with Pythons 1.5.2, 2.0 - 2.5.
*** Installation
The Python Xlib uses the standard distutils to make installation
easy. Distutils is shipped with Python 1.6 and newer. Python 1.5.2
users must download and install distutils before Python Xlib can be
installed. Distutils can be downloaded from
http://www.python.org/sigs/distutils-sig/.
Install Python Xlib by running this command:
python setup.py install
Installation can be modified with the normal install options, see the
documentation of distutils for details.
Alternatively, you can run programs from the distribution directory,
or changing 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. Currently only the XTEST
extension has been implemented.
There are most likely still bugs, but the library is at least stable
enough to run PLWM. A continously 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. The project page is
http://sourceforge.net/projects/python-xlib/. Source is available
from that page as tar.gz-releases and from the CVS tree.
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.

About

My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Ademan/python-xlib-branch: My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished. · GitHub
Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Latest commit

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Python X Library
*** 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 GPL, see the file COPYING for
details.
*** Requirements
The Python X Library requires Python 1.5.2 or newer. It has been
tested to various extents with Pythons 1.5.2, 2.0 - 2.5.
*** Installation
The Python Xlib uses the standard distutils to make installation
easy. Distutils is shipped with Python 1.6 and newer. Python 1.5.2
users must download and install distutils before Python Xlib can be
installed. Distutils can be downloaded from
http://www.python.org/sigs/distutils-sig/.
Install Python Xlib by running this command:
python setup.py install
Installation can be modified with the normal install options, see the
documentation of distutils for details.
Alternatively, you can run programs from the distribution directory,
or changing 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. Currently only the XTEST
extension has been implemented.
There are most likely still bugs, but the library is at least stable
enough to run PLWM. A continously 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. The project page is
http://sourceforge.net/projects/python-xlib/. Source is available
from that page as tar.gz-releases and from the CVS tree.
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.

About

My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - Ademan/python-xlib-branch: My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished. · GitHub
Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Latest commit

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Python X Library
*** 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 GPL, see the file COPYING for
details.
*** Requirements
The Python X Library requires Python 1.5.2 or newer. It has been
tested to various extents with Pythons 1.5.2, 2.0 - 2.5.
*** Installation
The Python Xlib uses the standard distutils to make installation
easy. Distutils is shipped with Python 1.6 and newer. Python 1.5.2
users must download and install distutils before Python Xlib can be
installed. Distutils can be downloaded from
http://www.python.org/sigs/distutils-sig/.
Install Python Xlib by running this command:
python setup.py install
Installation can be modified with the normal install options, see the
documentation of distutils for details.
Alternatively, you can run programs from the distribution directory,
or changing 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. Currently only the XTEST
extension has been implemented.
There are most likely still bugs, but the library is at least stable
enough to run PLWM. A continously 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. The project page is
http://sourceforge.net/projects/python-xlib/. Source is available
from that page as tar.gz-releases and from the CVS tree.
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.

About

My (Ademan's) changes to python-xlib, will hopefully be contributed back to python-xlib when finished.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages