NEWS for Python X Library
Version 0.33
============
Bug Fixes
---------
- Removed unused imports (thanks @Avasam).
- Avoid to use fcntl module on some environments (thanks @i2y).
- Change a test behavior for `unix_connect.get_socket` (thanks @i2y).
- Fix accidental data change (thanks @Avasam).
- Prefer `bool` over `Literal[0, 1, None]` (thanks @Avasam).
- Change parentheses to brackets in LICENSE (thanks @mtelka).
---
Version 0.32
============
Bug Fixes
---------
- Use archived link for X documentation resource (thanks @yaxollum).
- Fix for auth entry having no display number (thanks @Majiir).
- Fix return type inconsistency with the `pack_value` for class `Object` (thanks @allfro).
- Rename `add_extension_error` method to `extension_add_error` (thanks @mattalexx).
Extensions
--------------------
- screensaver: fix screensaver protocol mismatch (thanks @yut23).
- XRandr: add version 1.5 support for RRSetMonitor RRGetMonitors and RRDeleteMonitors (thanks @allfro and @jklong).
---
Version 0.31
============
Extensions
--------------------
- XInput: add event methods (thanks @dd4e).
---
Version 0.30
============
Extensions
--------------------
- XResource: first implementation (thanks @alebastr).
- XRandr: add missing parameters to delete_output_mode function (thanks @jimmy-loyola).
---
Version 0.29
============
Extensions
--------------------
- Drawable & XInput: Avoid using array.array.tostring() which wiil be removed in Python 3.9 (thanks @t-wissmann).
---
Version 0.28
============
Extensions
--------------------
- DPMS: Display Power Management Signaling (by @thiagokokada)
---
Version 0.27
============
Bug Fixes
---------
- fix TypeError in socket.error exception handling for Python 3.x (by @t-wissmann)
Extensions
--------------------
- NV-CONTROL: set offset for all perf levels (by @Sporif)
---
Version 0.26
============
Bug Fixes
---------
- support legacy X servers like RealVNC's one (by @Gerardwx)
Extensions
--------------------
- enrich XFixes extension with XFixesSelectionNotify events (by @acrisci)
- add example xfixes-selection-notify.py (by @acrisci)
- fix two issues in NV-CONTROL extension (by @leinardi)
- add method get_clock_info into NV-CONTROL extension (by @leinardi)
- add default client version into Composite extension (by @jakogut)
- add Damage extension with the example (by @mgarg1 and @jakogut)
---
Version 0.25
============
Bug Fixes
---------
- fix increasing memory usage on display instantiation
NV-CONTROL extension
--------------------
- add first implementation by Roberto Leinardi (@leinardi)
---
Version 0.24
============
Bug Fixes
---------
- fix protocol handling: correctly support explicit Unix
connections and fix support fox macOS
- improve Python 3 support: fix events sub-code handling
and possible crashes when unpacking text data
- add support for error handlers to the Composite extension
Misc
----
- fix `xfixes` example
- fix a bunch of typos in the code / documentation
---
Version 0.23
============
Bug Fixes
---------
- fix strings decoding: use Latin-1
---
Version 0.22
============
Bug Fixes
---------
- fix `Display.change_pointer_control` implementation
- fix `Drawable.put_pil_image` implementation
---
Version 0.21
============
Bug Fixes
---------
- fix use under Windows Subsystem for Linux: when DISPLAY does not
specify a protocol, and the implicit Unix socket connection fails,
fallback to TCP (mimicking XCB's behavior).
Misc
----
- don't bundle a copy of texi2html to build the HTML documentation,
but use the currently installed version instead.
---
Version 0.20
============
Bug Fixes
---------
- fix unclosed file in Xauth implementation
- fix support for `Window.set_wm_transient_for`
- fix support for `Drawable.put_image` / `Drawable.get_image`
- use ASCII for decoding strings in Python 3 (same as Python 2)
- fix Python 3 warnings about `array.tostring()` (deprecated)
Misc
----
Improve response processing performance: reduce the number of
`socket.recv` calls needed to receive a full response.
---
Version 0.19
============
Bug Fixes
---------
- don't throw an exception if `$XAUTHFILE` / `~/.Xauthority` is missing
- fix authentication work-around for SSH forwarding under Python 3
- improve `$DISPLAY` handling: support optional protocol prefix, and
correctly handle `unix:0.0` as `:0.0`
---
Version 0.18
============
Bug Fixes
---------
- fix Python 3 buffer abstraction
- fix interrupted select handling for Python 3.3/3.4
- fix Unix socket support when only an abstract address is available
---
Version 0.17
============
Bug Fixes
---------
- fix Xauth handling when using Python 2 and DISPLAY contains a remote IP
- fix String16 request field handling when using Python 3
- fix RECORD extension and example when using Python 3
- fix handling of properties: use byte strings for all X11 8-bits
strings, as not all of them are text properties (the window
getters/setters for `wm_name`, `wm_icon_name`, `wm_class`, and
`wm_client_machine` still return/expect Unicode strings)
API Changes
-----------
Core:
- new window getter/setter for text properties: `get_full_text_property`
and `change_text_property`; with automatic conversion to/from Unicode
when the property type encoding is supported (`STRING` and
`UTF8_STRING`)
Composite extension:
- support for `GetOverlayWindow` request
---
Version 0.16
============
Licensing
---------
The project is now licensed under the GNU Lesser General Public License
v2.1 or later (see the LICENSE file for details).
Compatibility
-------------
Support for Python versions older than 2.7 has been dropped. Support for
Python 3 (3.3, 3.4 and 3.5) has been added. Note that Python-Xlib now
depends on the six package (>=1.10) for combined Python 2 / 3 support.
API Changes
-----------
With the change of license, and no way to contact the original author of
the SHAPE extension, the code had to be rewritten from scratch. This
resulted in a few minor API changes (see [examples/shapewin.py](examples/shapewin.py)).
Partial support for the SECURITY. XInput, and XFIXES extensions has been
added.
Bug Fixes
---------
- fix RECORD extension
- fixed OS X socket path
- fix handling of generic events
- fix handling of KeymapNotify events
- several fixes for the RandR extension
---
Version 0.15rc1 - 14 Nov 2009
=============================
Improved support for newer versions of Mac OS X, a couple of new
extensions, and several bugfixes.
Composite extension
-------------------
Support for the composite extension, used to implement a composition
manager (added for plcm work in plwm).
By itself this extension is not very useful, it is intended to be used
together with the DAMAGE and XFIXES extensions. Typically you would also
need RENDER or glX or some similar method of creating fancy graphics.
XF86 special function keysyms
-----------------------------
Keysym definitions for special function keys found on modern keyboards,
e.g. raise and lower volume, start specific applications, etc. Have a
look in [Xlib/keysymdef/xf86.py](Xlib/keysymdef/xf86.py) to see what
there are and experiment with xev to see what your keyboard generates.
These definitions aren't brought in by default, so you must do this
after importing `Xlib.XK`:
```python
Xlib.XK.load_keysym_group('xf86')
```
RANDR extension
---------------
The RANDR extension complements XINERAMA as a way of getting data about
the physical screens making up a virtual screen in X. An example of
usage can be found in [examples/xrandr.py](examples/xrandr.py).
---
Version 0.14 - 1 Oct 2007 (trialed as 0.14rc1 on 10 Jun 2007)
=============================================================
A couple of new extensions, a Python 2.5 fix and a couple of aliases
(`Display.get_atom()` now uses the internal cache and added
`Window.raise_window()`). Tabs converted to spaces (SF id: 1559082).
RECORD extension (SF id: 1538663)
---------------------------------
Alex Badea contributed a RECORD extension module, allowing Python Xlib
programs to capture mouse and keyboard events (or all other core or
extension events) easily. A demo is in the examples directory. See