Skip to content

Multi-screen M0: populate the per-monitor display registry on Linux (every plug-in's claims, displayxr-cli displays) #1850

Closed

Description

@dfattal

Milestone M0 of the multi-screen plan (docs/roadmap/multi-screen.md, ADR-047 — PR #1849). Epic: #69.

Deliverable

displayxr-cli displays --claims on a Linux box lists every monitor with geometry, physical size, EDID ids, resolved plug-in and confidence. On ds1-linux: eDP-1 → sim-display (FALLBACK), HDMI-1 (Acer DS1) → leia-sr.

Runtime work

  • Real Linux os_display_edid_enumerate: RandR monitors (os_display_desktop_enumerate) joined with sysfs DRM connectors (/sys/class/drm/card*-*/edid: manufacturer/product, serial, mm, connector name); join by output name, else mm, else pixel mode; DRM-only records with unknown origin on pure Wayland. Replaces the stub in os_display_edid_stubs.c that keeps build_dp_registry() a no-op off Windows.
  • POSIX ensure_display_sources loads every manifest plug-in for probe_displays claims (mirrors Windows collect_display_sources_platform), honouring DXR_PLUGIN_EXCLUSIVE / XRT_PREFERRED_PLUGIN_ID. Active-plug-in selection unchanged.
  • Hardware-free unit tests for the EDID parser and the join.

Plug-in work (displayxr-leia-plugin)

Out of scope

Hotplug, per-screen preferred plug-in, any compositor/oxr change, plug-in ABI changes (those are M1–M3).

Gate

CLI output on ds1-linux pasted in the PR; build_linux.sh + selftest green; Control Panel #793 phase 1 can read the same table afterwards.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions