Apple - Jittery macOS mouse cursor when hovering over links
So happy to hear I'm not the only one with this issue. Bought a new MacBook Pro 16 inch earlier this year in May, having that issue since.
- After I bought it, I noticed the issue. Contacted Apple, told me to send it in for repair or exchange it for a new one at the retailer. So I replaced it. Brand new MacBook, same issue (however only after logging in with my Apple ID).
- We're now deep into August and I've been in contact with several people at Apple since May. To no avail. We're now trying to escalate the issue to other departments, but not sure how long this will all take. The general comment they've made is "that the resolution might come in the form of an update, so keep an eye out on that"..
Some things I've noticed that might be helpful for others to know:
- At first I thought the issue was with external displays. But after further debugging it seems the issue has to do with my GPU (AMD Radeon Pro 5500M 8 GB). The reason it seems the issue has to do with an external display is that the MacBook will switch from the embedded Intel UHD Graphics card to the better GPU when plugging in certain displays.
- You can try the above by opening something like Final Cut Pro without an external display plugged in. The issue will then appear since the MacBook switches to the other GPU. You can also verify this by disabling "Automatic graphics switching" in the "Energy Saver" settings.
- A clean install doesn't fix the issue. It also doesn't seem to be a hardware issue since the problem appeared on two separate MacBook Pro's.
I'll update the answer when I hear back from Apple. If anyone else has more info, glad to know.
thank you very much for the thorough documentation of the issue. I have got the same issue with my MacBook Pro 16'' 2019 and it has been driving me nuts!
I came across this forum post and was able to fix the problem with the suggested changes to the system files: https://forums.macrumors.com/threads/weird-cursor-behavior.2230749/post-28968427
I have also submitted a bug report to Apple (twice). Moreover, I have been in touch with their customer support but they won't acknowledge that it is a software issue. I had to send it in twice but they could not find any hardware issues (obviously). The third time I sent it in they told me everything was fine and the cursor jitter is expected behaviour. What a joke...
Don't expect this to be fixed anytime fast by Apple but thank god somebody very smart at MacRumors was able to fix it manually. I am happy now.
I hope I could help. Please let this forum post circulate so that other users can apply the fix and one day this issue might be raised to Apple in a way that they fix it. The user base with the AMD graphics cards seems to be too small for them to really care...
This answer is an attempt to simplify and summarize the solution provided in other answers and websites: 1, 2, 3.
MacOS cursor files are located in frameworks in the Systems directory:
To edit these files you will need to disable System Integrity Protection and allow write access to the System Volume:
- How do I disable System Integrity Protection (SIP) AKA "rootless" on macOs [OS X]
- Catalina not allowing to change read/write permissions despite having SIP disabled
cursors directory has a subfolder for each cursor type, such as
pointinghand. Each cursor will have a
You should back-up the system's version of these cursor files and copy modified files in their place.
pointinghand/info.plist on macOS Catalina 10.15.7 (where I am experiencing this problem) shows:
<?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>blur</key> <string>0</string> <key>hotx</key> <string>13</string> <key>hotx-scaled</key> <string>13</string> <key>hoty</key> <string>8</string> <key>hoty-scaled</key> <string>8</string> <key>shadowcolor</key> <array> <string>0</string> <string>0</string> <string>0</string> <string>0</string> </array> <key>shadowoffsetx</key> <string>0</string> <key>shadowoffsety</key> <string>-1</string> <key>vectoronly</key> <string>:true</string> </dict> </plist>
The relevant keys are
<key>hotx</key> <string>13</string> <key>hotx-scaled</key> <string>13</string> <key>hoty</key> <string>8</string> <key>hoty-scaled</key> <string>8</string>
hoty values is said to fix the problem. (Save the modified files, with any needed permissions, and reboot.)
4 have been suggested. This may require testing to find the correct values.
It's unclear when the
-scaled values are used and if those should be changed.
Please leave a comment on this answer if this solution worked for you, and which values you used.