VoodooSMBus / VoodooRMI

Synaptic Trackpad driver over SMBus/I2C for macOS
GNU General Public License v2.0
233 stars 19 forks source link

Implement F3A #77

Closed 1Revenger1 closed 3 years ago

1Revenger1 commented 3 years ago

F3A was recently added to the Linux kernel so we can actually implement it now

RayPowell commented 3 years ago

That's great news. I look forward to trying it out.

1Revenger1 commented 3 years ago

@bobert5 would you be willing to test it out? I don't have a trackpad which uses F3A so I am unable to test.

RayPowell commented 3 years ago

Sure, I'll give it a spin. I haven't used that laptop (x1 yoga 4) much recently, so my hackintosh install is a bit outdated. Should I update OC & kexts before testing, or does it not matter?

1Revenger1 commented 3 years ago

Doesn't matter much afaik. You can get a download through github actions if you want (green checkmark then little menu on the right iirc)

RayPowell commented 3 years ago

Same problems as before, unfortunately. Scrolling is difficult. Dragging even more so. According to the BetterTouchTool live view, it seems to be better at rejecting my thumb, but it's not translating to any tangible improvement in clicking or dragging. A whole lot of unregistered thumb clicks.
I'm a little rusty - what should I be looking for in the logs? I'm not seeing any errors or anything different than before.

1Revenger1 commented 3 years ago

uhh, can you just send me logs? It's not registering physical clicks very consistently?

RayPowell commented 3 years ago

Took me a while to gather logs solely using the touchpad. Yeah it misses at least half of the clicks. Both thumb-clicks and one-finger-clicks. Performance is basically the same as it was before. logs.zip

1Revenger1 commented 3 years ago

When you say thumb and one finger clicks - what do you mean by that? It shouldn't matter what fingers you use for the buttons right? Or are they capacitive or something weird.

I think I see why dragging and scrolling is difficult - it looks like you lay your fingers down particularly flat which is triggering the palm rejection system I wrote. It allows a maximum delta of 2 between the WX and WY, which may be a bit more sensitive for trackpads which tend to report large WX/WY values (mine reports very small values). If your comfortable compiling, you could try increasing the value here or just removing that check completely: https://github.com/VoodooSMBus/VoodooRMI/blob/master/VoodooRMI/RMI_2D_Sensor.cpp#L169. I'll see what I can do to make that work better though

Edit: Log 2 shows an old version of F3A, make sure your using the version from the F3A branch in the PR, not latest release of VoodooRMI

RayPowell commented 3 years ago

Oh my mistake haha. I had downloaded it from here https://github.com/VoodooSMBus/VoodooRMI/runs/1410734861 I think I found the right one now.

RayPowell commented 3 years ago

"When you say thumb and one finger clicks - what do you mean by that?"

Thumb-click = clicking the lower third of the touchpad with my thumb, usually while the tip of my index finger also rests on the touchpad (along with middle finger when right-clicking). Consequently my thumb is always resting on the bottom portion of the touchpad while my index finger moves the cursor. I don't know if that's unusual, but it's my preferred and default mode of operation, since it works perfectly on Apple touchpads.

One-finger click = clicking solely using the tip of my index finger, no other fingers/thumb on the touchpad. Only used when thumb-clicking doesn't work.


"I think I see why dragging and scrolling is difficult - it looks like you lay your fingers down particularly flat which is triggering the palm rejection system I wrote."

Interesting that my fingers should register as flat. I never checked until now, but my hand is positioned in more of a raised arch/claw, so only the very tips of my fingers are on the touchpad. Is the purpose of palm-rejection to stop the touchpad from triggering while you're typing? Is that a common problem? I can't say I've ever had that issue on any laptop I've ever used. Particularly not on this laptop, where the trackpoint buttons already act as a barrier between the touchpad and keyboard.

Anyway, now two-finger right-clicks aren't registering and something's weird with dragging. I can drag a window by it's header/title bar, but it only moves when I release my fingers, rather than continuously following the cursor as my fingers are pressed down. Same with selecting text. Also, I can't resize windows by dragging in the corners or edges.

I don't know if it's evident in the logs, but overall something's not right with the way macOS is interpreting touchpad/cursor input on this laptop. It just seems much jerkier, bogged-down, and inaccurate than it does in Linux. And it's not even in the same league as the magic trackpad 2 on my hack desktop. I suspect the problems begin further upstream, either somewhere else in my config, or with voodooI2c/voodooinput, because like I said - the touchpad isn't great with voodooI2CHID either. So take my input with a grain of salt.

logs2.zip