Skip to content

Support capture display selection - #35

Open
RayZhao1998 wants to merge 1 commit into
loro-dev:mainfrom
RayZhao1998:agent/capture-display-selection
Open

Support capture display selection#35
RayZhao1998 wants to merge 1 commit into
loro-dev:mainfrom
RayZhao1998:agent/capture-display-selection

Conversation

@RayZhao1998

Copy link
Copy Markdown
Contributor

Related Issue

#34

Summary

  • add a display selector under General → Capture
  • show each connected display using its wallpaper, name, resolution, and native aspect ratio
  • persist the selected display using its stable ColorSync UUID
  • bump the control protocol to v11 and restart active capture when the selection changes
  • resolve the selected display in the ScreenCaptureKit shim, falling back to the main display with a warning if unavailable
  • document the proposed architecture for future simultaneous multi-display capture
image

Scope

This PR supports selecting one display for capture. Simultaneous capture of multiple displays remains out of scope.

An empty display UUID means “follow the current macOS main display,” preserving existing behavior and compatibility with older settings files.

Verification

  • make test
    • Rust workspace tests passed
    • 313 Swift tests passed
    • 13 Capture Shim tests passed
  • swift test --filter DaemonWireTests — 64 tests passed
  • swift test --filter SettingsDisplayPickerTests — passed
  • make snapshots — 30 snapshots generated and visually inspected
  • verified the picker with landscape and portrait display proportions
  • exercised protocol v11 and active recording in a locally launched app
  • git diff --check passed

The signed local launch required a machine-specific signing identity workaround that is intentionally excluded from this PR.

Risk

Risk: middle

The change crosses the Settings UI, versioned daemon protocol, persisted settings, live capture restart, and ScreenCaptureKit display resolution.

The fallback path preserves capture when a previously selected display is disconnected.

Confidence

High confidence in the protocol shape, persistence, picker layout, and single-display selection flow based on unit, wire, snapshot, and local runtime verification.

Not yet exhaustively verified across display hot-plugging or every rotated, scaled, and HDR multi-display topology.

Model: gpt-5.6-sol
Harness: codex
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant