7

I'm experiencing a jittery/buggy/flickering mouse cursor when moving my mouse over hyperlinks.

This occurs in both Safari and Chrome. It also occurs in other non-hyperlink instances of the mouse cursor changing, such as hovering over the drag handle when resizing Finder columns.

Every time the mouse transitions from the hyperlink pointer to the arrow pointer, the arrow pointer briefly visibly flashes in the wrong position before correcting itself.

This is in macOS 10.15 Catalina on my new 16" MacBook Pro with AMD Radeon Pro 5500M 8 GB GPU, provided by work and with a variety of software installed.

I now notice I'm also experiencing it on a Mid 2015 15" MacBook Pro running Catalina with the AMD Radeon R9 M370X 2 GB. I don't believe this computer used to have this problem, prior to upgrading to Catalina.

This occurs 100% of the time when the discrete GPU is active. Namely:

  • Any time an external display is connected.
  • If "Automatic graphics switching" is toggled off, it will reproduce on the MacBook's display.

The issue has been tested and occurs using the onboard laptop Trackpad, external Magic Trackpad, and an IBM TrackPoint. It is unrelated to input device or tracking speed.


Reproduction steps:

  1. Hover mouse above a hyperlink. (Shows "Mickey Mouse glove" pointer.)
  2. Move mouse pointer off the hyperlink so that cursor changes to the arrow pointer.
  3. Arrow pointer initially flashes at the "top left" position of the mouse bounding box for 1 frame.
  4. Arrow pointer then flashes back to its true position, pointing at the same pixels that the hyperlink glove was originally pointing.

When I create a screen recording via QuickTime, the mouse glitch is not visible in the recording.

Here is an iPhone video of my Mac's screen demonstrating the issue:

gif of this problem in action

Relevant section in slo-mo:

enter image description here

This is driving me nuts. On link-heavy pages, moving the mouse across the screen results in a dizzying blur of pointer motion. Middle-clicking a link also produces a similar jitter.


I've reported this to Apple via their Feedback Reporter:

FB8452310 - GPU causes mouse cursor glitch on 16" MacBook Pro


This bug is also mentioned here:

  • Comments are not for extended discussion; this conversation has been moved to chat. – bmike Aug 24 at 23:54
3

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.

| improve this answer | |
1

This is probably a bug that you can report via radar to Apple.

The issue is that the location for the hit test for the two icons is in a different place. For the pointer, the hit test is in the top left of the arrow. For the mouse glove, it’s on the index finger.

When changing icons, the image is simply swapped over using the same x,y coordinates. However the hit point effectively moves, so the pointer image jumps to the left to compensate and so the hit point is in the same place on screen as before.

Ideally the changed icon image shouldn’t be shown until the hit point is recalculated and both steps are done at the same time, but that’s why you’re seeing the jump. The reverse occurs and the jump is to the opposite direction when going in reverse.

Apple used to care about quality and fixing these sorts of issues but my guess is they won’t fix it for their current shipping os now that big sur has been revealed. Of course if it still shows up there then you might have a shot. You can use the feedback assistant to file a bug with Apple.

| improve this answer | |
  • If my experience is any clue, Apple will respond with a request that we do the debugging and send them a humongous file. Like Microsoft, they promise not to abuse the personal data in the file. If you work in health care in USA and have ever had patient data in your Mac, sending that file is illegal. (And if they see it and don’t report you, they are breaking the law.) – WGroleau Aug 17 at 20:12
  • @WGroleau I have machines and vm so I can reproduce bugs and be sure I’m not disclosing anything. Your point is valid - I trust Apple, but still they can’t lose data I never give them. As a pro, I try to always do the right thing even when it means I may not report detail on something I can not reproduce. The plus side of all this work, is reproducible bugs are about 1000x more likely to get fixed. – bmike Aug 24 at 23:59
1

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...

EDIT: SOLUTION

This is a copy of the workaround from jorgepasco1 of MacRumors to have it documented here as well:

So, the solution was manually changing theses values on the system files to be the same.

Now, it's not that easy to do so, because since Catalina, MacOS would not let you edit files in the System/ directory, even with System Integrity Protection (SIP) off. So, the first thing to do is unlocking this protection. For that, you would have to first go to the macOS Recovery Mode. For that:

  1. Turn on your Mac and immediately press and hold these two keys: Command (⌘) and R.
  2. Release the keys when you see an Apple logo, spinning globe, or other startup screen.
  3. You might be prompted to enter a password, such as a firmware password or the password of a user who is an administrator of this Mac. Enter the requested password to continue. enter image description here
  4. Startup is complete when you see the utilities window: enter image description here
  5. In the Recovery Screen, go to the menu Utilities -> Terminal, and type the following:
>csrutil disable
>reboot

Now, in normal mode, open a terminal window, and run:

> sudo mount -uw /
> killall Finder

Now, you should be able to edit files in the Systems directory. After restarting, the directory will be read only again, but you should manually enable SIP again, more on that later.

For editing the files I used Visual Studio Code with an extension called Binary Plist, which lets me edit the binary plist field as an XML and transform it back to binary on save. You could use anything that lets you edit files with these extensions as required.

Now, move to /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/cursors/ (use cd command) This is where all the files that controls the cursors are. enter image description here You have to copy these whole folder to another directory, since you will not be able to edit these files directly from VSCode. Move a directory up with "> cd .." and copy to another directory, for example home:

cp -R ./cursors ~/cursors

I suggest that you keep a backup of the original cursors folder. Now open the cursors directory in VSCode: enter image description here

As you see, every pointer (e.g. the pontinghand, which is displayed on links hover) has a file for the image and another for configuration (info.plist). If you have the Binary Plist extension installed, when you open a plist file and click on the " Do you want to open it anyway" link, you should get second tab in the form of plist XML enter image description here

Binary form: enter image description here

XML form: enter image description here

So now, you can modify the values as needed. We need to edit the hotx and hoty values (I haven't tried with the -scaled values, since I would not be using escalation for my display, you might want to experiment with that, too). Change the hotx and hoty values to 4 (Inside the tag below the corresponding key). enter image description here I changed these values for all the cursors, but you can do it just for the pointing hand if that's what you only care about.

Once all these files are ready, it's time to move them to the System directory. For that, in the terminal, move to the directory where you have the edited cursors folder (cd ~, in this example) and run:

> sudo cp -R ./cursors /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/

Now, restart your computer, and the jittering problem should not be there anymore.

Once this is done, you should restart on Recovery Mode again, open the terminal and run:

> csrutil enable
> reboot

Cheers!

| improve this answer | |
  • Thank you for the update! Could you edit your answer to include the exact files and .plist changes that need to be made? (steps such as disabling SIP can just be linked to) – pkamb Oct 14 at 21:40
  • Hi, it is not my fix. I just know from research that the same issue has been raised in both forums and I wanted to link the threads given the fact that a solution is now available. I will contact the guy from MacRumors forum so that he can post his workaround here, including the fixed files and his screenshots. I do not want to take ownership of his work. As of now you can have a quick fix but just following the link. But I understand that it makes sense to have the fix fully documented on this forum as well. Cheers! – ravenloft Oct 14 at 21:45
  • it's generally ok on Stack Exchange to quote someone's forum posts, and it's good to have all of the information posted here rather than just links to another site. You can credit their username in the answer. Thanks for this answer; going to try it myself. – pkamb Oct 14 at 21:52
  • Okay I have posted the solution here as well. Give it a go and be a happy Mac user again! I can't understand why this has not yet been fixed and not more people are complaining...? – ravenloft Oct 15 at 7:28
0

You'll need to try some logical steps to identify if the problem is hardware or not. Setup macOS to boot on an external drive and test booting it from the external drive. If the problem re-occurs try an earlier macOS version. If it still re-occurs it might be hardware.

If the problem disappears with a macOS version the same as the employers then they must have installed something that's causing the issue. It may be a security tool. At that point bring it up with your IT department see if any other Macs they built are doing it.

| improve this answer | |
0

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:

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/cursors/


To edit these files you will need to disable System Integrity Protection and allow write access to the System Volume:


The cursors directory has a subfolder for each cursor type, such as pointinghand. Each cursor will have a cursor.pdf and info.plist.

You should back-up the system's version of these cursor files and copy modified files in their place.

Opening 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 hotx + hoty, and hotx-scaled + hoty-scaled:

    <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>

Changing the hotx and hoty values is said to fix the problem. (Save the modified files, with any needed permissions, and reboot.)

Values of 4 and 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.

| improve this answer | |
  • 1
    Helped, but it will better to know the reason of this issue. Because I have the same problem with TEXT cursor but it is not so significant. I've noticed that on just new macbook it doesn't happen, and starting occur after some days. – user6327 Nov 6 at 9:31
  • I have now updated to Big Sur and the fixes do not seem to have carried over. I am not sure if our cursor adjustments have carried over and are now distorting the original Big Sur values or if Big Sur has overwritten our adjustments with new values that constitute an improvement but still make the cursor jump slightly when changing to the pointing hand. However, it seems to me that the issue is less significant and the jump appears to be smaller and feels more horizontally. What are your experiences with Big Sur and the cursor issue? – ravenloft Nov 13 at 12:24

You must log in to answer this question.

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