Here's the base of a touchpad implementation that's more geared towards modern multitouch-capable touchpads than the current xorg synaptics driver or, for that matter, the libinput one.
This isn't a completely new implementation, I worked on a project named libtouchpad a few months back, most of this is porting things over to libinput. Note that parts are still work in progress, but I'd like to merge it soon so we can concentrate on fixing it instead of me rebasing a massive patchset. The big difference to other existing drivers is that each touchpoint is handled separately. That allows us to do a couple of things better than before: because we can tell where each finger is, software button handling, clickpad drag-and-drop, etc. becomes a lot easier to handle. The features already working in this driver: - 1, 2, 3-finger tapping - 2-finger scrolling - clickfinger, 1-2-3 fingers on the touchpad when clicking cause LRM click - drag-n-drop on clickpads - single-touch touchpad support (+ tapping and 2 finger scrolling) Features in the pipe (i.e. need porting): - clickpad software button support - better timeout handling (a read delay coupled with a timeout may trigger the wrong events) Features planned: - top software button area - trackstick mode (T440) - disable-while-typing - better motion filters, especially during tapping and clicking - pinch/rotation support - better handling of vert → horizontal scrolling. Right now the scroll direction is locked after the first movement, I'd like to use a time-dependent vector to decide when a sideways motion enables horizontal scrolling I think that about covers it for now. You can test the code on http://github.com/whot/libinput wip/mt-touchpad and a basic X driver is here: http://github.com/whot/xf86-input-libinput Any comments? Cheers, Peter _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
