from evdev import InputDevice, list_devices, ecodes device = None last = 0x00 for path in list_devices(): candidate = InputDevice(path) if candidate.name == "meson-ir": device = candidate break if device is None: raise RuntimeError("meson-ir input device not found") print(f"Listening on {device.path}: {device.name}") try: for event in device.read_loop(): if event.type == ecodes.EV_MSC and event.code == ecodes.MSC_SCAN: if (event.value != last): print(f"scancode {event.value:#x}") last = event.value # Do logic here else: print(f"repeat scancode {event.value:#x}") last = 0x00 except KeyboardInterrupt: print("\nExiting...") finally: device.close()