artginzburg / MiddleClick-Sonoma

 "Wheel click" with three-finger click/tap for Trackpad and Magic Mouse.
GNU General Public License v3.0
1.47k stars 85 forks source link

MiddleClick doesn't work because it starts before Magic Mouse #28

Closed jordiramu closed 1 year ago

jordiramu commented 2 years ago

Hello,

First I'd like to thank you for the great app!

I use MiddleClick on a M1 iMac (24", 2021) with MacOS updated to Monterey.

Whenever I restart and then login, MiddleClick seems to start too fast; it is set as a startup item. It looks like MiddleClick starts just before the default (included in the package) Magic Mouse is initialized and as a result it doesn't work. So.. the middle click functionality implemented by MiddleClick.app is not present unless I quit MiddleClick application and start it again, manually; but this makes it unusable as a start item.

As a workaround I used Automator to create a new app which runs a very simple Bash command (actually two): sleep 5 && open -a MiddleClick and had this Automator generated app set as a startup item instead.

Is there any way to make MiddleClick activate/load/set its functionality after the mouse is initialized?

Thank you

jordiramu commented 2 years ago

Sorry, I forgot the following: george@iMac-de-George ~ % brew info middleclick middleclick: 2.5 https://github.com/artginzburg/MiddleClick-BigSur /opt/homebrew/Caskroom/middleclick/2.5 (125B) From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/middleclick.rb ==> Name MiddleClick ==> Description Utility to extend trackpad functionality ==> Artifacts MiddleClick.app (App) ==> Analytics install: 476 (30 days), 771 (90 days), 1,760 (365 days) george@iMac-de-George ~ %

stealthpro commented 2 years ago

I have the same problem after wake up.

jordiramu commented 2 years ago

After conecting an Apple Trackpad I also needed to restart MiddleClick to make it work with the trackpad.

grishka commented 2 years ago

When the trackpad disconnects by itself (because of course it does, it's wireless for some reason and wireless is a synonym for unreliable) and then reconnects, I also have to restart MiddleClick to make it work again, which is annoying.

artginzburg commented 1 year ago

You should try out the new pre-release. I haven't tested it with wireless devices, but it's a much more stable build. Please continue here if the issue persists.

grishka commented 1 year ago

This issue does persist in the pre-release :( If you need any help debugging, please ask.

karlhorky commented 1 year ago

I'm having a similar problem with versions 2.5, 2.5.0.1 and the prerelease 2.6 (can't test any other versions since I'm on an M1 machine - running macOS 12.6 Monterey):

When disconnecting / reconnecting a Magic Mouse (eg. just turn the Magic Mouse off and on again - no sleep/wake cycle), MiddleClick no longer registers middle clicks and the app needs to be restarted.

If I understand correctly, the relevant code is this, which appears to call the multitouchDeviceAddedCallback function - for some reason this is not firing:

https://github.com/artginzburg/MiddleClick-BigSur/blob/a9fd092c5dc93944062a533167c12c42daad5986/MiddleClick/Controller.m#L92-L95

I can see this because on the command line, the Restarting app functionality... does not show up when I turn the Magic Mouse off and on:

$ /Applications/MiddleClick.app/Contents/MacOS/MiddleClick
2022-10-09 14:37:27.258 MiddleClick[63555:8582952] Starting all listeners...
*** Recognized (0xb0) family*** (60 cols X  2 rows)
*** Recognized (0x6b) family*** (26 cols X 18 rows)
*** Recognized (0x70) family*** (10 cols X 15 rows)
...nothing else shows up here...

If it would be better that I open a new issue for the problem of reconnecting, happy to do so!

karlhorky commented 1 year ago

Workaround

To quickly restart MiddleClick, use macOS Shortcuts: create a shortcut that quits MiddleClick and opens it again:

Screen Shot 2022-10-09 at 15 27 56

Then right click on the shortcut and select "Add to Dock", for easy access:

Screen Shot 2022-10-09 at 15 32 38
karlhorky commented 1 year ago

@artginzburg I guess you haven't been able to reproduce the problem I described above?

Do you have an idea why it could be happening?

karlhorky commented 1 year ago

Ok, I think I found the issue. Seems that the commit 5aca15 broke this (the removal of the call to CFRelease(item) for the M1 build).

I've opened a PR for this, to instead call IOObjectRelease(item): https://github.com/artginzburg/MiddleClick-BigSur/pull/54

Screenshot 2022-12-05 at 16 27 03

jordiramu commented 1 year ago

Thank you, @karlhorky ! I have tested your patch and it works for me. Hopefully it will be included with the next release...

karlhorky commented 1 year ago

Great, looks like my patch is included in 2.6.1 (already available in Homebrew), thanks @artginzburg for the release and Homebrew bump!