Back to notes
The Tesseract MemoryTechnical note

Remembering a reconnect after the display list settles

A rapid unplug and reconnect can leave the same final display set. MonitorMate preserves the event's cause so that unchanged identities do not hide a disturbed layout.

Topics

The last snapshot does not explain the whole event

Display callbacks often arrive in bursts. Waiting for them to settle avoids applying a layout against an intermediate setup, but looking only at the final display identities loses information about what happened during that wait.

A monitor can be unplugged and reconnected inside one debounce window. The final set is unchanged even though a reconnect may have disturbed its position. MonitorMate accumulates topology and wake flags while replacing the pending work item, then passes those flags with the refreshed display list.

Preserve the reason to check, not permission to write

An accumulated flag makes the settled event eligible for a restoration check. AutoFixPipeline still requires auto-fix to be enabled globally and on the matching profile, no active apply operation and geometry that actually differs from the saved layout.

Matching uses the complete set of stable display fingerprints. If no exact profile matches, the pipeline does not borrow a layout from a subset or superset. After a successful apply, a delayed refresh updates the topology signature before releasing the re-entry guard.

A geometry-only rearrangement in System Settings has no wake or topology cause and does not qualify merely because it differs from a profile. Preserving event context supports that distinction as well as the rapid-reconnect case.

Verify it with real event sequences

The recorded August fix and current code establish how the flags survive debouncing and how the restore decision is gated. They do not reproduce the timing of every display, dock or wake sequence.

Useful hardware checks include a reconnect within the debounce window, a wake with unchanged identities, a missing monitor and a deliberate position change. Each needs to show both the settled geometry and whether an apply occurred. No physical display-event matrix was run for this review.

Display events and automatic correction

After a burst of display events settles, the service checks both the display list and what caused the events.

Direct callAsync taskResponse / return
macOS events
Settling and eligibility
Profile and correction

Scroll or drag the background to move. Use the zoom buttons to resize.Arrow keys move between components. Enter selects.

Choose a component to explore

Select a numbered component on the map or use the component menu. Its details and connections will appear here.

No component selected.

All connections (9)
  1. 01 · Display callbacks and wake02 · Debounce contextevent flags · Async task
  2. 02 · Debounce context03 · Fresh display snapshotsettled refresh · Direct call
  3. 02 · Debounce context04 · Eligible causeaccumulated context · Direct call
  4. 03 · Fresh display snapshot04 · Eligible causesignature comparison · Direct call
  5. 04 · Eligible cause06 · Apply gateseligible event · Direct call
  6. 05 · Saved profile and settings06 · Apply gatesmatching settings · Direct call
  7. 06 · Apply gates07 · Core Graphics applycorrection needed · Direct call
  8. 07 · Core Graphics apply08 · Refresh and reseedafter apply · Async task
  9. 08 · Refresh and reseed03 · Fresh display snapshotnew observed signature · Response / return