evdev and uinput wrangling doodad with a QML interface