Skip to content

Mac Mouse Fix does not capture any mouse events on macOS 13 Ventura [bug] #297

Closed

Description

@lrcf

Update: New beta was released


Description

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

  1. Upgrade from macOS Monterey to Ventura using the Beta Software Program
  2. 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

Additional Comments

–


Console Logs

–

Crash Reports

–

Activity

  1. chamburr commented on Jun 7, 2022

    @chamburr

    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!

  2. lrcf commented on Jun 9, 2022

    @lrcf
    Author

    It appears to me that IOHIDDeviceRegisterInputValueCallback is not working, no events are received. Hopefully we can get a fix soon!

    Good catch! Did you file a radar?

  3. chamburr commented on Jun 9, 2022

    @chamburr

    Good catch! Did you file a radar?

    Yep, already did.

  4. tolgaaaltas commented on Jun 10, 2022

    @tolgaaaltas

    I guess we won't get an update in the short term.

  5. lrcf commented on Jun 10, 2022

    @lrcf
    Author

    I guess we won't get an update in the short term.

    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.

  6. tolgaaaltas commented on Jun 10, 2022

    @tolgaaaltas

    I guess we won't get an update in the short term.

    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.

  7. lrcf commented on Jun 10, 2022

    @lrcf
    Author

    Could you suggest to me a few paid applications? I really don't know the alternatives.

  8. chamburr commented on Jun 15, 2022

    @chamburr

    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.

  9. tolgaaaltas commented on Jun 15, 2022

    @tolgaaaltas

    Hey @chamburr,
    It's working, thank you! :)

  10. lrcf commented on Jun 15, 2022

    @lrcf
    Author

    @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.

  11. jdbool commented on Jun 16, 2022

    @jdbool

    @chamburr The app is saying to grant permissions despite Mac Mouse Fix and Mac Mouse Fix Helper both having Accessibility and Input Monitoring permissions.

  12. chamburr commented on Jun 17, 2022

    @chamburr

    @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.

  13. chamburr commented on Jun 17, 2022

    @chamburr

    @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.

  14. krackers commented on Jun 20, 2022

    @krackers

    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)?

  15. noah-nuebling commented on Jun 20, 2022

    @noah-nuebling
    Owner

    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
  16. 3 remaining items

  17. davidzech commented on Jun 25, 2022

    @davidzech

    I would open a radar to get clarity on whether the behavior in Monterey or Ventura is correct.

  18. jdbool commented on Jun 30, 2022

    @jdbool

    @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.'

  19. tolgaaaltas commented on Jul 6, 2022

    @tolgaaaltas

    The official stable version or @chamburr's fix doesn't work on beta 3.

  20. arm64eabi commented on Jul 7, 2022

    @arm64eabi

    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.

  21. nick-s5 commented on Jul 13, 2022

    @nick-s5

    The official stable version or @chamburr's fix doesn't work on beta 3.

    Same here. "Enable Mac Mouse Fix" checkbox can't be checked.

  22. noah-nuebling commented on Aug 5, 2022

    @noah-nuebling
    Owner

    Hey guys, I just published a new beta version that should work great on Ventura!

    Let me know how it works.

  23. noah-nuebling commented on Aug 5, 2022

    @noah-nuebling
    Owner

    Oh and @chamburr – let me know how you would like to be credited at noah.n.developer@gmail.com.

  24. chamburr commented on Aug 7, 2022

    @chamburr

    Thanks for the fix! It works perfectly on Ventura beta 4.

    For credit, the mention on the release page is sufficient - I appreciate that.

  25. LinusGeffarth commented on Aug 11, 2022

    @LinusGeffarth

    awesome, it works on Ventura now. love this app so much, it's a must-have! thanks so much for making & maintaining this 🙏

  26. fnschmidt commented on Sep 7, 2022

    @fnschmidt

    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

  27. noah-nuebling commented on Sep 8, 2022

    @noah-nuebling
    Owner

    Hey greybaron, I don't know what might be causing that. Here are some ideas that could help us figure this out:

    1. Turn off MMF and see if this online mouse test works
    2. Try a different mouse with MMF if you get the chance to
    3. Try your mouse with some other mouse software like SteerMouse
    4. See if you're running some other mouse software that might be interfering with MMF
    5. File a Bug Report and attach some Console Logs

    Let me know if you find anything!

  28. fnschmidt commented on Sep 8, 2022

    @fnschmidt

    Hi Noah.

    1. The online test detects all buttons
    2. I will when I get the chance
    3. SteerMouse detects all buttons
    4. I was running Karabiner-Elements, but disabling it and rebooting didn't make a difference; also I disabled 'modify events' for my mouse.

    I have created a new issue #362. There are a few error messages in the log that seem relevant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    CoreMain Issue of its CategorymacOS 13 SupportIssue Category

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions