Long story short.
- In Sierra, Apple has deprecated “IOHID”, the API SmoothMouse uses to move the mouse pointer.
- The recommended API called “CGEventPost” (a part of Quartz) is full of problems. We know this from our experience, because we used CGEventPost in SmoothMouse in 2012–2013 before switching to IOHID. The worst problem was performance. CGEventPost would make SmoothMouse skip movements when your computer was doing graphically intensive calculations. The second worst problem was that it didn’t work well with the applications that needed to take control of the mouse pointer. To our surprise, those weren’t only games, but also a plethora of professional applications like Ableton, Traktor, Cinema4D etc.
- “IOHID” (deprecated in Sierra) had a lot of problems too, but performance was not one of them. Quite possible you’ve seen SmoothMouse causing crazy things to happen in Steam games or while in Screen Zoom mode—when you pressed a mouse button. Of course, we knew about those problems, but we couldn’t fix them, because they were all caused by a serious bug within IOHID. We filed a bug report in 2014 (#21909158), emailed various Apple employees including Craig Federighi, without any results.
- SmoothMouse wasn’t created only to “fix acceleration”. It wasn’t our top priority back in the day. The top priority was to improve the response time of the mouse pointer in macOS. For many years it had been lagging for 16 milliseconds compared to Windows, and SmoothMouse was the only solution to this problem. Yes, the lag of 16ms may be noticeable by the human eye when combined with the display lag.
- On a slightly unrelated note, I strongly believe that many people didn’t realize the reason for their discomfort from using a mouse with macOS wasn’t the quirky acceleration algorithm per se, but the input lag which made the algorithm a lot harder to get used to. It’s simply difficult to learn something when the outcome of your actions is delayed.
- Apple has fixed the 16ms lag in El Capitan (and Sierra). You don’t need SmoothMouse anymore if you use SmoothMouse only to fix the lag.
- Under the hood, SmoothMouse is very different to all other 3rd party mouse drivers, because it was designed for a different purpose. SmoothMouse didn’t tweak the default driver of macOS like SteerMouse or USB Overdrive, it took its place instead. When I emailed SteerMouse developers back in 2010 (before SM began) about the pointer lag, they were like “what are you talking about? We’re not doing this!” Of course, they could not do what I wanted. And for this very reason SteerMouse still works in Sierra and SmoothMouse doesn’t.
- It boils down to two options: “bite the bullet” (use Apple’s buggy API and hope for the best) — or — reengineer SmoothMouse from the ground up (i.e. be more like other mouse drivers). We won’t do the former and we don’t really see the point in the latter, so…
- I’m sorry, but we’re putting the project on pause. SmoothMouse won’t support Sierra. We will unfreeze the project if we find a better API to move the mouse pointer. Quite possibly it will never happen because Apple nowadays is too busy with other things. That said, if you’re a C++ programmer who worked with the inners of macOS (kernel) and have a desire to experiment, please click here.
- Mouse acceleration in macOS sucks and it’s not only a matter of taste (maybe I’ll write another post on this).
- If you’re looking for something to replace SmoothMouse I can highly recommend ControllerMate. It’s a wonderful piece of software by very talented programmer Ken Heglund. It’s been around for over a decade and I think its very underrated. While it may seem a little harder to use, the extra effort is well worth it, because it allows you to actually draw the acceleration curve and program mouse buttons however you want using visual programming (i.e. flowcharts). ControllerMate is unique—there are no comparable applications in neither macOS or Windows worlds.
Pingback: SmoothMouse does not work in macOS Sierra | Dae’s blog
Sad to hear about IOHID depreciation, I think I remember Apple threatened this in El Capitan betas, but it was in the GM build it was still there.
Thanks for all your work on SmoothMouse, I’ve really enjoyed using it for the last few years.
For those wondering, there is another solution (I’ve not tested) on Team Liquid’s forum: http://www.teamliquid.net/forum/tech-support/194668-mac-mouse-woes-be-gone
Seriously, thank you Dae for all the years of SmoothMouse development.
Thanks for many great years with a great little piece of software! Thanks for the advice on ControllerMate. I’m going to try it out!
Boooooooo! Mannnn I HATE mac’s mouse settings. Going to cry myself to sleep now.. :(
Guys – any easy to use alternative?
I haven’t test it but here’s (maybe) an easier alternative to Controllermate.
Maybe it’s crap… maybe it’s a Steermouse clone… no idea. I ditched my mac 3 years ago because of this mouse problem. I feel for you guys.
Holly moly man, thanks for sharing this. URL seems to be bad, but “CursorSense” works perfect – just like SmoothMouse (there is option to set sensitivity regardless of turning of acceleration – it was biggest issue of other alternatives).
Thanks man, saved my job.
It’s a good one. I’m using it.
THANK YOU! Yes this CursorSense program is great. I think I might even like it better than SmoothMouse.
These guys also make SteerMouse. CursorSense would be a “simpler” version of it without all the extra button controls. I would say, fork out the extra few bucks and get SteerMouse for the extra features. But yeah, seems to work good. My recommended settings:
Does anyone know if CursorSense works with Logitech Control Center?
Just installed it, and I can confirm it does not work with Logitech Control Center.
Mouse Acceleration by Christian W.Zuckschwerdt.
Work for me, from yosemite to sierra
We’re very very willing to buy your update or another new app. Please consider it, thanks!
Wish from Chinese fans & user!
http://plentycom.jp/en/index.html – Working alternative for Smooth Mouse.
Could SteerMouse set mice acceleration as ‘like windows’ just like smoothmouse could do before?
Sad to read that :( Thank’s for all ! and bon vent !
It’s a good alternative ! I use it now, and, for me, there is no différence ! Thank’s
Feel sad for this news. Hope to have the Sierra support. – User from Taiwan
Even though the news isn’t good, thank you for the update and all the hard work you’ve put into SmoothMouse, Dae. So many developers just leave defunct projects without sharing an update, so I know we all really appreciate the explanation.
Sad to hear SmoothMouse won’t work on macOS Sierra, it’s been a invaluable tool for me over the past few years.
If you’re looking for a replacement, try SteelSeries Exact Mouse tool. Does a great job of removing mouse acceleration and seems to work fine on macOS Sierra:
Thank you, Ed. You are my hero.
Thank you. Works great!
Does this also work with trackpad?
This is OK, but it actually seems to have a negative acceleration. If you move the mouse very fast, it moves a smaller distance than if you move it slow. It also make it really difficult to move the mouse only 1 pixel. It tends to move 2 or 3. Kinda funky.
This has been by far the best alternative to smoothmouse for me. I’ve only just started using it but it appears I have none of the quirks described above. I don’t believe it works with the trackpad.
Very sad to hear this news. Mouse acceleration curve in mac was the one thing that always got in the way of productivity as a mouse user coming from Windows, and SmoothMouse was the hero to save us from all. I could not imagine working on a Mac with a mouse without installing SmoothMouse first, and recommended to many people after which they were so amazed there was such a simple fix for an issue they thought that could never be fixed.
While I do admit Apple’s trackpad is one of the best things it had made, it’s really a shame that Apple seems not to care much about mouses anymore. Feels as if they’re optimizing everything for trackpads now…
Anyhow, just wanted to let you know I really appreciated SmoothMouse. I’m sure thousands of people who have used the app will be very happy if by any chance the app comes back alive for future macOS versions.
I have used Smooth Mouse for many years. Thx for your great work. I hope u will bring it back someday. A good alternative for disabling mouseacc is Steelseries ExactMouse.
Thanks for all the efforts you have put into this project. Since using Smoothmouse I don’t remember I had problems with Mac mouse movements. Now it started coming back again after upgrading to Sierra. Please consider supporting macOS Sierra somehow. Will visit every now and then to see if you have changed your mind.
Guys, please tell me what to do with mouse wheel?
Its still has ugly acceleration..
It’s so sad that Smoothmouse won’t support Sierra, tried some solutions mentioned up but all of them are terrible, please don’t stop develop Smoothmouse, thanks so much!
Oh no, it’s very sad to hear this and it’s very sad to feel oneself locked down to Apple’s hardware. I love Apple, but I, like many others, tweaked macOS with many a tool like SmoothMouse. I hope the unfreezing of the development will happen soon. In the meantime I sincerely thank you for the fantastic few years saved of being annoyed by my mouse. It’s been a wild ride! Also great thanks for the recommendations, I will look into the ControllerMate and SteerMouse.
Very sad to hear SmoothMouse being paused.
About the mouse acceleration in macOS, is this supposed to some sort of a joke, or the apple guys are truely brain dead? Who knows.
Thanks for the great work of SmoothMouse, I will try the alternatives.
Dae, thank your for the hard work you’ve done all these years!
A couple of questions on this post:
1. How do you know that the lag is fixed in sierra? Any article links?
2. Without a lag, it’s only about fixing acceleration curve? Is it possible to get the same level of convenience (as was with SmoothMouse usage) with altering the curve in ControllerMate?
Thank you Alexander :)
1. The lag was fixed in El Capitan, to be exact – in one of its developer previews. I was able to confirm it with my 1200 fps camera about a year ago.
2. Yes, now its only about the quirky acceleration. At least I don’t know of any other problems. Setting the curve in ControllerMate should be sufficient.
Dae, thank you very much!
Dae – do you have any advice on the shape of the curves to draw in ControllerMate? The screenshot that you linked to looks like one for a video game controller, not a mouse
What was your acceleration setting in SmoothMouse? If it was “off”, just draw a straight line. If it was “Windows”, draw something that resembles a branch of a parabola.
If you used Windows and not SmoothMouse, open Control Panel in Windows and see if ‘Enhance Pointer Precision’ under Mouse settings is checked. If checked -> a parabola, if unchecked -> a line.
When tweaking the curve in ControllerMate, don’t overdo it. At some point you’ll feel that nothing feels right. You’ll need to stop, give your hand some time to get used to the curve, “sleep on it”, before carrying on.
And of course there’s no universal recipe.
Many gamers would say that linear acceleration is the best/only choice for accurate aiming. I use it myself too, but I beg to differ. I think they’re underestimating the capabilities of muscle memory.
The problem with the (non-linear) acceleration used in macOS is that the curves are just too steep. See them yourself in ControllerMate: they look like a ‘cliff’ rather than a ‘hill’. For this reason, when you start moving the pointer it would sky rocket and when you slow it down, it would slow down much faster than you’d expect. But guess what? Some people would argue to death that it feels great. I can’t blame them.
I think Microsoft’s non-linear curve (used in “Enhance Pointer Precision” mode) is much better. I remember that in one of their KB articles from 2002 they mentioned that it was based on an actual research study.
Whatever you choose, just make sure that you can still easily target every single pixel on your screen. Make sure that when you touch your mouse as slow and gentle as possible, the pointer does not move for over than 1 pixel. That’s it really.
Thanks. I used SmoothMouse’s Windows-style acceleration curve and I think it’s absolutely perfect.
Is there a default ControllerMate curve that should be used as a starting point? None of them seemed to work well at all, and editing them using the very mouse that being changed is tough – feels like I’m performing brain surgery on myself.
Sorry for the late reply. This is what your curve in CM should resemble:
I can’t provide the exact coordinates yet, but I plan to look into it in October.
Yeah, it’s tough to get this feeling right. I’ve pretty much been waiting for your reply to this before upgrading to Sierra. :)
http://plentycom.jp/en/index.html is the best replacement for me.
Settings used on 27″ imac: Acceleration: 1.5, Sensitivity: 1650.
Thanks for all the work on smoothmouse. Without it I’d have returned my mac on day 1.
Just tried CursorSense and it works for me with the Magic Mouse 2.
Thanks Dae, for all the work on SmoothMouse. Been using it for ages and I’m really sad to see it go.
Just started using cursorsense. I’m not sure it is the same still. It might just be a preference thing that I need to unlearn but I just can’t seem to get it to feel right.
I found this page by searching for jerky scrolling with a Logitech Optical Marble Mouse, and followed up on Plentycom.jp’s products. SteerMouse works absolutely beautifully, better than any other solution I have had for the mouse. Acceleration, sensitivity, and arbitrary button settings, with modifier keys, work perfectly…. after uninstalling Logitech Control Center! Not free, but support is superb (a couple of minutes’ response to a question), simple installation and intuitive setup.
I found an old tool that you made to map Windows-style acceleration to ControllerMate (https://dae.me/storage/mouse/view.php?windows7=1&enhancePrecision=1&mouseSensivity=10&screenResolution=120)
They still don’t feel anything like SmoothMouse, though.
Is it possible to import all that data in ControllerMate?
Yes, I made that page for exactly that in 2010, but it feels different because I didn’t have Mouse Movement Recorder back then and couldn’t compare the units and adjust the curve properly.
Find the textbox with <string>…</string> on that page, copy its contents into the clipboard, then grab this file:
Points and paste in between <array> and </array>. Save the file, double click on it to import to ControllerMate.
open it with the text editor, find
Thank you for por answer, Dae. I think I have imported the file with its modifications correctly, but the problem is I do not understand how to use ControllerMate with that file. ControllerMate interface is very confusing.
It’s sad SmoothMouse is discontinued because it works like a charm.
With that profile the cursor still seems very sluggish at lower speeds, with a noticeable “cliff” where it suddenly speeds up.
I actually can’t get anything in ControllerMate to not have that sudden acceleration feeling, other than a straight line (which I assume is just linear acceleration). With that the accuracy is very poor at slow speeds – the cursor jumps around.
I tried to custom my acceleration curve and I felt the same at lower speeds. It is annoying.
SmoothMouse was awesome emulating Windows
Use the SteelSeries ExactMouse Tool, or just the terminal command to disable acceleration.
defaults write .GlobalPreferences com.apple.mouse.scaling -1
I wrote up some instructions for power users to disable both mouse pointer acceleration and scroll wheel acceleration:
I will certainly miss SmoothMouse, though. Thanks for a great app!
Thanks for this, Dolph. This does the trick, however it sets the speed to the lowest setting as well. Is there speed parameter in the command?
Here’s how to control the acceleration manually(or by adding a control panel button for it) – http://osxdaily.com/2010/08/25/mouse-acceleration/
Cheers and we’ll miss ya smoothy.
Pingback: 關閉 macOS Sierra 滑鼠的加速模式 | I-Ta Tsai's Blog
Is it possible that smooth mouse isn’t fully uninstalled if it was still enabled when updating to Sierra? It was definitely still working when I didn’t disable it, but the checking off the disable button did nothing. I now uninstalled it but mouse movement still seems a little weird. If so how can I correct this?
Hi! Are you familiar with Terminal.app? If so, open Terminal and run
Nothing comes up? Good. Then run
Nothing comes up again? Perfect! SmoothMouse is definitely not running (and probably the uninstaller did its job well) and its something else that’s affecting your mouse movement. (By the way, we’ve heard Apple has tweaked the acceleration in Sierra).
Just to be clear (and for other people to note): SmoothMouse doesn’t hack or break anything in your system. It doesn’t modify any system files. The *only* exception: SmoothMouse has to move the tracking speed slider in System Preferences to the leftmost position and the uninstaller doesn’t restore its initial position.
This app was the only thing that made using a mouse on OSX tolerable. I’m really sad to see the project end. I would gladly throw money at this problem and I know others would too.
And me :(
I fear I will be stuck using El Capitan and my current Macbook forever. Ive tried all the alternatives mentioned above and searched Google for solutions, but nothing comes close to Smooth Mouse :(
SteelSeries Exactmouse solves your problem 100%. Just make sure you unblock it from the Security preferences to let it run every time on startup.
It may solve the problem for those that want no acceleration but it doesn’t solve the problem for those that want windows-like acceleration.
Does anyone know the equivalent sensitivity of Cursor Sense/Steer mouse to the Velocity in Smooth Mouse. That would be very helpful!!!!
Dae, how much would you need to develop a new Smoothmouse for macOS Sierra ? I would seriously think about helping you with a Kickstarter Project (or Patreon). Just let us know first how much it would cost. (ofc, name a price that motivates you).
I strongly believe the app has still a lot of potential! Even if it’s a pain in the ass to build :)
I totally agree. The Windows accelaration emulation in SmoothMouse was awesome! None of the other apps I’ve tried can come close to the Windows mouse feel. I don’t really want to mess with curves, etc. either. The one click fix in SmoothMouse was so nice.
I did pay for and am using CursorSense, but it’s not a SmoothMouse replacement and I’d gladly pay any reasonable amount to get SmoothMouse back on Sierra.
Thanks for the kind words. To be frank SmoothMouse was always a PITA to develop, but now we’ve reached a stalemate. In order to make it work again we’d have to throw out the entire codebase, start from scratch and follow the footsteps of SteerMouse, USB Overdrive etc. Then there’s a huge chance that we will hit the same limits and won’t be able to provide any benefits over those apps. Its hard to tell, because Apple doesn’t provide any documentation, code samples, best practices etc (and doesn’t welcome such software in general). We’d end up having wasted a lot of time doing a half-assed version of what was already available. I think its more reasonable to beg the developers of SteerMouse/CursorSense to provide a better UI.
I’m now offering a $500 bounty for laying a new foundation.
SmoothMouse runs on Sierra but only in PS2 port mode (includind Sierra 12.1 update), USB mode stops running since Sierra update.
PS2 kexts can be downloaded from https://bitbucket.org/RehabMan/os-x-voodoo-ps2-controller/downloads.
So does it work if I use a USB to PS2 adapter? It is works that will be my salvation!
I’m among many people here who were happy with SmoothMouse before Sierra.
I’ve tried to get myself used to CursorSence with no luck.
1) Can anyone recommend CursorSence settings similar to SmoothMouse, especially for a Logitech mouse used with MacBook Pro?
2) Can anyone confirm how it is with a Microsoft mouse (and MS drivers) after the Sierra upgrade? I’m likely going to buy a MS mouse (please suggest a model that works for you).
Thank for the article and for the smootmouse! Professional stuff!
SmoothMouse revival bounty.
Thanks for supporting the app over the years Dae. Like plenty of others, this app made switching between OSX and Windows everyday so much more pleasant.
From the alternatives above, Mousefixer is the closest to Smoothmouse in terms of fully disabling the acceleration. The biggest drawback compared to Smoothmouse is you can’t adjust your mouse sensitivity after installing Mousefixer (basically have to hope your mouse’s default DPI/sensitivity is to your liking).
Steermouse and others I found just plays with the curve but doesnt fully disable the acceleration.
Hi Dae, sad to see you’ll have to pause SmoothMouse. I see that the forum is also down for maintenance. Anyway, keep up the great work on other projects.
Was the API deprecated or removed?
IOHID was deprecated and will be removed in the next release of macOS. My post doesn’t reflect this, but in Sierra they’ve also removed the system calls we used to subscribe for mouse and trackpad events.
Where have you read that IOHID was deprecated? Post a link.
I see no signs in any of the files from that suggest issue, and I’m currently running a lot of deployed code using this api on OS X 10.6.x through 10.12.2 in the field.
Sorry, seems this comment feed kills less/greater than symbols, I wrote:
I see no signs in — IOKit/hid/IOHIDLib.h — blah.. of deprecated… blah.
A notification about IOHID deprecation.
Since Sierra I’ve been finding myself lifting my mouse and doing all kinds of funky stuff like hitting my coffee cup with the mouse. Thanks for the explanatory blog post.
ControllerMate seems a bit complicated, CursorSense is more what I’m looking for.
But still, it doesn’t feel like SM.
-What are you using Dae?
SM on El Capitan, haha. I’ll use ControllerMate with a linear acceleration when I get to upgrade. Did you use Windows mode in SM?
Let us know what you think of using ControllerMate full time. I found it pretty rough even with linear acceleration – the accuracy just isn’t there at slow speeds.
At work I’m sticking with El Capitan for now, as I can’t be as productive with crappy mouse movement. But at home, where it matters less, I’m semi-happy with SteerMouse/CursorSense. Acceleration: 0.055, Sensitivity: 1890.
It’s not the same as SmoothMouse or Windows but I get the sense that it’s also not necessarily *worse*. Just different.
I’ve had SM running quiet in the background for years, never causing any troubles. Have no idea what setting I was on, it just worked. I’m on a 27″ + 22″ w/ Magic Mouse setup, how do people get through the day with macOS horrible cursor tracking? I mean, the MBP 2016 supports 4 external monitors. They get larger desks?
Ironically its first now when your app no longer works that I’ve come to understand how useful it was.
THANKS for the software …. my bad that i forgot :) to donate some money
, tell me if you have any other software to do it now.
Couldnt work at all with mac and saved me !
Now that its gone , i see myself doing all stypid things again ;) but its not at work any more, so i will give it a try to see if i can get used to it … i dont think i wiil, but its fun how worse it is :)
Pingback: Gérer facilement ses fenêtres sous macOS | Geekzone.fr
Just reading this and THIS BITES!
The lot of you folks at SM made a helpful tool for Mac / gamers. Sad to hear about it being put on the back burner. hope it gets revived somehow in the near future. World of warcraft feels silly on Sierra OS now.
Either way thanks for all the work and support on it.
ExactMouse from Steelseries works great for me. No fuss just improves overall mouse feel in OSX.
Thanks Nick I just installed ExactMouse and it works perfectly.. Thanks a lot for the suggestion..
After a lot of testing and reading i found “SteerMouse” to be the best Smoothmouse alternative. While disabling acceleration correct it still gives me the Smoothmouse feeling.
Thx alot for the work on SmoothMouse! :)
Dae… Did anything change with Mac’s new High Sierra? Please give her a look after the new OS comes out. I’ve waited a long long time.
I’m still on Snow Leopard because it’s the last version of macOS that’s worth a damn. (All afterward have forsaken TheMacWay.)
MacUpdate & Softpedia both say SmoothMouse 1.0.10 supports 10.6.8–10.11 (Intel only). But the Thank you and goodbye page says 10.8–10.11. I suppose the developer’s word is holy, but which is it? Will this still run on Snow Leopard?
I don’t remember, lol. Go ahead and try it. If it doesn’t work, uninstall and try one of these:
Keep in mind that Snow Leopard had a nasty mouse skipping bug:
The only way to fix it was to use SmoothMouse.
Thanks. Turns-out I had v1.0.10 from back in Feb 2015, and had it marked as for 10.6+, so you must have originally had Snow Leopard included in the system requirements. But I never installed it until now because I was using something else (Christian Zuckschwerdt’s Mouse Acceleration.prefPane v1.2, which also offers “Redmond linear” response). Lucky I installed SmoothMouse under the watchful eyes of fseventer, because I’ll probably need to uninstall it (I’ll see if your uninstaller gets everything; never met an uninstaller yet that does), whereas when I have the Enable for trackpads checkbox checked, my pointer clicks don’t hit at the pointer hotspot, but off to one side or the other an inch or so. I just perused the comments on your Mouse cursor skipping (jumping) bug in Mac OS X page, and not a peep about it, so it must be in contention with one of my other umpteen add-ons.
My off-target clicks continued, so I uninstalled. Uninstall in the SmoothMouse prefPane apparently did nothing, but the stand-alone uninstaller from the “Thank you and goodbye” webpage got everything that fseventer flagged during installation except:
…but the first one looks like it was only touched during installation, and should remain, but can you confirm that the last five should be left alone, too? In which case, your uninstaller indeed got everything—a first for me—and good work, Dae!
As you can guess these files do not belong to SmoothMouse.
Thank you so much for SmoothMouse. You’ve made my life immeasurably better over the years. Thank you, thank you, thank you.
I took me AGES to figure out how to get 1:1 mouse movement on mac, but after countless trials and tribulations, iI think I’ve finally got it.
Boot Camp + MarkC Mousefix (Win10)
Parallels 13 + MarkC Mousefix (Win10)
Steps (must be done in order*):
1) in System Preferences, under Mouse, set your Acceleration as high as it goes (default 3) OR by entering the following command into Terminal:
defaults write .GlobalPreferences com.apple.mouse.scaling (x)
where “(x)” is a value between -6 and 6 (this range is explained later). I recommend 6 for a good speed plus no acceleration.
2) check the acceleration by entering the following into Terminal:
defaults read .GlobalPreferences com.apple.mouse.scaling
3) in System Preferences, under Mouse Acceleration (the app from triq), set the Mouse Acceleration bar to match the value that popped up from Step 2 (the reason why step 1 is limited to -6 to 6 is because that’s the min and max of the triq app)
4) open up ExactMouse and test it by slowly trying to move your mouse pixel-by-pixel.
5) if you have a gaming mouse, an adjustable dpi mouse or a mouse with a polling rate higher than 125hz, , lower your dpi until the mouse is tracking 1:1 with the cursor on-screen. If there’s no acceleration but the cursor moves further than your mouse, you have negative acceleration. lower your dpi.
-You can’t run two “no-acceleration” apps at once. You’ll get get this slingshot effect (one app refreshing faster than the other) or a ton of negative acceleration (faster cursor, no acceleration but it feels difficult to click on things). If you’re running SteerMouse, CursorSense, MouseCursor, USB Overdrive, ControllerMate, killmouseaccel or iMousefix you must first disable them (for SteerMouse you can just disable the Cursor options).
-100-400 dpi typically keeps my mice from over-tracking.
-500hz polling rate is the highest a Mac can reliably track (hit consistently). You can test your polling rate using this: http://www.johnloomis.org/ece538/notes/MouseTest/MouseTest.jar
-for using just SteerMouse/CursorSense, the best over-all tracking I’ve felt so far has been with
defaults write .GlobalPreferences com.apple.mouse.scaling -31000
defaults write .GlobalPreferences com.apple.mouse.scaling -31000
Alternatives That Still Work (All Tested in High Sierra, 11/2017):
defaults read .GlobalPreferences com.apple.mouse.scaling
defaults write .GlobalPreferences com.apple.mouse.scaling -.01
defaults write .GlobalPreferences com.apple.mouse.scaling -1
defaults write .GlobalPreferences com.apple.mouse.scaling -31000
to download/run killmouseaccel, just enter these in order:
curl -0 http://ktwit.net/code/killmouseaccel > killmouseaccel
chmod +x killmouseaccel
Default Mouse Settings (System Preferences):
Tracking Speed: 4th Tickmark from the Left
Scrolling Speed: 3rd Tickmark from the Left
For Gaming Mice:
Polling Rate: 500hz or lower in-game (1000hz is fine for other stuff)
DPI: Equal to or Lower than the Width of your Screen
I’ve been fighting with my mouse ever since SmoothMouse left so I really hope all of this information helps someone in the same situation avoid the headaches I’ve endured.
And Dae, thanks man. You never really understand how much you miss something until it’s gone. I love my Macbook but I also I love a good mouse driver, so I get all the frustration. Hopefully all this info will help some of you find that happy medium :-).
under step 1, I’d like to change my recommendation from 6 to -1. Did a bit of playing around between -6 and 6. -1 looks to be the most accurate across multiple mice.
Hey Denzel – I work for SteelSeries and am curious to hear what you think we could do differently in the ExactMouse tool. Admittedly I am a little bit confused but as far as I understand it from your writing it all comes down to forcing the -1 value and with “Always On” on the ExactMouse tool, that’s exactly what we continuously do.
When you force the sensitivity to -1, do you force it via “-float”? In short do you use either:
– defaults write -g com.apple.mouse.scaling -1
– defaults write -g com.apple.mouse.scaling -float -1
From my [overly-extensive] research since my first post -and please, please correct me if I’m wrong, a negative float value both removes acceleration and controls the speed of the mouse whereas without the float it’s simply removing acceleration which keeps the tracking speed at a constant. Example, try:
– defaults write -g com.apple.mouse.scaling -float -1
– defaults write -g com.apple.mouse.scaling -float -5.5
– defaults write -g com.apple.mouse.scaling -float -55
– defaults write -g com.apple.mouse.scaling -float -inf
Also, have you considered using “-array” in addition to “-float” to set a perimeter for the mouse start speed and top-speed? For example, using the following:
– – defaults write -g com.apple.mouse.scaling -float -array inf 0
sets initial mouse speed parameters to “inf” and decelerates them to 0.
Anyways, I’d love to talk shop with you guys more.
Are you sure those options make a difference? I read into some Apple Driver source code and zu gink it said that any negative number is treated the same. Haven’t tested though.
I was under the impression that 0 simply turns acceleration off. Just like moving the Tracking Speed slider in ‘System Preferences > Mouse’ all the way to the left, and plugging in any negative number turns off acceleration as well as increasing sensitivity somewhat.
llegue a este post intentando simular el raton de windows en mac. por que me parece orrible la aceleracion de mac.
Gracias por el gran trabajo estoy pensando instalar leopard para tener soporte para mac :D
Any update on this? I’m really stuck, le mouse of mac is so annoying. I’ve tried CursorSense and SteerMouse but they don’t work. You cannot simplate the curve of windows. Any help?? Thanks
So, here’s the thing.
I have an older iMac that is on macOS Catalina, but has had several previous versions of macOS and at one point I had SmoothMouse installed but it was removed later.
I have a brand new iMac also on macOS Catalina.
The old iMac which DOES NOT have SmoothMouse installed anymore, still functions with that Windows-like acceleration. The new iMac, obviously, does not.
How can this be? I am getting that really nice, accurate, windows-like acceleration on a Catalina-based iMac that isn’t running SmoothMouse.
This suggests it’s some kind of change deep in the system that is portable?
As far as I remember, SmoothMouse had to reset system mouse acceleration (“Tracking speed” in System Preferences) to the lowest possible value to work properly and do its own calculations. It’s just a setting which you can also change by yourself in System Preferences or by running a Terminal command, e.g.:
defaults write -g com.apple.mouse.scaling -1
The Terminal command gives you more flexibility than the slider in System Preferences.
Doing so, I believe, gives you a 1:1 (non-accelerated) response from your mouse. You can also achieve this in Windows.
So I guess you simply did not touch the “Tracking speed” slider after upgrading macOS.
I need to desactive acceleration mouse, smooth mouse does that on 11.2 Big sure ?
SmoothMouse has been discontinued long ago as clearly stated on its website.
Ah sad, there is an other software or not ?
Check out CursorSense.
Hi Dae, I’m working on an app called Mac Mouse Fix. It started out as a small summer break project but now I’d like to turn it into a full driver. Basically like SteerMouse but cooler and free. I’ve been looking into changing the pointer movement, and I’ve finally figured out how to change the sensitivity on the Apple Driver yesterday, after spending like a week looking into source code and tinkering around. That was a great feeling! It seems that Apple deprecated the traditional proper way to configure their driver which shows up in the IOKit documentation (that is using IOHIDRegistryEntrySetCFProperties() on the driver) in Sierra and the replacement APIs for configuring the input drivers (IOHIDEventSystemClient()) have zero documention, confusing naming, and to use them for changing pointer sensitivity you have to use a number of weird hacks.
But luckily I finally figured it out and now I know how to achieve exactly what SteerMouse and CursorSense do. That should be good enough for my purposes. But as you mentioned in your post, changing the actual acceleration curve beyond what the Tracking Speed slider in System Preferences does seems to be impossible by tweaking the Apple Drivers.
Now, I don’t think I’ll end up writing a low level driver in kernel space like you guys did for SmoothMouse, because that seems way to hard and risky and I feel like it might break if Apple makes another change to IOKit at any point.
But my research has gotten me very interested in what you guys were doing.
– Why exactly did SmoothMouse stop working? While digging around IOKit, I saw functions being called things like dispatchPointerEvent all over the place. See here for example [Link](https://developer.apple.com/documentation/hiddriverkit/iohideventservice) (The link is for DriverKit but I’m pretty sure that’s also available in IOKit). Weren’t these functions exactly made for your purposes? The IOKit docs made it seems like writing a custom mouse driver is totally intended and should be possible without much trouble. But that’s what they made me think about changing sensitivity on the Apple Driver, too, and that turned out to be a whole mess.
– Also, do you have any Idea how ControllerMate still implements custom acceleration curves when the APIs that you guys used for that are broken?
– Oh and also you mentioned you might want to write an article on why mouse acceleration objectively sucks in macOS. I’d be super interested in reading that! I bet many other people would be, too. I also think the windows acceleration feels easier to control but I have zero clue what’s behind that feeling. Since you’ve probably done a ton of research into this I assume you have lot of beans to spill here.
Hope you saw my email ;-)
Pingback: How do I disable mouse acceleration AND adjust tracking speed in High Sierra? - PhotoLens
Hey Dae, just wanna come by and say, I just got my new Mac today, and it still work on Monterey with M1 Max, and I can confirm it works on every macOS later than El Capitan, but for me I just need the ‘mouse acceleration mod: like windows’.
And I know a lot people (those who hate Mac accelerate curve, and recommended to this extension by me) only need this function too, so maybe you can consider adding this on the homepage: “Mouse movement tuning still works even on Monterey, but use at your own risk and take no responsibility”
And again, thanks for your great work, really appreciate.
Pingback: apple mouse – ¿Cómo desactivo la aceleración del mouse Y ajusto la velocidad de seguimiento en High Sierra? - CodeBug
Pingback: How do I disable mouse acceleration AND adjust tracking speed in High Sierra?