Skip to content

[bug]: Built-in display doesn't reconnect automatically after external display is physically disconnected #37

Description

@M1ka35

OpenDisplay version

0.8.1

Build flavor

Full

macOS version / build

26.4

Mac model & chip

MacBook Air 13inch M3

Display model(s)

Samsung Oddessy G6 OLED

Connection route

USB-C hub

Steps to reproduce

  1. Connect an external display (in my case, a 1440p monitor) to a MacBook with the lid open.
  2. Use OpenDisplay to logically disconnect the built-in display, so only the external display is active.
  3. Physically disconnect the external display (unplug the cable).

Expected vs actual behavior

Expected Behavior

The built-in display should automatically reconnect/reactivate as the sole remaining display, per the app's documented safety guarantee.

Actual Behavior

The built-in display stays off. The Mac is left with no active display until manual intervention.

Was a recovery action needed?

Manual intervention

Logs / diagnostics bundle

With some help of AI this is my report.

Attempted Workarounds

  • Closing and reopening the MacBook lid does not restore the built-in display.
  • OpenDisplay's in-app reconnect/recovery options did not resolve it either.
  • sudo killall -HUP WindowServer does bring the built-in display back, but this restarts WindowServer and produces a disruptive "soft reboot" experience (screen flickers, apps appear to reset their display connections) — not a clean fix, and risky for unsaved work.

Environment

  • External display: 1440p monitor, connected via a DisplayLink USB-C hub (not natively connected via Thunderbolt/USB-C DisplayPort Alt Mode)
  • DisplayLink Manager app: running in the background throughout, as required for the hub's display output to function

Additional Context

Flagging the DisplayLink hub setup in case it's relevant — the external display in this case is DisplayLink-driven rather than natively GPU-connected, which may go through a different code path for connect/disconnect detection than a native external monitor. Not certain this is the cause, but worth ruling in or out since it may be specific to DisplayLink setups rather than affecting native external displays.

This may also relate to the disconnect feature being built on the experimental ExperimentalLifecycleProvider (SkyLight) mentioned in the README.

-- end of AI helping me formulate this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions