开发者生态
morning
“修复”MacBook Neo 光标延迟:每 10 秒记录屏幕 1 个像素
2026-06-24
1 阅读
retroplasma
Unlag Neo:Macbook Neo 上光标滞后的“修复” Macbook Neo(我使用的是 macOS Tahoe 26.5.1)当光标靠近屏幕边缘或进入终端窗口时光标会滞后。 [1] [2] [3] [4] [5] [点击此处了解更多信息和背景] 为什么会滞后?我不知道。但此时,当它滞后时,系统会从硬件光标切换到软件光标( CGCursorIsDrawnInFramebuffer() 从 0 变为 1 ),因此这种转换可能在 Macbook Neo 上以某种方式陷入停滞。也许在屏幕边缘,一半的鼠标被渲染,而在终端中,还有一些其他图形发生,所以这就是 macOS 想要在那里使用 SW 光标的原因,但我不知道。由于某种原因,硬件光标仅在屏幕锁定后约 17 秒后使用。在此之前,没有任何滞后。正确的修复:要么直接修复延迟(希望苹果这样做),要么强制始终使用 SW 光标作为中间步骤会有所帮助。为了直接强制 SW 光标,我们可以对 WindowServer 进行逆向工程,但这可能意味着关闭 SIP 之类的东西。或者也许不是。也许硬件/软件光标只是一种相关性。我们还可以看看 Mac 解锁后约 17 秒会发生什么。目前其他还可以的“修复”:您还可以将 macOS 滤色器(例如蓝色/黄色滤色器)设置为低设置,但这会稍微改变颜色,并且如果同时打开 Night Shift,则似乎没有帮助。鼠标光标大小也可以更改。但为了保持颜色和光标正常,我们还可以进行屏幕录制。但是,对于屏幕录制,屏幕右上角有一个指示器 ( )。也许可以通过关闭 SIP 来禁用它,但我还没有看过。本质上任何强制合成器(?)执行 SW 光标(或其他任何操作)的操作都可以。不再有延迟了。其他想法:找出终端窗口的特殊之处,并创建一个执行相同操作并将其窗口覆盖在所有内容上的应用程序。无论如何,我选择了屏幕录制。我现在最喜欢的“修复”:屏幕录制 对我来说,屏幕录制解决方案是最不烦人的解决方案。指示器( )足够小,我们可以在全屏视频播放时关闭屏幕录制(否则指示器会很烦人)。显然,这样的修复会使该指标的目的失效,但我认为有两种指标。还有一个更大的,(我认为)应用程序商店应用程序有,所以我认为我们还不错。光标停止滞后。它不需要太多的CPU/GPU:每10秒记录1个像素(基本上到/dev/null,没有SSD写入)好的如何做到这一点:在这个Gist下面有一个脚本(create_unlag_neo_app.sh)。该脚本创建一个可以启动的 .app(不需要开发帐户或 Xcode 等)。该脚本可以这样使用(终端): chmod +x create_unlag_neo_app.sh ./create_unlag_neo_app.sh # -> 创建脚本创建的“Unlag Neo.app”应用程序:将 Unlag Neo.app 放在某处。在 /Applications 或其他东西中。运行它并给予它所需的权限。在菜单栏 ( ) 中,您可以将其关闭,如果需要,也可以尝试“全屏暂停”功能,我认为这可以很好地隐藏指示器。我尝试使用 VLC 和 YouTube 以及一些应用程序。 [[单击此处获取调试信息]] 调试 如果您想破解 create_unlag_neo_app.sh 并多次重建应用程序,macOS 权限设置 UI 可能会重置并表现得有点奇怪。您可以尝试将“Unlag Neo”更改为脚本中的其他内容,或者手动将应用程序图标拖到权限设置中,或者尝试删除“~/Library/Preferences/Unlag Neo.plist”或killall cfprefsd或仅使用Xcode。