7

I upgraded from MacOS Catalina straight to Monterey. In Monterey or Big Sur, Apple seem to have introduced an aggressive mouse acceleration function.

i.e.: Acceleration in moving the mouse cursor (not referring to scrolling).

I am able to temporarily get rid of the mouse acceleration, by entering the below command into Terminal and then rebooting (or potentially logging out and in, though that has been unreliable at times):

defaults write -g com.apple.mouse.scaling -integer -1

However, this setting is not permanent and seems to get lost on reboot or shut down (potentially also at idling, sleep or logout – I have not investigated thoroughly).

How can I make this setting permanent?


Please note: Preferably, I want to make the setting permanent inside of native MacOS settings, or some "light software" like a script, rather than relying on heavy external software. I have seen people suggest e.g. LinearMouse or CursorSense which have settings for disabling mouse acceleration – but when trying them, unfortunately because they also handle other mouse-related functions, it seems to tend to interact negatively with other mouse software (making the cursor movements "choppy") and even Universal Control. I am still interested in hearing your suggestions on third-party software – but optimally the answer to my question should be how to permanently disable mouse acceleration in the Apple native preference files, or similar.

2
  • 3
    SteerMouse can do this; you can specify speed & acceleration separately - but it's 20 bucks, so a bit much if you only need this one small part of its functionality.
    – Tetsujin
    Mar 30, 2022 at 9:20
  • I suggest LinearMouse, as pointed out in this answer.
    – ccoutinho
    Jan 6, 2023 at 17:56

3 Answers 3

6

I was able to disable it on startup by creating the following launchd configuration and placing it in the /Library/LaunchDaemons folder (named it com.ryan.disablemouseacceleration)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.ryan.disablemouseacceleration</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/defaults</string>
        <string>write</string>
        <string>.GlobalPreferences</string>
        <string>com.apple.mouse.scaling</string>
        <string>-1</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
</dict>
</plist>
8
  • Please post the data as text in code tags. A screenshot cannot be parsed or searched, or even copied by anybody else who wants to follow your answer and do the same thing. Aug 29, 2022 at 16:03
  • Yea, I tried that and the code tags strip the content. Aug 29, 2022 at 16:20
  • What are you using for code tags? Backticks or HTML? The HTML support is limited. Three backticks either side will make it look like this. See the help for more info. Aug 29, 2022 at 16:23
  • 1
    updated it with the backticks and that appears to work. Aug 29, 2022 at 16:27
  • Excellent. You might want to fix the typo in the launchd config name.... Aug 29, 2022 at 16:31
2

This is (finally!) a built-in feature!

  1. Go to the Mouse system setting pane
  2. Click Advanced... in the bottom right
  3. Toggle the Pointer acceleration setting
A screenshot of the advanced settings dialogue, showing the pointer acceleration toggle.

You can also script the same change with defaults:

# When linear, acceleration is off
defaults write NSGlobalDomain com.apple.mouse.linear -bool YES
1

This looks like a good piece of free software to do what you're looking for: https://triq.net/mac/mouse-acceleration It basically only does this, it's a simple preference pane.

1
  • Does it work on modern macOS e.g. one issued in the last 10 years?
    – mmmmmm
    Aug 29, 2022 at 19:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .