Contribute
Register

Forked VoodooPS2Controller, Keyboard, Trackpad

Status
Not open for further replies.
Joined
Apr 19, 2010
Messages
124
Motherboard
Gigabyte
CPU
Intel
Graphics
Radeon 6670
Mac
  1. MacBook
  2. MacBook Air
Classic Mac
  1. iBook
Mobile Phone
  1. Android
  2. iOS
Hello world,

I've got a synaptics trackpad where the trackpad overlaps the physical buttons. This essentially breaks drag n drop, right click, and left click.

Using Rehabman's VoodooPS2Controller bug fixes, improvements, and github code that he inherited, I've hacked the living **** out of it to enable the functionality that is broken. Enjoy!

Notes:
FIXED [X]1) I'll need to fix my fork a bit because I've hard coded the dimensions of my trackpad into the source code... so it may not work very nice on[/X]
2) The keyboard remapping is specific to my laptop, the Lenovo Z580... but you can change the mappings through instructions given by Rehabman on the original thread posted below.

Original thread:
http://www.tonymacx86.com/hp-probook/75649-new-voodoops2controller-keyboard-trackpad-10.html

Forked code:
https://github.com/birkley/OS-X-Voodoo-PS2-Controller

Downloads:
UPDATE JAN 12 2013: I messed up on the original compile build... I have fixed and re-uploaded debug and release versions of the kexts
UPDATE JAN 17 2013: I have attached a new kext - it gets rid of the hardcoding. This is the kext that I'm using day-to-day now, and it works well for me.
 

Attachments

  • VoodooPS2Controller_Jan17.zip
    77.1 KB · Views: 427
Great work! Thanks for this. I'm using a Lenovo U310 and this works just as well as RehabMan's original. Unfortunately i think your hardcoded trackpad dimensions are stopping the physical button from functioning for me. With RehabMan's the button did nothing; with yours a click will move my cursor to the bottom left corner of the screen, so at least the button is recognized at some level! But now i'm definitely looking forward to your next release with the ability to tweak the dimensions. :D

Otherwise, the motion seems much smoother. It looks like you implemented the same acceleration tables as RehabMan? Maybe i didn't get the new info.plist added correctly when I tried his acceleration changes. But yours definitely seems smoother, did you do anything to work on that? And lastly, it also seems like it takes a bit more pressure to register movement/taps, did you tweak anything with that? Or do you know how I would go about setting the sensitivity?

Thanks for the hard work! :thumbup:
 
Great work! Thanks for this. I'm using a Lenovo U310 and this works just as well as RehabMan's original. Unfortunately i think your hardcoded trackpad dimensions are stopping the physical button from functioning for me. With RehabMan's the button did nothing; with yours a click will move my cursor to the bottom left corner of the screen, so at least the button is recognized at some level! But now i'm definitely looking forward to your next release with the ability to tweak the dimensions. :D

Otherwise, the motion seems much smoother. It looks like you implemented the same acceleration tables as RehabMan? Maybe i didn't get the new info.plist added correctly when I tried his acceleration changes. But yours definitely seems smoother, did you do anything to work on that? And lastly, it also seems like it takes a bit more pressure to register movement/taps, did you tweak anything with that? Or do you know how I would go about setting the sensitivity?

Thanks for the hard work! :thumbup:
Glad you like! I thought it's worth releasing at this stage.

Actually, it's all RehabMan for the acceleration and smoothness :) BUT I did change the dimensions of the trackpad based on mine, which could have made a difference for you. I used the debug version of his driver, along with Console, to figure out my leftedge, right edge, top edge, bottom edge.

I notice that my button click needs work. The whole thing with having the sensor overtop the buttons REALLY messes with things. I had it working better before... I'll look into it this week to do some tweaks.

Sorry for the sloppy coding (ie hard-coding values)... I'll fix that this week.

Pressure? Change finger z. I set mine to 30, which is on the low end already. Rehabman has his set at default 45. Try like 20 or 25 if 30 isn't working for you.
 
Glad you like! I thought it's worth releasing at this stage.

Actually, it's all RehabMan for the acceleration and smoothness :) BUT I did change the dimensions of the trackpad based on mine, which could have made a difference for you. I used the debug version of his driver, along with Console, to figure out my leftedge, right edge, top edge, bottom edge.

I notice that my button click needs work. The whole thing with having the sensor overtop the buttons REALLY messes with things. I had it working better before... I'll look into it this week to do some tweaks.

Sorry for the sloppy coding (ie hard-coding values)... I'll fix that this week.

Pressure? Change finger z. I set mine to 30, which is on the low end already. Rehabman has his set at default 45. Try like 20 or 25 if 30 isn't working for you.

birkley...

You might consider merging with my latest changes sooner rather than later. It will probably make things easier down the road before we diverge too far. I'm no git expert (continually looking at the man pages and googling stuff), but I have figured out how to set multiple remotes and do basic merges. Perhaps you know this, but, you would:

Code:
# in Terminal, from your working directory of your repo
git remote add rehabman https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller
# list them, should see both 'origin' and 'rehabman'
git remote -v
# merge...
git pull rehabman master

Then resolve the conflicts... For some files (project file, as example) it is best to just use one or the other (probably mine). For other files (source files) it is best to go into each one and search for '<<<<' and fix the conflicts manually... I find it is better to merge soon and often, if you intend to keep in sync.

Eventually, I would like to figure out what the real answer to your trackpad is and merge in a solution. So I hope you post that debug output...
 
birkley...

You might consider merging with my latest changes sooner rather than later. It will probably make things easier down the road before we diverge too far. I'm no git expert (continually looking at the man pages and googling stuff), but I have figured out how to set multiple remotes and do basic merges. Perhaps you know this, but, you would:

Code:
# in Terminal, from your working directory of your repo
git remote add rehabman https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller
# list them, should see both 'origin' and 'rehabman'
git remote -v
# merge...
git pull rehabman master

Then resolve the conflicts... For some files (project file, as example) it is best to just use one or the other (probably mine). For other files (source files) it is best to go into each one and search for '<<<<' and fix the conflicts manually... I find it is better to merge soon and often, if you intend to keep in sync.

Eventually, I would like to figure out what the real answer to your trackpad is and merge in a solution. So I hope you post that debug output...

K, I will merge with the changes... it is on my next to-do.
 
@birkley

Hey -- I made it to a BestBuy today to play around with trackpads. The Lenovo trackpad is like I thought... one big button under the whole trackpad with visual indications of right & left "fake" buttons at the bottom. Besides the Lenovo, there are a few ASUS laptops with this same setup (I used Device Manager in Windows to verify they were Synaptics). I just wanted to get a feel for the physical features of these trackpads.

And in addition to that, I also played around with a 13" MacBook Pro Retina. Nice machine. But I was playing with it to figure out how basic dragging works on the Mac trackpad. One thing I found out that I didn't know is that you can drag things using multiple fingers. You can click *anywhere* on the trackpad (depressing "the button") with one finger, then use a second finger to drag things around. This is all possible to do on the Synaptics ClickPads, but it will involve using "extended W mode," because you need true indications of multiple finger positions, which as I've stated in other posts is started, but largely not implemented yet.

What is cool about these ClickPad trackpads, is that it should be possible to implement a trackpad that behaves almost exactly like a real MacBook... Well, except for true multi-touch gestures, because we still don't know how to send those events to the system (there is no methods in IOHIPointing that correspond to multi-touch).
 
Tried it on an HP Folio 13-2000, and it gave me my right click function, but nerfed the ability to use the mouse movements at all once the left "click" is engaged.

Just thought I'd let someone here know.
 
Status
Not open for further replies.
Back
Top