Skip to content

Spec: Power Display ambient-light (ALS) adaptive brightness for external monitors#49199

Open
MrRishabhJain wants to merge 2 commits into
microsoft:mainfrom
MrRishabhJain:spec/power-display-adaptive-brightness
Open

Spec: Power Display ambient-light (ALS) adaptive brightness for external monitors#49199
MrRishabhJain wants to merge 2 commits into
microsoft:mainfrom
MrRishabhJain:spec/power-display-adaptive-brightness

Conversation

@MrRishabhJain

Copy link
Copy Markdown

Summary

Design spec for ambient-light (ALS) adaptive brightness for external monitors in Power Display, as discussed and agreed in #49038.

The feature continuously maps the device''s ambient light sensor reading (the same ALS Light Switch already reads) to each external monitor''s brightness over DDC/CI (the path Power Display already uses) — i.e. auto-brightness for external monitors, the continuous/sensor-driven counterpart to the schedule-based #47480.

This PR adds only the spec doc (doc/specs/power-display-adaptive-brightness.md), per the repo''s spec-first process (doc/specs/readme.md). No code.

What the spec covers

  • Core model — a single per-monitor formula: target = clamp(curve(lux) + offset, min, max).
  • Per-monitor calibration curve — the mechanism that keeps differently-behaving panels visually matched across the whole ambient range.
  • Per-monitor offset — live, phone-style personalization; manual/CLI nudges become an offset (default) with an optional pause behaviour.
  • Live slider UX — when adaptive is on, the slider reflects the computed value and dragging it sets the offset.
  • Sensor trust & lifecycle — lid-closed / clamshell detection (GUID_LIDSWITCH_STATE_CHANGE + QueryDisplayConfig), hold-last-good instead of dimming to black, and honest fallbacks.
  • Smoothing/hysteresis/rate-limiting for flicker- and wear-safe DDC/CI writes, settings persistence, telemetry, a11y/localization, risks, and phased delivery.

Discussion / sign-off

Behaviour was reviewed with @moooyo on #49038 (configurability, CLI/manual +/- while adaptive, slider behaviour) — agreed to proceed.

Closes nothing yet; tracks #49038. Related: #47480, #42566, #35564.

MrRishabhJain and others added 2 commits July 1, 2026 15:42
…xternal monitors

Design spec for a per-monitor adaptive brightness mode in Power Display driven by the device ambient light sensor, bridging Light Switch's ALS reader and Power Display's DDC/CI brightness control. Tracking issue: microsoft#49038.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ust lifecycle

Incorporates the design discussed on microsoft#49038: unified per-monitor adaptive-curve + offset model (answers configurability, CLI/manual +/-, and slider behaviour), per-monitor calibration rationale for multi-monitor sync, and a dedicated Sensor trust & lifecycle section (lid-closed detection, hold-last-good, clamshell boundary, fallbacks).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant