Skip to content
Tech News
← Back to articles

"Fix" MacBook Neo Cursor Lag: Record 1 Pixel of the Screen Every 10 Seconds

read original more articles
Why This Matters

This article highlights a workaround for cursor lag issues on MacBook Neo, which can impact user productivity and experience. Understanding and addressing such hardware-software interactions is crucial for the tech industry to improve macOS stability and performance, especially for power users and developers.

Key Takeaways

Unlag Neo: A "fix" for the cursor lag on Macbook Neo

Macbook Neo (I'm on macOS Tahoe 26.5.1) cursor is lagging when the cursor is near the screen's edges or when it enters a Terminal window. [1][2][3][4][5]

[Click here for more info and background] Why is it lagging? I don't know. But at the moment when it lags the system switches from hardware cursor to software cursor ( CGCursorIsDrawnInFramebuffer() goes from 0 to 1 ) so maybe that transition is stalled somehow on Macbook Neo. Maybe on the screen's edges half of the mouse is rendered and in the Terminal there is some other graphics stuff happening, so that's why macOS wants to use SW cursor there, but idk. For some reason, HW cursor is only used after ~17 seconds after the screen was locked. Before that, there is no lag. Proper fix: Either fix the lag directly (hope Apple does it) or maybe forcing to always use SW cursor would help as a intermediate step. To force SW cursor directly we could reverse engineer WindowServer but that probably implies turning SIP off and stuff. Or maybe not. And maybe HW/SW cursor is just a correlation. We could also look what happens ~17 seconds after Mac is unlocked. Other ok "fix" for now: You can also turn on macOS Color Filter (e.g. Blue/Yellow filter) to low setting, but this changes the colors a bit and doesn't seem to help if Night Shift is on at the same time. Also the mouse cursor size can be changed. But to keep the colors and cursor ok, we can also do a Screen Recording. However with screen recording there is an indicdator ( ) on the top right of the screen. Maybe it can be disabled with SIP off but I haven't looked. Essentially anything that forces the compositor(?) to do SW cursor (or whatever else) will do. No lag anymore. Other idea: Find out what's special about the Terminal window and create an app that does the same thing and overlays its window over everything. Anyway, I chose Screen Recording.

My favorite "fix" right now: Screen Recording

For me, the Screen Recording solution is the least annoying one. The indicator ( ) is small enough and we can turn off screen recording when a fullscreen video is playing (where the indicator would be annoying otherwise imho). Obviously, such a fix would invalidate the purpose of that indicator, but I think there are two kinds of indicators. There is a larger one also, which (I think) app store apps have, so I think we are fine-ish.

The cursor stops lagging.

It doesn't need much CPU/GPU:

Record 1 pixel every 10 seconds (to /dev/null basically, no SSD write)

Ok how to do it:

There is a script (create_unlag_neo_app.sh) below in this Gist. The script creates an .app which can be launched (no need for Dev Account or Xcode etc.).

... continue reading