You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Mac Mouse Fix does not capture any mouse events on macOS 13 Ventura [bug] #297
After upgrading to macOS Ventura, the app nor the Helper can capture any mouse events. I’ve tried both registered and unregistered events, nor is it possible to register a new event.
Console.app does not show any logs related to that, I’ve not checked any other logs yet.
Steps to reproduce
Upgrade from macOS Monterey to Ventura using the Beta Software Program
Press any mouse button other than the default ones (left and right click)
Context
Mac Mouse Fix Version: 2.2.0
macOS Version: 13.0 beta 1
Mouse Model: MX Vertical, although this is probably not relevant
Also suffering from Mac Mouse Fix not working. It appears to me that IOHIDDeviceRegisterInputValueCallback is not working, no events are received. Hopefully we can get a fix soon!
Reacted by errorexists, hrhnick, lrcf, fraciril, Linus and Chris Thomas
If the convenience of having those side buttons working is important to you right now (and you are willing to sacrifice some customisability), there are other paid applications that work with macOS Ventura right now.
However, it’d be nice to see this issue get fixed here.
If the convenience of having those side buttons working is important to you right now (and you are willing to sacrifice some customisability), there are other paid applications that work with macOS Ventura right now.
However, it’d be nice to see this issue get fixed here.
Could you suggest to me a few paid applications? I really don't know the alternatives.
Hey, I made a temporary fix which you can download here. Mac Mouse Fix
You need to run xattr -d com.apple.quarantine /Applications/Mac\ Mouse\ Fix.app as it is not signed. You also need to manually give /Applications/Mac Mouse Fix.app/Contents/Library/LoginItems/Mac Mouse Fix Helper.app the Accessibility and Input Monitoring permissions.
Let me know if this works.
Reacted by lrcf, Tolga ALTAS, Noah Nuebling, David Zech, Nexus and Linus
@chamburr The app is saying to grant permissions despite Mac Mouse Fix and Mac Mouse Fix Helper both having Accessibility and Input Monitoring permissions.
@chamburr Thanks for the fix! Have you thought of filing a pull request? It’d be nice to get your fix merged into the upstream.
Considering it is not a complete fix, I would not open a pull request. The issue is that IOHIDDeviceOpen needs to be called before IOHIDDeviceRegisterInputValueCallback. However, the input monitoring permission is needed for IOHIDDeviceOpen, and I'm not sure how to add the permission check into the code.
@chamburr The app is saying to grant permissions despite Mac Mouse Fix and Mac Mouse Fix Helper both having Accessibility and Input Monitoring permissions.
I found the new System Settings buggy when dealing with permissions. Maybe you can try using System Preferences and re-grant the permissions. You need to allow running in security settings when opening for the first time.
Question: why does the app intercept the side-button events at the IOKit level (via IOHIDDeviceRegisterInputValueCallback) instead of doing this at the quartz level (via CGEventTap)?
Hi guys, thanks for contributing! And thanks @chamburr for posting a fix!
I'd suggest we just use his fix for now. I strongly expect Apple will fix IOHIDDeviceRegisterInputValueCallback() before Ventura 1.0 which should make the official Mac Mouse Fix release work correctly again.
If Apple don’t fix it , I'm very open to merging @chamburr's fix.
I hope that makes sense for everyone! Let me know if there’s something else I should consider.
The details
Here's an overview of my understanding of the issue:
Currently, Mac Mouse Fix uses the Apple API function IOHIDDeviceRegisterInputValueCallback() to determine which device a CGEvent stems from. According to @chamburr this function is currently broken which also breaks Mac Mouse Fix. I expect that what the fix essentially does is disable this mechanism for determining which device sent an event - thereby removing the dependence on the broken IOHIDDeviceRegisterInputValueCallback()
Currently, determining which device sent an event is not essential, so the app will still work fine. I think the only thing it is used for is filtering button events from Apple Devices. But since the app doesn't allow remapping to left click and right click anyways, and any Apple devices I can think of only have left click and right click, this doesn't make a difference.
Some of the state management code (tracking long clicks, double clicks, etc) saves separate state per device. But if you don't use several mice at the same time on the same computer - which I don't expect anyone does - this shouldn't be an issue either.
→ So if I understand correctly, the fix would break some internal mechanisms, but that shouldn't make a practical difference to anyone.
However I still think it makes sense to leave the current mechanism in place for the following reasons:
I do expect to to use the ability to determince which device sent a CGEvent for more things in the future. I'm not sure if I ever want to build completely device specific settings, but we'd definitely need it for that. I definitely want to support device-specific features like tilting scroll wheels and gesture buttons at some point though. And I expect to use it for that, as well.
I expect Apple to fix IOHIDDeviceRegisterInputValueCallback() eventually, before Ventura releases, making the current mechanism work again.
I can think of some arguments for throwing away the current mechanism, but I don't think they hold up:
I found some hacky ways to extract a driver-level event (IOHIDEvent) from a CGEvent. These events contain lots of extra data, including which device sent them! This seems to be a much superior way to solve the problem. Expecially for determining the sender of a scroll events there were some issues with the old mechanism.
-> However, since I haven't done much testing on this, I'm not entirely sure that this will work correctly. So I'm uncomfortable throwing the existing mechanism away in favor of it.
It would make the app usable for Ventura Beta users
→ However, they can just use @chamburr's fix for now. I don't think it makes sense to have a whole new release to work around an Apple API being broken in a Beta
Reacted by lrcf, Tolga ALTAS, krackers, David Zech, Muhammed Zakir, Arch, Usama Karim, cavallonechen, Nexus and Linus
@chamburr The app is saying to grant permissions despite Mac Mouse Fix and Mac Mouse Fix Helper both having Accessibility and Input Monitoring permissions.
I found the new System Settings buggy when dealing with permissions. Maybe you can try using System Preferences and re-grant the permissions. You need to allow running in security settings when opening for the first time.
Thanks, but that doesn't work -- 'The application "System Preferences" can't be opened.'
on beta 2 the gestures were not working but the separating natural scrolling behavior for mouse/trackpad was working. Now in beta 3, it is also not working.
Unfortunately still broken for me. Running newest Ventura 22A5331f, and the same setup works in Monterey.
I can enable Mac Mouse Fix, but only smooth scrolling works. MMF does not recognize any button: no gestures work and adding new key mappings also doesn’t work, it registers no keypress (apart from button 1 or 2).
i‘m using a USB dongle and wireless mouse (Katar Pro Wireless). I have no other mice to test and the bluetooth mode is incompatible with Ventura
Activity
chamburr commentedon Jun 7, 2022
Also suffering from Mac Mouse Fix not working. It appears to me that
IOHIDDeviceRegisterInputValueCallbackis not working, no events are received. Hopefully we can get a fix soon!lrcf commentedon Jun 9, 2022
Good catch! Did you file a radar?
chamburr commentedon Jun 9, 2022
Yep, already did.
tolgaaaltas commentedon Jun 10, 2022
I guess we won't get an update in the short term.
lrcf commentedon Jun 10, 2022
If the convenience of having those side buttons working is important to you right now (and you are willing to sacrifice some customisability), there are other paid applications that work with macOS Ventura right now.
However, it’d be nice to see this issue get fixed here.
tolgaaaltas commentedon Jun 10, 2022
Could you suggest to me a few paid applications? I really don't know the alternatives.
lrcf commentedon Jun 10, 2022
brew install --cask bettertouchtool— $9/2yr | $21 for ‘lifetime’brew install --cask bettermouse— $5Karabiner Elementsmay crash the system — Karabiner-Elements breaks macOS 13 DB1 pqrs-org/Karabiner-Elements#3108chamburr commentedon Jun 15, 2022
Hey, I made a temporary fix which you can download here. Mac Mouse Fix
You need to run
xattr -d com.apple.quarantine /Applications/Mac\ Mouse\ Fix.appas it is not signed. You also need to manually give/Applications/Mac Mouse Fix.app/Contents/Library/LoginItems/Mac Mouse Fix Helper.appthe Accessibility and Input Monitoring permissions.Let me know if this works.
tolgaaaltas commentedon Jun 15, 2022
Hey @chamburr,
It's working, thank you! :)
lrcf commentedon Jun 15, 2022
@chamburr Thanks for the fix! Have you thought of filing a pull request? It’d be nice to get your fix merged into the upstream.
jdbool commentedon Jun 16, 2022
@chamburr The app is saying to grant permissions despite Mac Mouse Fix and Mac Mouse Fix Helper both having Accessibility and Input Monitoring permissions.
chamburr commentedon Jun 17, 2022
Considering it is not a complete fix, I would not open a pull request. The issue is that IOHIDDeviceOpen needs to be called before IOHIDDeviceRegisterInputValueCallback. However, the input monitoring permission is needed for IOHIDDeviceOpen, and I'm not sure how to add the permission check into the code.
chamburr commentedon Jun 17, 2022
I found the new System Settings buggy when dealing with permissions. Maybe you can try using System Preferences and re-grant the permissions. You need to allow running in security settings when opening for the first time.
krackers commentedon Jun 20, 2022
Question: why does the app intercept the side-button events at the IOKit level (via
IOHIDDeviceRegisterInputValueCallback) instead of doing this at the quartz level (viaCGEventTap)?noah-nuebling commentedon Jun 20, 2022
Hi guys, thanks for contributing! And thanks @chamburr for posting a fix!
I'd suggest we just use his fix for now. I strongly expect Apple will fix
IOHIDDeviceRegisterInputValueCallback()before Ventura 1.0 which should make the official Mac Mouse Fix release work correctly again.If Apple don’t fix it , I'm very open to merging @chamburr's fix.
I hope that makes sense for everyone! Let me know if there’s something else I should consider.
The details
Here's an overview of my understanding of the issue:
IOHIDDeviceRegisterInputValueCallback()to determine which device a CGEvent stems from. According to @chamburr this function is currently broken which also breaks Mac Mouse Fix. I expect that what the fix essentially does is disable this mechanism for determining which device sent an event - thereby removing the dependence on the brokenIOHIDDeviceRegisterInputValueCallback()However I still think it makes sense to leave the current mechanism in place for the following reasons:
IOHIDDeviceRegisterInputValueCallback()eventually, before Ventura releases, making the current mechanism work again.I can think of some arguments for throwing away the current mechanism, but I don't think they hold up:
-> However, since I haven't done much testing on this, I'm not entirely sure that this will work correctly. So I'm uncomfortable throwing the existing mechanism away in favor of it.
→ However, they can just use @chamburr's fix for now. I don't think it makes sense to have a whole new release to work around an Apple API being broken in a Beta
3 remaining items
davidzech commentedon Jun 25, 2022
I would open a radar to get clarity on whether the behavior in Monterey or Ventura is correct.
jdbool commentedon Jun 30, 2022
Thanks, but that doesn't work -- 'The application "System Preferences" can't be opened.'
tolgaaaltas commentedon Jul 6, 2022
The official stable version or @chamburr's fix doesn't work on beta 3.
arm64eabi commentedon Jul 7, 2022
on beta 2 the gestures were not working but the separating natural scrolling behavior for mouse/trackpad was working. Now in beta 3, it is also not working.
nick-s5 commentedon Jul 13, 2022
Same here. "Enable Mac Mouse Fix" checkbox can't be checked.
noah-nuebling commentedon Aug 5, 2022
Hey guys, I just published a new beta version that should work great on Ventura!
Let me know how it works.
noah-nuebling commentedon Aug 5, 2022
Oh and @chamburr – let me know how you would like to be credited at noah.n.developer@gmail.com.
chamburr commentedon Aug 7, 2022
Thanks for the fix! It works perfectly on Ventura beta 4.
For credit, the mention on the release page is sufficient - I appreciate that.
LinusGeffarth commentedon Aug 11, 2022
awesome, it works on Ventura now. love this app so much, it's a must-have! thanks so much for making & maintaining this 🙏
fnschmidt commentedon Sep 7, 2022
Unfortunately still broken for me. Running newest Ventura 22A5331f, and the same setup works in Monterey.
I can enable Mac Mouse Fix, but only smooth scrolling works. MMF does not recognize any button: no gestures work and adding new key mappings also doesn’t work, it registers no keypress (apart from button 1 or 2).
i‘m using a USB dongle and wireless mouse (Katar Pro Wireless). I have no other mice to test and the bluetooth mode is incompatible with Ventura
noah-nuebling commentedon Sep 8, 2022
Hey greybaron, I don't know what might be causing that. Here are some ideas that could help us figure this out:
Let me know if you find anything!
fnschmidt commentedon Sep 8, 2022
Hi Noah.
I have created a new issue #362. There are a few error messages in the log that seem relevant.