Read from /dev/input event seems to work well for keyboards, but other event types often have discovery issues. Either stabilize auto-discovery, or add an options to read certain event types from another library, such as X11.