1- ==============================================================
2- python-uinput - Simple Python API to the Linux uinput-system
3- ==============================================================
1+ =======================================================
2+ python-uinput - Python API to the Linux uinput-system
3+ =======================================================
44
55.. contents::
66
@@ -21,11 +21,11 @@ General information
2121Requirements
2222============
2323
24- - Python 2.6. and development files for it:
24+ - Python 2.5.x+ and development files for it:
2525
2626 - On Ubuntu::
2727
28- sudo apt-get install python2.6 -dev
28+ sudo apt-get install python -dev
2929
3030Example usage
3131=============
@@ -35,72 +35,20 @@ Create and use a new uinput device with key-capabilities::
3535 import uinput
3636
3737 device = uinput.Device()
38-
39- keys = uinput.KeyCapabilities(device)
40- keys.add(uinput.KEY_A)
41- keys.add(uinput.KEY_B)
42-
43- keys.click(uinput.KEY_A)
44- keys.click(uinput.KEY_B)
45- keys.click(uinput.KEY_B)
46- keys.press(uinput.KEY_A)
47- keys.release(uinput.KEY_A)
48-
49- Use built-in mouse-device::
50-
51- import uinput.devices
52-
53- mouse = uinput.devices.Mouse()
54-
55- mouse.move(100, 100)
56-
57- Use built-in keyboard-device::
58-
59- import uinput.devices
60-
61- keyboard = uinput.devices.Keyboard()
62-
63- keyboard.click(uinput.KEY_H)
64- keyboard.click(uinput.KEY_E)
65- keyboard.click(uinput.KEY_L)
66- keyboard.click(uinput.KEY_L)
67- keyboard.click(uinput.KEY_O)
68-
69- Create and use a new device with key and absolute-axis capability::
70-
71- import uinput
72-
73- device = uinput.Device()
74-
75- abs_axes = uinput.AbsoluteAxisCapabilities(device)
76- abs_axes.add(uinput.ABS_X, abs_min=-50, abs_max=50)
77-
78- keys = uinput.KeyCapabilities(device)
79- keys.add(uinput.BTN_GAMEPAD)
80-
81- abs_axes.move_to(uinput.ABS_X, 15)
82- keys.click(uinput.BTN_GAMEPAD)
83-
84- All the above things can also be done through the "lower-level API"::
85-
86- import uinput
87-
88- device = uinput.Device()
89-
90- device.add_capability(uinput.EV_KEY, uinput.KEY_A)
91- device.add_capability(uinput.EV_KEY, uinput.KEY_B)
92-
93- device.send(uinput.EV_KEY, uinput.KEY_A, 1) # press
94- device.send(uinput.EV_KEY, uinput.KEY_A, 0) # release
95- device.send(uinput.EV_KEY, uinput.KEY_B, 1) # press
96- device.send(uinput.EV_KEY, uinput.KEY_B, 0) # release
97- device.send(uinput.EV_KEY, uinput.KEY_B, 1) # press
98- device.send(uinput.EV_KEY, uinput.KEY_B, 0) # release
99- device.send(uinput.EV_KEY, uinput.KEY_A, 1) # press
100- device.send(uinput.EV_KEY, uinput.KEY_A, 0) # release
101-
102- In other words, uinput.Capabilities descendants provide just higher level API
103- for the uinput.Device.
38+ device.capabilities = {
39+ uinput.EV_KEY: (uinput.KEY_E, uinput.KEY_H, uinput.KEY_L, uinput.KEY_O),
40+ }
41+
42+ device.emit(uinput.EV_KEY, uinput.KEY_H, 1) # Press.
43+ device.emit(uinput.EV_KEY, uinput.KEY_H, 0) # Release.
44+ device.emit(uinput.EV_KEY, uinput.KEY_E, 1)
45+ device.emit(uinput.EV_KEY, uinput.KEY_E, 0)
46+ device.emit(uinput.EV_KEY, uinput.KEY_L, 1)
47+ device.emit(uinput.EV_KEY, uinput.KEY_L, 0)
48+ device.emit(uinput.EV_KEY, uinput.KEY_L, 1)
49+ device.emit(uinput.EV_KEY, uinput.KEY_L, 0)
50+ device.emit(uinput.EV_KEY, uinput.KEY_O, 1)
51+ device.emit(uinput.EV_KEY, uinput.KEY_O, 0)
10452
10553Downloading
10654===========
0 commit comments