<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:·s²Ó©úÅé
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hello Xorg,<div><div><br></div><div>I recently got a Magic Trackpad for use with my Xubuntu laptop.<span style="font-size: 12pt;"> 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</span></div><div><span style="font-size: 12pt;"><br></span></div><div>(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.)</div><div><div><br class="Apple-interchange-newline">My distro is Xubuntu 14.04 and the default version of the driver that came with it is xf86-input-synaptics-1.7.4 .</div><div>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).</div></div><div><br></div><div>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.</div><div><br></div><div>I have posted my modified xf86-input-synaptics-1.7.4 here if anyone is interested in trying out:</div><div><a href="https://github.com/quadpixels/three-finger-dragging" target="_blank">https://github.com/quadpixels/three-finger-dragging</a></div><div><br></div><div>If you just want to know what the outcome is like, you may also check out this video:</div><div><a href="https://www.youtube.com/watch?v=4eLSEtibfyw" target="_blank">https://www.youtube.com/watch?v=4eLSEtibfyw</a></div><div><br></div><div>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.</div></div><div><br></div><div>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.</div><div><br></div><div>I hope this may be useful for you.</div><div><br></div><div>Thanks!</div><div>Sui (Tommy) Chen</div><div>2015-04-11</div><div><br></div><div>P.S. </div><div>What is the good way to make X load</div><div>/usr/local/lib/xorg/modules/input/synaptics_drv.so</div><div>instead of</div><div>/usr/lib/xorg/modules/input/synaptics_drv.so  ?</div><div><br></div><div>Currently I keep a symbolic link in /usr/lib/xorg/modules/input/, but I'm wondering if there's a more elegant way.</div>                                           </div></body>
</html>