evdev provides bindings to the generic input event interface in Linux. The evdev interface serves the purpose of passing events generated in the kernel directly to userspace through character devices that are typically located in /dev/input/.
evdev also comes with bindings to uinput, the userspace input subsystem. Uinput allows userspace programs to create and handle input devices from which input events can be directly injected into the input subsystem.
- Documentation:
 devel http://gvalkov.github.com/python-evdev stable http://packages.python.org/evdev - Development:
 - https://github.com/gvalkov/python-evdev
 - PyPi:
 - http://pypi.python.org/pypi/evdev
 
- Fixes:
 - Fix vendor id and product id order in 
DeviceInfo(thanks kived). 
- Fix vendor id and product id order in 
 
- Fixes:
 device.read()will return an empty tuple if the device has nothing to offer (instead of segfaulting).- Exclude unnecessary package data in sdist and bdist.
 
- Enhancements:
 - Add ability to set/get auto-repeat settings with 
EVIOC{SG}REP. - Add 
device.version- the value ofEVIOCGVERSION. - Add 
device.read_loop(). - Add 
device.grab()anddevice.ungrab()- exposesEVIOCGRAB. - Add 
device.leds- exposesEVIOCGLED. - Replace 
DeviceInfoclass with a namedtuple. 
- Add ability to set/get auto-repeat settings with 
 - Fixes:
 device.read_one()was dropping events.- Rename 
AbsDatatoAbsInfo(as instruct input_absinfo). 
- Enhancements:
 - Add the ability to set arbitrary device capabilities on uinput
devices (defaults to all 
EV_KEYecodes). - Add 
UInput.devicewhich is an openInputDeviceto the input device that uinput 'spawns'. - Add 
UInput.capabilities()which is just a shortcut toUInput.device.capabilities(). - Rename 
UInput.write()toUInput.write_event(). - Add a simpler 
UInput.write(type, code, value)method. - Make all 
UInputconstructor arguments optional (default device name is nowpy-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 
InputDevice.capabilities()perform aEVIOCGABSioctl for devices that supportEV_ABSand return that info wrapped in anAbsDatanamedtuple. - Split 
ioctl_devinfointoioctl_devinfoandioctl_capabilities. - Split 
uinput_open()touinput_open()anduinput_create() - Add more uinput usage examples and documentation.
 - Rewrite uinput tests.
 - Remove 
mouserelandmouseabsfromUInput. - Tie the sphinx version and release to the distutils version.
 - Set 'methods-before-attributes' sorting in the docs.
 
- Add the ability to set arbitrary device capabilities on uinput
devices (defaults to all 
 - Fixes:
 - Remove 
KEY_CNTandKEY_MAXfromecodes.keys. 
- Remove 
 
- Enhancements:
 - Add 
events.keys, which is a combination of allBTN_andKEY_event codes. 
- Add 
 - Fixes:
 ecodes.cwas not generated when installing throughpip.
Initial Release