tl:dr ("too long didn't read") version of this, can be found at the end of the post.


Many people struggle with the mouse behaviour on mac Operating Systems. Especially when switching from Windows. This behaviour (which is mostly caused by the heavy mouse acceleration on mac systems) can't be turned off in the System Preferences. Mouse acceleration means: the faster you move the mouse, the bigger the distance travelled. This behaviour aims to make it easier, to move further distances (on smaller surfaces), while allowing for precision, when it is needed. Generally speaking, the downsides overweigh. That is, because it messes with your muscle memory and makes it harder to predict, where the mouse cursor will end up on your screen, when travelling bigger distances. It often is (speaking for professionals) unwanted behaviour and absolutely unacceptble for gamers who rely on muscle memory and immediate precision. If you move your mouse 2 centimeters (no matter the speed) it should always travel for example 15 cm on your screen. And not 20 cm, just because you moved your mouse slightly faster this time.

Prerequisites: If you want the best result with any third party mouse, you will additionally have to download a small tool, provided by SteelSeries (a trusted peripheral manufacturer). This tool is free and works for pretty much all mouses and is provded by SteelSeries, to make sure that their mouses (and fortunately almost any other mouse) work as intended on macOS systems.


Turning off mouse scaling


First of all, we want to disable mouse acceleration. I will explain later, why this is not the only thing we need to do. Unfortunately you can not turn mouse acceleration off in your System Preferences. To turn it off, you will need to use the command line. You do not need any prior knowledge and it is only one command. If you don't like the new behaviour of the mouse for some reason, I do explain how to set it back to default again.

To turn off mouse acceleration, open the Terminal. Hit CMD + Space to open Spotlight and then type in Terminal, select the Terminal application if it isn't selected yet, and hit Enter. You should see the following window (with your Systems name instead of mine of course):

Mouse acceleration in macOS is linked to mouse sensitivity for some reason. But to make things more complicated, the mouse sensitivity you can set in the Systems Preferences, is not the same thing as the actual DPI you set for your mouse.

Now, back to turning off the mouse acceleration again. First of all we want to know your current setting as a back up. To check your current preference, execute the following command:

defaults read .GlobalPreferences com.apple.mouse.scaling

This should return a number. You can type down this number if you want to change it back to what it was later on.

To turn off mouse acceleration, use this command:

defaults write .GlobalPreferences com.apple.mouse.scaling -1

Setting the scaling to -1 turns off the acceleration. If you want to go back to what you had before, either just go to your System Preferences > Mouse and set it to what you had before or to be more accurate and work with numbers, you can use the number you just backed up in the previous step change it back like this:

For example (with your number instead of 2):

defaults write .GlobalPreferences com.apple.mouse.scaling 2

Your mouse preference should be updated by now and if you set it to -1, your acceleration should be turned off. In some occasions it may be needed to restart the computer. After restarting, check via the command provided previously, if your settings have been reverted. If they reverted, it is most likely due to programs provided by your mouse manufacturer (generally used to assign mouse buttons, DPI, report rate and more) like Logitech's GHub or others. If you should use Apples Magic Mouse, you should be set. Make sure to not have any third party mouse software installed, if you intend to solely use the Magic Mouse, because thet tend to turn on your mouse acceleration again.

Third-party mouses

If you are using a third-party mouse, you need to go one step further due to the reason, that the DPI setting of third party mouses interfere with macOS's preferences. This can result in stuttering and just a very inconsistent feel of the mouse. To fix this behaviour, make sure you have installed the Software from your manufacturer. In my case it is Logitechs GHUB. As just mentioned, this may turn on mouse acceleration again. I will explain later on, how to fix this.

Logitech G HUB - fortschrittliche Gaming-Software
Logitech G HUB ist die neue Software, die das Beste aus jeder Ausrüstung herausholt. Passe deine Ausrüstung für jedes einzelne Spiel an.

For you it could be SteelSeries or any other manufacturer. Download the Software according to your mouse and install it. After you have launched and set the preferred DPI and other settings of your mouse, your mouse.scaling (which should be set to -1 after we changed it) could be reset to a positive value again, which then would enable mouse acceleration. Also as mentioned before, the DPI defined in your mouse manufacturers tool, will interfere with macOS. To fix both of this, there is fortunately a tool called ExactMouse for macOS, provided by SteelSeries. This tool works for any mouse and can be found here:

SteelSeries Engine Software - GameSense & Customization | SteelSeries
Lade die SteelSeries Engine 3 Software herunter – für das beste Spielerlebnis auf Windows und Mac.

It is quite hidden on the website and you will have to scroll down and click on Miscellaneous to find it. Or you can just use the following link, to start the download:

https://downloads.steelseriescdn.com/drivers/tools/steelseries-exactmouse-tool.dmg

This tool is (for obvious reasons) only provided for macOS... which should hopefully some day give Apple a hint, to allow users to handle these things easier.

Back to track: Download and install the tool and run it. After you have started the SteelSeries ExactMouse Tool, you should see the ExactMouse tool icon in your top menu bar. Click on it make sure its set to "Steel Series Exact Mouse: Always On" and "Start on Log On".

After this, make sure that your mouse scaling is still set to -1. If not, use the defaults write .GlobalPreferences com.apple.mouse.scaling -1 again, to change it back to. But you shouldn't have to, because ExactMouse is taking care of this regularly. Now, the macOS operating System should no longer interfere with the mouse acceleration, mouse smoothing or what so ever and you can change the sensitivity to your desired DPI in your manufacturers software. The mouse sensitivity set in your Systems Preferences will be ignored now, so it no longer inteferes with your DPI.

Last but not least I realised, that DPI is translated slightly different to Windows and MacOS machines. If you for example have a DPI of 1600 set on a Windows machine, you will have to set it approximiately 10% higher on Mac to get the same result. So in this case, you will have to set it to around 1760 DPI. I suggest to just play around with your DPI until it feels right. I had to set mine to 1750 DPI to have the pretty much same result as on Windows (with mouse acceleration turned off in the windows settings). But you will need to play around with this on your own, to find what's working best for you. Some users who switch over from Windows, just use a ruler to measure the distance of the mouse and adjust their DPI accordingly until they have the right number. There is no way to calculate this unfortunately, because there are too many factors from which are many enclosed in black box. But this approach resulted in perfect result for me.


tl:dr

  1. Read your current settings for backup via defaults read .GlobalPreferences com.apple.mouse.scaling.
  2. Turn off acceleration via: defaults write .GlobalPreferences com.apple.mouse.scaling -1.
  3. If you're using the MagicMouse, you should be happy by now. If not, continue with Step 4 in the tl:dr.
  4. Go to your mouse manufacturers website and download their mouse management tool. You know it's the right tool, if it allows for setting your DPI and more.
  5. Go to  https://de.steelseries.com/engine, scroll down until you see the Miscellaneous section, open it and download the ExactMouse tool. Otherwise just click here to download it. Even though SteelSeries provided this tool, it works pretty much all mouses.
  6. Install it. You should see it in your top menu bar now. Click on it and make sure it is set to "Always On" and "Start on Log On".
  7. Restart your computer.
  8. Repeat Step 1 and if it returns anything else than -1, repeat Step 2.
  9. Done! If you want to revert these settings, just turn off or uninstall the tools and set your preferred mouse sensitivity in your macOS System Preferences. This will turn on the mouse acceleration again and you can verify this, by running Step 1.

I hope this was helpful for you. If you have any feedback or just want to say hi, feel free to contact me via Email or Twitter.

Thanks.