macOS kernel programming bounty to revive SmoothMouse (PAUSED)

The discontinuation of SmoothMouse seems to have upset many people. Now that the pointer lag is fixed in the newer versions of macOS, I was hoping our users would find other 3rd party mouse drivers more useful for they provide more acceleration controls than SmoothMouse. Some switched without any complaints—others, however, hated everything they tried. (Probably a minority, but as a someone from a minority of those who complained about the lag before SmoothMouse came out, I can relate).

Like I’ve said before, we can’t just move things here and there to make SmoothMouse work in macOS Sierra. I mentioned that Apple had deprecated IOHID system calls, but it’s actually just a tip of the iceberg. We’d have to throw away a lot of essential code, yet we’d have nothing to replace it with. When you need to do something like getting raw coordinates from a mouse, you end up in uncharted waters—there’s no documentation, no code samples, nobody knows anything. The only way out is to find someone who can dig deeper than we can imagine. Namely, a genius hacker.

Hackerman from Kung Fury

To make SmoothMouse reliably work in Sierra and subsequent releases of macOS, we need to find new ways to:

  1. Read raw x—y coordinates from connected mice and trackpads and tell one device from another;
  2. Suppress the “system driver” if necessary, i.e. prevent the events from a given device from reaching the default driver and moving the mouse pointer;
  3. Inject pointer movements with relative coordinates without incurring a performance penalty, breaking games and macOS accessibility features (such as shake-to-find and screen zoom).

It’s very likely that what we need is impossible, but I’m going to try my luck and offer a small bounty—the first person who finds these solutions and sends a proof-of-concept will be awarded $500+$300+$200=$1000. The person who forwards this task to the genius who gets the bounty, will also get $50.

Update (February 2017): we’re resuming R&D on our own and pausing the program until further notice. Please email me if you have questions. 

Obviously the solutions need to be useful for and applicable to SmoothMouse development. If a solution requires ripping the OS apart (patching system files etc) or works only in some specific versions of macOS, it is of no use for us.

Until it happens, please consider the project frozen indefinitely.

If you’d like to chip in to raise the stakes please let me know. For any inquiries don’t hesitate to email me.

Relevant open source code: Mouse Movement RecorderIOHIDFamily, Karabiner Elements, Seil.

Update #1: thanks to Seph Soliman, who agreed to contribute $300, bringing the total up to $800.

Update #2: thanks to Nick Aldwin, who agreed to contribute $200, bringing the total up to $1000.

Update #3 (February 2017): we’re resuming R&D on our own and pausing the bounty program until further notice.

This entry was posted in SmoothMouse and tagged . Bookmark the permalink.

9 Responses to macOS kernel programming bounty to revive SmoothMouse (PAUSED)

  1. Pingback: macOS kernel programming bounty to revive SmoothMouse

  2. Miguel says:

    I wanted to know what values in acceleration and sensibility were changed in your application called SmoothMouse when you put “Like in Windows”, like for example: “0.50 acceleration 1500 sensibility”
    Please, now im using an application called SteerMouse and i don’t know what values change so it feels the same as “Like in Windows” cuz doesn’t feel the same.

  3. Uli says:

    First of all, a big thanks for all the hard work! As a confessed Snow Leopard user, SmoothMouse is one of the most essential pieces of software I use.
    Because it fixes the only two serious bugs in Snow Leopard, mouse jitter on slow movements and mouse pointer lag.
    Two questions:
    Does any of the alternatives address these two issues?
    Is there a older version of SmoothMouse that works on Leopard on PPC (G5)?

    • Dae says:

      Hi Uli, thanks for the feedback! The answers to your questions: no & no. I’ve actually never owned a PPC Mac and the first version of SM was released in late 2012.

  4. Daniil says:

    Hi! Can you send me acceleration and sensivity settings for “Like in Windows” profile please? I’m giving CursorSense a try.

    • Dae says:

      I’m sorry but “Like in Windows” is not something you can describe with just two numbers. It is a function which uses the curve (looks like this) to look up the on-screen pointer velocity given the physical velocity (x and y combined). The curve has a varying slope that changes as you move the speed slider. It’s very hard to reproduce all of this in another application without knowing how it actually works inside.

  5. Charlie Hayes says:

    I think I’ve tried all the alternatives but I still can’t get a “like in windows” movement =(

    ControllerMate obviously has the ability to replicate it but without a preset or solid foundation to base one on, It would be extremely difficult to reproduce.

Leave a Reply

Your email address will not be published. Required fields are marked *