Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad (ClickPad support)

Status
Not open for further replies.
Today's build is a keeper! I would upload it to github, definitely. I can two-finger drag objects perfectly horizontally or vertically and I can two-finger drag the scroll bar in safari and it works perfectly! If there's anything you'd like me to test and post the console results, let me know. If I don't hear from you in a couple days, I will install the release version so I don't have so much going into my console. For now, I will keep the debug version installed. Good job!

That is so cool! I can now consider an ultrabook with one of these touchpads...
 
Try also to right click by depressing your "pad button" with two fingers. Let me know how that goes.
does not work for me. I can do two finger tap to get the right click.

Try increasing your double click time (make Double-Click Speed really slow) and see if it fixes it.
Meanwhile, I will take a look at the code and see if I broke something.

I plan on making this time separately configurable, but I'd like to have a good idea as to what is the "right" time. And only those with the ClickPads can test that out.

Once I enabled drag-lock in trackpad preferences, this worked just fine.

This is concerning the temporary "drag lock" feature. I changed the modifier key from Control -> Command (thought I updated the post, but maybe not). Apple uses Control for the popup menu so it interferes... so default is now Command. It is a little tricky to get used to, and probably not really necessary if multi-touch drag is working, but...

Other notes:
three button didn't work

What is "three button"?

I lost my key mapping for brightness F2/F3 but FN+insert and FN+Home still work

In this build, all special functions will be on the Fn+fkeys. Since the scan codes generated for Fn+fkeys vary from machine to machine, I will not be including the custom mappings that swap them in the default build (only in the Probook specific build).

But there's another surprise in this build and the final build related to Fn+fkeys/Fkeys. It involves a setting in the keyboard preferences. But it will involve a custom Info.plist for each laptop. I will have to write some documentation. You will see the Probook example on github if you look.

my six year old daughter started playing on it and it was difficult for her to use the trackpad to go left/right. not sure if finger size have an impact. she does fine on regular MBP pad

This is probably related to Z-pressure. Try adjusting FingerZ (currently at 40) to something lower. Small fingers would have an effect of smaller Z values. And it seems each Synaptics pad shows a different Z value for the same size fingers.

Eventually this will be configurable in the PrefPane.

I was playing around with the keys... I hit fn-F1 and it went to sleep. I hit the power button to get it to come out of sleep and the trackpad stopped working.

The rest of the Fn+fkeys might do something for you too. On the Probook Fn+F1 is the sleep button. You can change it if you want by learning about custom keymaps. See the wiki. Unfortunately, there is no standard for Fn+fkeys scan codes nor the labels they put on them.

But wow, it is just super-awesome that multi-touch drag is working.

Here's something else to test... Can you click a "button" (right or left) while having one finger on the pad. Say you move to a button you'd like to click by touching the pad, and instead of removing that finger to click the button, you click the button with the second finger (while resting the first still on the pad)... Please note, tapping will not work (haven't coded that yet, just clicking w/ the "pad button"
 
I missed that. It also does not work for me anymore.

I will be looking at it to see if there's something I broke.
But try what I suggested above: make your double-click time longer (slower double-click).
 
What is "three button"?
-sorry, meant 3 finger.



In this build, all special functions will be on the Fn+fkeys. Since the scan codes generated for Fn+fkeys vary from machine to machine, I will not be including the custom mappings that swap them in the default build (only in the Probook specific build).

- what I was trying to point out was that once out of sleep, the trackpad stopped working.




Here'1s something else to test... Can you click a "button" (right or left) while having one finger on the pad. Say you move to a button you'd like to click by touching the pad, and instead of removing that finger to click the button, you click the button with the second finger (while resting the first still on the pad)... Please note, tapping will not work (haven't coded that yet, just clicking w/ the "pad button"

-use finger to navigate, stop, use second finger to click on button - acts as left click or right click...
 
What is "three button"?
-sorry, meant 3 finger.

Three-finger swipes up/down/right/left all have new key assignments in this build: Control+Command+UpArrow, Control+Command+DownArrow, Control+Command+RightArrow, Control+Command+LeftArrow. So, if you make assignments in System Prefs -> Keyboard -> Keyboard Shortcuts to these keys, you will get whatever action you want.

I've tried to make these defaults as something that "make sense", unlikely to be currently used, and are not specific US-english keyboard layout.

If you want different keys, you can change the keyboard driver's Info.plist (wiki article to come).

You can also use KeyRemap4MacBook to map the keys, especially if you want different actions depending on which app is active. For example, if you want back/forward for when you're in a web browser, but next/prev space for everywhere else.

In this build, all special functions will be on the Fn+fkeys. Since the scan codes generated for Fn+fkeys vary from machine to machine, I will not be including the custom mappings that swap them in the default build (only in the Probook specific build).

- what I was trying to point out was that once out of sleep, the trackpad stopped working.

Not initializing correctly out of sleep is a known issue for some laptops (documented in the README.md). And we don't yet know what the problem is. DSDT issue? Trackpad init sequence? Not enough time after sleep before trackpad init commands sent?

Have you used a trackpad kext that works after sleep on your laptop? Do you have the source code to that kext? If so, I'd like to know where it is, so I can compare what it does to what mine does on wake from sleep.

-use finger to navigate, stop, use second finger to click on button - acts as left click or right click...

Great sounds like that works too. Note: you should also be able to drag with the primary finger in that case...
 
I missed that. It also does not work for me anymore.

OK, looking at my code, changing the double click time won't help, because internally I have to cap it at 230ms.
But please verify for me that it isn't working for you.

Here's the conditions that must be met before right-click w/ two fingers with "pad button" push:

- two fingers must be touching. And it must be detected as two fingers. Note that with Synaptics pads some two finger touches are detected as a single finger (fingers very close together).
- the "pad button" must be newly pressed
- the time at which the "pad button" is detected as pressed must be no longer than 230ms after the first finger touch

In practice, it is quick transition from "no touch" to touching with both fingers and "pad button" pressed.

Any of the following results in a left-click:
- touching and waiting more than 230ms before pressing the "pad button"
- touching with one finger, pressing the "pad button", then later touching with the second finger (this is not a right click, because it was a left click first).

Maybe in practice this is too difficult? Maybe I need to delay a left-click for a certain amount of time, just to see if a second finger touches down later to turn it into a right-click?

In the next build, I will make the capped 230ms configurable (right now I have it at 300ms). But please give it a try with it like it is now being careful to follow my instructions above. Suggestions for the "right way" are welcome.
 
Three-finger swipes up/down/right/left all have new key assignments in this build: Control+Command+UpArrow, Control+Command+DownArrow, Control+Command+RightArrow, Control+Command+LeftArrow. So, if you make assignments in System Prefs -> Keyboard -> Keyboard Shortcuts to these keys, you will get whatever action you want.

I've tried to make these defaults as something that "make sense", unlikely to be currently used, and are not specific US-english keyboard layout.

If you want different keys, you can change the keyboard driver's Info.plist (wiki article to come).

You can also use KeyRemap4MacBook to map the keys, especially if you want different actions depending on which app is active. For example, if you want back/forward for when you're in a web browser, but next/prev space for everywhere else.



Not initializing correctly out of sleep is a known issue for some laptops (documented in the README.md). And we don't yet know what the problem is. DSDT issue? Trackpad init sequence? Not enough time after sleep before trackpad init commands sent?

Have you used a trackpad kext that works after sleep on your laptop? Do you have the source code to that kext? If so, I'd like to know where it is, so I can compare what it does to what mine does on wake from sleep.



Great sounds like that works too. Note: you should also be able to drag with the primary finger in that case...

I don't really use three finger but was just testing.

sleep - I thought the 177 version that birkley posted worked correctly after sleep but need to test

will need to do more testing later tonight.
 
I don't really use three finger but was just testing.

You can test it if you change your keyboard shortcut prefs. Three finger swipes are pretty useful for sliding between spaces and bringing up dashboard/desktop/or launchpad.

sleep - I thought the 177 version that birkley posted worked correctly after sleep but need to test

That would be truly strange because the code is the same.

will need to do more testing later tonight.

Great. Thanks for testing...
 
I was able to get two-finger click on the trackpad to bring up the context menu sometimes and I couldn't exactly tell what I was doing to get it to show up or what I was doing differently that would cause it to work sometimes but not others. Variations in double-click speed did not cause a real big difference from what I could tell.

Just be aware that you have to start with no touch on the pad, then come down with two fingers all at once to click the pad. It probably needs some tweaking.

Next build will have the ability to tweak the time separate from double click time. As mentioned in a previous post, changing the double click time doesn't really help because I have to cap it at 230ms for other reasons (so any double click times set in Preferences larger than 230ms will be brought back down to 230ms).
 
I was able to get two-finger click on the trackpad to bring up the context menu sometimes and I couldn't exactly tell what I was doing to get it to show up or what I was doing differently that would cause it to work sometimes but not others. Variations in double-click speed did not cause a real big difference from what I could tell.

BTW, I checked in some changes that might have been related to this. There was a case where if both fingers were down, and the button change packet happened first on the primary finger packet, the button click would not be correctly attributed to the location of the secondary finger.

I've got a few more things to do before I upload another build...
 
Status
Not open for further replies.
Back
Top