Screen Warming
Aqueous exposes experimental screen warming to compatible clients such as Pearl. It adjusts eligible SDR outputs through the Vulkan renderer. Normal builds include the protocol; no warming-specific build flag is required.
Requirements
Section titled “Requirements”- A live SDR output using Vulkan with output color-transform support.
- A neutral supported color baseline; arbitrary external calibration is not adopted automatically.
- A compatible client using
aqueous-output-warming-v1, such as Pearl.
HDR outputs, mirror sources/destinations, and unsupported renderers are ineligible. Physical SDR outputs can be eligible, but protocol availability does not establish measured display calibration or physical restoration accuracy.
Use warming
Section titled “Use warming”In Pearl, open Settings → Appearance → Night Light:
- Enable Night Light, set Color temperature (K) and choose Manual or Custom times (local time).
- Select Apply & save and check each display’s status.
- Use the Control center Night Light tile for a temporary override, then Resume saved policy to end it. To turn warming off, disable Enable Night Light, Apply & save and check restoration completes.
You can also check pearlctl night-light status; see
Pearl Night Light.
Native requests accept 2500–6500 K, with
6500 K neutral. These temperatures are adjustment parameters, not measured
white points.
There is no outputs.toml temperature setting or aqueousctl warming command.
Use a compatible client and check its per-output result. A saved schedule alone
does not mean the display has changed.
| Status | Meaning |
|---|---|
| Pending | An adjustment is waiting to commit. |
| Committed | The backend committed the requested adjustment. |
| Restoring | The compositor is restoring its current authorized baseline. |
| Unavailable | The output or current color path is ineligible. |
| Busy | Another client owns the color adjustment. |
| Failed | The requested operation did not complete successfully. |
Different outputs can have different results; a partially warmed desktop is not reported as all active. Version 1 acknowledges backend commits, not physical presentation or measured color accuracy.
Only one monitor changes, or Night Light is unavailable
Section titled “Only one monitor changes, or Night Light is unavailable”Check each display’s status. Partial means only some displays applied warming. HDR outputs and mirrors cannot warm. Busy means another color-control client owns the output; release it in that client before retrying. For Failed or Restoring, check the result before assuming normal colors have returned.
Night Light does not calibrate a display. Arbitrary ICC import is not supported here, and display profiles save arrangements.
Ownership and restoration
Section titled “Ownership and restoration”Native warming and legacy gamma control share exclusive ownership. A competing client cannot displace an existing owner. Pearl uses the native protocol and does not fall back to legacy gamma when it is unavailable.
Output mode/color changes, HDR activation, mirroring, session changes, renderer recovery, or output removal can revoke warming. Releasing a lease or disconnecting the client starts baseline restoration. Restoration can remain blocked after a backend failure; the reported state keeps that distinction.
Composed output captures include warming. Isolated window captures are independent of the output adjustment. See capture color behavior.
The source contract documents protocol ownership, eligibility, commit results, and validation limits.
