Dissable tty echoing while evtest is running.
Allow evtest to listen to more than one devices.
The setup.py script now allows the location of the input header files to be overwritten. For example:
python setup.py build_ext \ --evdev-headers path/input.h:path/input-event-codes.h \ --include-dirs path/ \ install
- Asyncio and async/await support (many thanks to @paulo-raca).
- Add the ability to set the phys property of uinput devices (thanks @paulo-raca).
- Add a generic :func:`InputDevice.set` method (thanks @paulo-raca).
- Distribute the evtest script along with evdev.
- Fix issue with generating :mod:`ecodes.c` in recent kernels (
>= 4.4.0). - Fix absinfo item indexes in :func:`UInput.uinput_create()` (thanks @forsenonlhaimaisentito).
- More robust comparison of :class:`InputDevice` objects (thanks @isia).
- Write access to the input device is no longer mandatory. Evdev will first try to open the device for reading and writing and fallback to read-only. Methods that require write access (e.g. :func:`set_led()`) will raise :class:`EvdevError` if the device is open only for reading.
- Fallback to distutils if setuptools is not available.
- Rework documentation and docstrings once more.
- Fix install on Python 3.4 (works around issue21121).
- Fix :func:`ioctl()` requested buffer size (thanks Jakub Wojciech Klama).
- Add method for returning a list of the currently active keys - :func:`InputDevice.active_keys()` (thanks @spasche).
- Fix a potential buffer overflow in :func:`ioctl_capabilities()` (thanks @spasche).
- Calling :func:`InputDevice.read_one()` should always return
None, when there is nothing to be read, even in case of aEAGAINerrno (thanks JPP).
- Silence :class:`OSError` in destructor (thanks @polyphemus).
- Make :func:`InputDevice.close()` work in cases in which stdin (fd 0) has been closed (thanks @polyphemus).
- Rework documentation and docstrings.
- Call :func:`InputDevice.close()` from :func:`InputDevice.__del__()`.
- Fix reference counting in :func:`InputDevice.device_read()`,
:func:`InputDevice.device_read_many()` and :func:`ioctl_capabilities`.
Add
FF_*andFF_STATUScodes to :func:`ecodes` (thanks @bgilbert).Reverse event code mappings (
ecodes.{KEY,FF,REL,ABS}and etc.) will now map to a list of codes, whenever a value corresponds to multiple codes:>>> ecodes.KEY[152] ... ['KEY_COFFEE', 'KEY_SCREENLOCK'] >>> ecodes.KEY[30] ... 'KEY_A'
Set the state of a LED through :func:`InputDevice.set_led()` (thanks @accek).
Open :attr:`InputDevice.fd` in
O_RDWRmode from now on.Fix segfault in :func:`InputDevice.device_read_many()` (thanks @bgilbert).
- Raise :class:`IOError` from :func:`InputDevice.device_read()` and
:func:`InputDevice.device_read_many()` when :func:`InputDevice.read()` fails.
- Several stability and style changes (thank you debian code reviewers).
- Fix vendor id and product id order in :func:`DeviceInfo` (thanks @kived).
- :func:`InputDevice.read()` will return an empty tuple if the device has nothing to offer (instead of segfaulting).
- Exclude unnecessary package data in sdist and bdist.
- Add ability to set/get auto-repeat settings with
EVIOC{SG}REP. - Add :func:`InputDevice.version` - the value of
EVIOCGVERSION. - Add :func:`InputDevice.read_loop()`.
- Add :func:`InputDevice.grab()` and :func:`InputDevice.ungrab()` -
exposes
EVIOCGRAB. - Add :func:`InputDevice.leds` - exposes
EVIOCGLED. - Replace :class:`DeviceInfo` class with a namedtuple.
- Prevent :func:`InputDevice.read_one()` from skipping events.
- Rename :class:`AbsData` to :class:`AbsInfo` (as in
struct input_absinfo).
- Add the ability to set arbitrary device capabilities on uinput
devices (defaults to all
EV_KEYecodes). - Add :attr:`UInput.device` which is an open :class:`InputDevice` to the input device that uinput 'spawns'.
- Add :func:`UInput.capabilities()` which is just a shortcut to :func:`UInput.device.capabilities()`.
- Rename :func:`UInput.write()` to :func:`UInput.write_event()`.
- Add a simpler :func:`UInput.write(type, code, value)` method.
- Make all :func:`UInput` constructor arguments optional (default
device name is now
py-evdev-uinput). - Add the ability to set
absmin,absmax,absfuzzandabsflatwhen specifying the uinput device's capabilities. - Remove the
nophysargument - if a device fails theEVIOCGPHYSioctl, phys will equal the empty string. - Make :func:`InputDevice.capabilities()` perform a
EVIOCGABSioctl for devices that supportEV_ABSand return that info wrapped in anAbsDatanamedtuple. - Split
ioctl_devinfointoioctl_devinfoandioctl_capabilities. - Split :func:`UInput.uinput_open()` to :func:`UInput.uinput_open()` and :func:`UInput.uinput_create()`
- Add more uinput usage examples and documentation.
- Rewrite uinput tests.
- Remove
mouserelandmouseabsfrom :class:`UInput`. - Tie the sphinx version and release to the distutils version.
- Set 'methods-before-attributes' sorting in the docs.
- Remove
KEY_CNTandKEY_MAXfrom :func:`ecodes.keys`.
- Add
events.keys, which is a combination of allBTN_andKEY_event codes. ecodes.cwas not generated when installing throughpip.
Initial Release