Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable native/true multitouch gestures #10

Merged
merged 62 commits into from
Dec 28, 2018
Merged

Enable native/true multitouch gestures #10

merged 62 commits into from
Dec 28, 2018

Conversation

kprinssu
Copy link
Collaborator

I am creating this PR to show that it is possible to enable native multitouch on PS/2 trackpads. My laptop comes with a Synaptics PS/2 trackpad and this is a more of a PoC than anything else.

A lot of the work here was hacked together using VoodooI2C's native multi touch engine (though it's from an older commit) and the synaptics driver from the Linux kernel.

It currently supports 3+ fingers gestures so it should fully support most of Macbooks gesture. However, my laptop only seems to support a max of three fingers and gestures sometimes feel off.

I also had emulate the third finger since the trackpad doesn't report back on more than 2 fingers.

Based on Rehabman's upstream branch, but should be relatively easy to backport the changes. Feel free to edit and merge the code at your leisure.

RehabMan and others added 30 commits February 23, 2017 12:19
…dd SSDT-HPFixLidSleep.dsl for others; bump version 1.8.29
… hardware reset in the start function, and knowing whether or not we're dealing with a thinkpad machine with three physical buttons.
…kpad laptops with the trackpoint/nub. All of the code added only works if "Thinkpad=true" in the info.plist or specified in ACPI so these changes will not mess up or change anything for other machine types.
…rom tlucks edits. Nothing major, room for expansion, working well :)
…add Thinkpad .dsl examples; bump version 1.8.31
@syscl
Copy link
Owner

syscl commented Dec 27, 2018

Hi thank you so much! I want to merge it but it shows merge conflicts 😟

1 similar comment
@syscl
Copy link
Owner

syscl commented Dec 27, 2018

Hi thank you so much! I want to merge it but it shows merge conflicts 😟

@kprinssu
Copy link
Collaborator Author

I’ll rebase and apply some additional clean up so there aren’t conflicts with master.

@syscl
Copy link
Owner

syscl commented Dec 27, 2018

Awesome! I will test it today then merge it!

@kprinssu
Copy link
Collaborator Author

kprinssu commented Dec 27, 2018

Few things to note:

  • physical clicks do not work properly (working on this right now) (f4e680d should make this work)
  • 3+ fingers pinch gestures do not work (not sure how to spoof this data) due to the limitation of the touchpad not sending more than 2 finger data
  • 4 fingers do not seem on my trackpad device (not sure why, since 4 fingers are recognised by libinput on Linux)
  • naming collisions with VoodooI2C classes (need to rename the Multitouch Support classes from VoodooI2C* to VoodooPS2*?)
  • only Synaptic based PS2 trackpad works (I do not have other PS2 based devices to test this on)

@syscl
Copy link
Owner

syscl commented Dec 27, 2018

Nice! As for the renaming, sounds good to me:)

@syscl
Copy link
Owner

syscl commented Dec 28, 2018

Hi @kprinssu , I've tested it on my Precision M3800, and this driver is really good!

In short, the two finger gestures (left/right swipe forward/back), three finger taps, dragging, work like a charm. I have a MacBookPro 13, 2018 with Touch Bar, and I feel these touchpad is quite usable now!

Thank you so much!

@syscl syscl merged commit 763a4f8 into syscl:master Dec 28, 2018
@syscl
Copy link
Owner

syscl commented Dec 28, 2018

@kprinssu could you please tell me why this implementation will make the touchpad much precise and smoother, I'm really looking forward to the details. Thank you in advance!

@kprinssu
Copy link
Collaborator Author

kprinssu commented Dec 28, 2018

Good to hear! I still find that it still abit jerky and will require more tuning.

There are more changes from VoodooI2C that I want to backport but this PR should be good to go, unless you want me to clean up code.

@syscl
Copy link
Owner

syscl commented Dec 28, 2018

Thank you, I've already submitted a collaboration request for you 😃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants