import evdev from evdev import InputDevice, categorize, ecodes def capture_input_events(): try: # List available input devices devices = [InputDevice(path) for path in evdev.list_devices()] for device in devices: print(device.path, device.name, device.phys) # Prompt the user to select a device device_path = input("Enter the path of the device you want to capture (e.g., /dev/input/eventX): ") device = InputDevice(device_path) print(f"Capturing events from {device.name}...") for event in device.read_loop(): if event.type == ecodes.EV_KEY: print(categorize(event)) elif event.type == ecodes.EV_REL: pass # print(categorize(event)) elif event.type == ecodes.EV_ABS: pass # print(categorize(event)) else: pass # print(event) except FileNotFoundError: print("Device not found.") except KeyboardInterrupt: print("Capture stopped.") if __name__ == "__main__": capture_input_events()