Generic plug-in for evdev multiple touch (ABS_MT) events. Supports protocol type A & B. Type B is supported both directly and via libmtdev. The protocol type will be detected automatically. libmtdev is automatically detected based on library availability. To disable it, pass -no-mtdev to configure. Single-touch devices reporting ABS_X and Y are supported too. Keep in mind however that the libudev-based device discovery may not be able to recognize such devices. If mouse events are sufficient, it may be better to use evdevmouse or tslib with such devices. To use this plugin, pass -plugin EvdevTouch on the command line. If automatic detection does not work, use -plugin EvdevTouch:/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 as shown in the example above. This will cause mapping the touch surface to the active window instead. For example: ./fingerpaint -plugin EvdevTouch:force_window Only touch events are generated, mouse events are not. Be aware however that ignored touch events will generate a mouse event from the first touch point by default. See AA_SynthesizeMouseForUnhandledTouchEvents. If no evdev events are read, X may be grabbing the device. Disable the synaptics driver from X or temporarily disable the device by running xinput set-prop 0. Use xinput list and xinput list-props to figure out the values. When not running on a windowing system (eglfs, kms, etc.) and having a touchpad, the evdevmouse and touch plugins can be combined to get both mouse and touch events: ./app -platform kms -plugin EvdevTouch -plugin EvdevMouse If the input device cannot be accessed, set up a udev rule. For example: sudo cp 70-qtouchscreen.rules /etc/udev/rules.d sudo udevadm trigger --subsystem-match=input The sample udev rule matches any touchpad or touchscreen device. If there are multiple ones, specify the device manually as described above.