fix(macos): #3433 cursor reappears correctly after typing - #5107
Conversation
|
I did one follow-up pass on the ScreenCaptureKit path after testing in macOS VM environments. Two changes seemed worth folding in:
In testing this fixed the delayed-update behavior without measurable CPU impact. The encoder path is already running at the target frame cadence, and the fallback still feeds it a zero-copy sample buffer rather than introducing a software copy path. |
|
|
Would moving to capture kit also fix the bad cursor latency when hosting on MacOS? |




Description
Move macOS display capture to ScreenCaptureKit when available, with AVFoundation kept as fallback.
This is a backport of macOS capture work from Lumen, which appears to be an abandoned fork of Sunshine. The old AVFoundation capture path is still present and used if ScreenCaptureKit is unavailable or fails to initialize.
The main benefit is more reliable cursor capture. With the current AVFoundation path, some macOS apps can hide the pointer while typing and Sunshine does not see it reappear until the pointer returns to the Dock. This seems to be an Apple bug in AVFoundation, with ScreenCaptureKit being the most efficient fix.
Other benefits include improving handling for virtual or newly-created displays by refreshing ScreenCaptureKit shareable content when the selected display is not immediately available.
Tested manually on macOS with Moonlight/Sunshine streaming. This fixes the cursor-hidden-until-leaving-window behavior I was seeing with apps that hide the pointer during text input, which is pretty much everything from Terminal to XCode.
Issues Fixed or Closed
Resolves #3433.
Type of Change
Checklist
AI Usage