Reads key-press events from a Linux input device. More...
Public Member Functions | |
| None | __init__ (self, str|None device_path=None, KeyCallback|None callback=None) |
Args: device_path: Linux input device path, such as /dev/input/event3. | |
| str|None | device_path (self) |
| Return the selected input-device path. | |
| str|None | device_name (self) |
| Return the selected input-device name. | |
| bool | is_running (self) |
| Return whether background key monitoring is active. | |
| None | open (self) |
| Opens the configured input device. | |
| None | close (self) |
| Closes the input device. | |
| Iterator[str] | read_keys (self) |
| Blocks and yields key names whenever a key is pressed. | |
| None | start (self, KeyCallback|None callback=None) |
| Starts reading keyboard events in a background thread. | |
| None | stop (self) |
| Stops the background reader. | |
Static Public Member Functions | |
| str | find_keyboard_device () |
| Returns the first keyboard-like Linux input device. | |
Static Protected Member Functions | |
| str | _normalize_keycode (str|list[str] keycode) |
| Returns one key name when evdev reports aliases for a keycode. | |
Reads key-press events from a Linux input device.
The reader reports Linux key names such as:
KEY_LEFT KEY_RIGHT KEY_ENTER KEY_SPACE KEY_VOLUMEUP
It does not assign application-specific meaning to those keys.
| None hardware_io.keyboard.keyboard_reader.KeyboardReader.__init__ | ( | self, | |
| str | None | device_path = None, |
||
| KeyCallback | None | callback = None |
||
| ) |
Args: device_path: Linux input device path, such as /dev/input/event3.
When omitted, the reader attempts to locate a keyboard-like input device automatically.
callback:
Optional function called whenever a key is pressed.
| str | None hardware_io.keyboard.keyboard_reader.KeyboardReader.device_name | ( | self | ) |
Return the selected input-device name.
None if disconnected. Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.
| str | None hardware_io.keyboard.keyboard_reader.KeyboardReader.device_path | ( | self | ) |
Return the selected input-device path.
None if no device is selected. Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.
|
static |
Returns the first keyboard-like Linux input device.
A device is considered keyboard-like when it supports common keyboard keys such as letters, Enter, or Space.
| bool hardware_io.keyboard.keyboard_reader.KeyboardReader.is_running | ( | self | ) |
Return whether background key monitoring is active.
Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.
| None hardware_io.keyboard.keyboard_reader.KeyboardReader.open | ( | self | ) |
Opens the configured input device.
If no device path was supplied, a keyboard-like device is selected automatically.
Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.
| Iterator[str] hardware_io.keyboard.keyboard_reader.KeyboardReader.read_keys | ( | self | ) |
Blocks and yields key names whenever a key is pressed.
Example:
for key in reader.read_keys():
print(key)
Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.
| None hardware_io.keyboard.keyboard_reader.KeyboardReader.start | ( | self, | |
| KeyCallback | None | callback = None |
||
| ) |
Starts reading keyboard events in a background thread.
Args: callback: Optional callback override. If omitted, the callback supplied to the constructor is used.
Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.