Generic plug-in for evdev touch events (a) Using as a QPA generic plug-in 1. set up the touch device 2. sudo apt-get install libmtdev-dev libudev-dev 3. build this plug-in (qmake && make) 4. sudo cp 70-qtouchscreen.rules /etc/udev/rules.d 5. sudo udevadm trigger --subsystem-match=input 6. run apps like this: app -platform xcb -plugin LinuxTouchScreen If automatic detection does not work, use -plugin LinuxTouchScreen:/dev/input/eventN to explicitly set the device file name. By default the surface of the touch device is mapped to the entire screen. If this is not desired, pass force_window in the plugin specification. This will cause mapping the touch surface to the active window instead. Only touch events are generated (via QWindowSystemInterface::handleTouchEvent), mouse events are not. This is because on desktop the touch device will usually act as a single-touch mouse replacement anyway. For pointer-less systems the code needs to be extended to generate also mouse events (by calling handleMouseEvent too). (b) Using in a compositor The classes (QTouchScreenHandler, QTouchScreenHandlerThread) are also suitable for direct inclusion into an application, e.g. a Wayland compositor. The compositor will then usually register its own QTouchScreenObserver because relying on the QTouchEvents generated by the QPA event sender is often not satisfactory, as some low-level details may get lost, and due to performance reasons. Known issues: The udev rule matches any touchpad device. If there are multiple ones, specify the device as described above. On recent distributions (e.g. Ubuntu 11.04) you may need to remove 50-synaptics.conf from /usr/share/X11/xorg.conf.d (followed by logout/login) otherwise no evdev events can be read.