blankmac / AlpsHID

32 stars 6 forks source link

stick mouse not working on 10.14, 10.15 #19

Open mslifcak opened 2 years ago

mslifcak commented 2 years ago

Dell Latitude 7480, Alps Dual Point Stick 044E:120B

Running from Clover 5148 or OpenCore 0.8.3 boot loaders - no noticeable changes in behavior as described below.

Problem seen with 1.2 AlpsHID extension (CFBundleVersion 1.0.0d1??)

touchpad works fine on 10.14, 10.15, 11, 12, 13 dual point stick works fine on 11, 12, 13 dual point stick does not respond on 10.14, 10.15

juico commented 2 years ago

Hey, thanks for checking all these mac os version for stickpointer functionality. It seems that some underlying api might be removed/changed in those version. Have you tested MacOS 11 aswell(it should work as far as i know)? I will try to see if can change the implementation such that it doesnt use that api. As i dont have a touchpad with stickpointer functionality i will post a new version here when i have something to test.

juico commented 2 years ago

The new version uses the VoodooInput TrackpointDevice and seems to work with versions 10.15, i am aware that the version numbers of alpsHID are a bit messed up and was planning to fix it in the next release. Could you also test if scrolling works with the stickpointer(vertical and horizontal)? AlpsHID.kext.zip

mslifcak commented 2 years ago

Thanks for your fast response. Good work!

Please allow a very minor request: A simple spell change request in log messages: 'Recieving' -> 'Receiving'

Gross motor movements and selections for the point stick and the touchpad were tested and work on 10.14.6, 10.15.7, 11.6.8, 12.5.1 and 13.0_beta_5

I tested vertical scroll by making a selection (click left mouse in window) then move point stick up and down. This grew and shrank the selection. If you have a test procedure, I'm happy to run that.

My subjective comments follow. I'm not an expert on user experience. I didn't find the system settings had a clear way to adjust touchpad-as-mouse contrasted with point-stick-as-mouse.

Seems the touchpad has a nice delay before responding. The point stick moves the cursor quickly and farther than I wanted it to go.

I would consider using the point stick as a trackball with the touchpad: Use the touchpad to move the focus rapidly, then use the point stick to fine-tune the focus.

Any suggestions for testing or using the point stick are appreciated.

juico commented 2 years ago

That is good news, in terms of sensitivity of the stick pointer, I am not aware of easy accessible settings of the stickpointer that don't influence the mouse configuration. It might be possible to save the sensitivity of the stick pointer as parameter in a plist file so that users can select a sensitivity without compiling their own kext. How much delay is there in the touch pad and is it similar compared to windows/linux?

mslifcak commented 2 years ago

I haven't measured the delay, sorry.

Yes, the touch pad behaves like it does when either Windows or Linux is operating it.

Windows and Linux show about the same behavior for the point stick, and that moves the cursor in diagonal directions in a fairly predictable manner. The cursor doesn't move very far at first, taking small steps in both X and Y. When one presses the stick longer, the cursor slowly accelerates, but stops after about 3 seconds maintaining the same velocity up to a boundary. The velocity does not continue to increase.

Also, the cursor X and Y movements follow a diagonal when the stick is pushed in a diagonal direction. So the visual feedback of slope is important to build trust in the behavior.

I humbly admit that I have not read the code, and I dont know what if any I write further makes sense.

So, some groups of Xonly or Yonly readings may need to be discarded before building the position report. The good news is the information integrity is not important, as the cursor movement is an approximation of the average directional indicators.

So, parameters that may be beneficial to expose to a plist configuration might include separate adjustments for horizontal and vertical delays (1 - initial, 2 - increase, 3 - decrease), up and down acceleration, and velocity.

There could be a simple model for the parameters, high/medium/low sensitivity, which could be used to override the finer tuning parameters that were just suggested.

mslifcak commented 2 years ago

The point stick and the touchpad are not responsive: After a system automatic update, when the update performs an unattended reboot. Logging out and logging in does not make them responsive. After the system is rebooted manually, then the touchpad and the point stick are responsive.

mslifcak commented 2 years ago

with size, date, and MD5 csum

A. The 1.2 release 64352 Dec 5 2021 cd26d8678ab7b0ff9b1e9082afa09504 AlpsHID.kext/Contents/MacOS/AlpsHID

B. A test version provided by the developer 73264 Aug 25 06:01 b0face5f8bfe5aacf687382b88cbdf6f AlpsHID.kext/Contents/MacOS/AlpsHID

Procedure:

  1. Use 1.2 release for AlpsHID.kext to OC/Kexts folder

  2. After a fresh install of 10.15.7 (Catalina) touchpad good, no point stick

  3. After upgrade to Monterey point stick good, no touchpad

  4. After manual restart in Monterey touchpad good, point stick good

  5. Replace test version for AlpsHID.kext to OC/Kexts folder

  6. After a fresh install of 10.15.7 (Catalina) touchpad good, point stick good

  7. After upgrade to Monterey touchpad no good, point stick no good

  8. After manual restart in Monterey touchpad good, point stick good

juico commented 2 years ago

Hey, thanks for testing the various combinations. I also ran into the issue that the touchpad was not responsive after a update. As it was fixed after rebooting i didn't really looked into it much further. It is quite odd that with the 1.2 version the stick pointer works right after upgrading to Monterey and it doesn't with the test version. This would suggest something odd happening with VoodooInput.

I will take a look but i wont spend to much time on it as it only seems to be a issue during reboot after a update/upgrade.

mslifcak commented 1 year ago

Perhaps cut a new release so others can make use of it?