Linux input subsystem is composed of three parts: the driver layer, the input subsystem core layer and the event processing layer.
and the keyboard or other input event is all describe by input_event.
use below code and type in your Terminal python filename.py | grep "keyboard"
#!/usr/bin/env python
#coding: utf-8
import os
deviceFilePath = '/sys/class/input/'
def showDevice():
os.chdir(deviceFilePath)
for i in os.listdir(os.getcwd()):
namePath = deviceFilePath + i + '/device/name'
if os.path.isfile(namePath):
print "Name: %s Device: %s" % (i, file(namePath).read())
if __name__ == '__main__':
showDevice()
you should get Name: event1 Device: AT Translated Set 2 keyboard.
then use
#!/usr/bin/env python
#coding: utf-8
from evdev import InputDevice
from select import select
def detectInputKey():
dev = InputDevice('/dev/input/event1')
while True:
select([dev], [], [])
for event in dev.read():
print "code:%s value:%s" % (event.code, event.value)
if __name__ == '__main__':
detectInputKey()
evdev is a package 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/.andselect is select.