Generic plug-in for evdev multiple touch (ABS_MT) events. Supports protocol type A & B. Type B is supported both directly and via libmtdev. Single-touch devices reporting ABS_X and Y only are not supported by this plugin. Use tslib or evdevmouse instead. The protocol type will be detected automatically. libmtdev is automatically detected based on library availability. To disable it, pass -no-mtdev to configure. Tested with the following kernel drivers: bcm5974 (type A) hid_magicmouse (type A with ABS_MT_TRACKING_ID) (type B over libmtdev) wacom (type B) To use this "driver", 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.