Synaptics: Modified Driver for Three-Finger Dragging

Chen Sui baiypwup at hotmail.com
Sat Apr 11 08:41:32 PDT 2015


Hello Xorg,
I recently got a Magic Trackpad for use with my Xubuntu laptop. I found the "three-finger dragging" feature is not supported, so I decided to look into the Synaptics Xorg driver to see if it is possible to add this feature :D
(Note: "Three-finger dragging" is different from a "three-finger gesture". In 3-finger dragging, the pointer follows the motion of your fingers throughout the dragging action. In a three-finger gesture, the pointer stays in the same place until the gesture is completed. The "three-finger dragging" feature is commonly found on Macbooks which is by default turned off but I think it's very convenient feature. Should three-finger dragging be supported by the Synaptics driver on Linux, I can set SingleTapTimeout to 0 to get a more responsive single click tap because I don't need tap-and-drag anymore.)My distro is Xubuntu 14.04 and the default version of the driver that came with it is xf86-input-synaptics-1.7.4 .I did a quick skim through the source of the latest version 1.8.2, the latest as of today. As far as I can tell, there doesn't seem to be a great difference in their support for 3-finger dragging (neither explicitly says it supports 3-finger dragging).
In the 1.7.4 source (synaptics.c), adding 3-finger dragging required adding several state transitions in the HandleTapProcessing function. That means the Synaptics driver has everything ready for implementing this feature, and it is not very difficult.
I have posted my modified xf86-input-synaptics-1.7.4 here if anyone is interested in trying out:https://github.com/quadpixels/three-finger-dragging
If you just want to know what the outcome is like, you may also check out this video:https://www.youtube.com/watch?v=4eLSEtibfyw
The code is still a proof-of-concept now: some configurations are hard-coded, there may be some little bugs, and it also needs some polishing for easier configuration and use.
I think this feature should work with any trackpad, not just Apple's Magic Trackpad, as long as they support 3 or more fingers simultaneously touching the trackpad.
I hope this may be useful for you.
Thanks!Sui (Tommy) Chen2015-04-11
P.S. What is the good way to make X load/usr/local/lib/xorg/modules/input/synaptics_drv.soinstead of/usr/lib/xorg/modules/input/synaptics_drv.so  ?
Currently I keep a symbolic link in /usr/lib/xorg/modules/input/, but I'm wondering if there's a more elegant way. 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg/attachments/20150411/df79dc10/attachment.html>


More information about the xorg mailing list