Skip to content

All versions since v1.0.19

v1.0.19 Latest

๐ŸŒŠ Aqueous v1.0.19 โ€” HDR Color, Live Slides, and Smarter Windows

Aqueous v1.0.19 is a color and motion release. HDR capture and Windows scRGB content arrive alongside a new 600-nit HDR preset, workspace and scrolling slides now move live client content, and window rules gain Once and Startup matching. Scrolling columns learn new placement options, output selection follows the pointer, and a batch of drag, focus, transition, and overflow fixes tightens the edges.

๐ŸŒˆ HDR and color management

  • ๐ŸŒ• 600-nit HDR preset โ€” hdr_level = "600" joins 100, 400, and 1000. Automatic selection now chooses 100 up to 250 nits, 400 up to 500, 600 up to 800, and 1000 above that.
  • ๐ŸŽฅ HDR capture metadata โ€” capture protocol aqueous_capture-color-v1 is now version 2. Sessions advertise per-format encoding, and the portal publishes PipeWire transferFunction and colorPrimaries for every offered format: SMPTE 2084/BT.2020 for native PQ, gamma 2.2/BT.709 for SDR and converted 8-bit output.
  • ๐Ÿ–ผ๏ธ 8-bit destinations from PQ outputs โ€” PQ output frames copied to 8-bit SHM or DMA-BUF destinations are decoded to SDR with BT.2020 mapped to sRGB. Native and 10-bit destinations keep their source encoding.
  • ๐ŸชŸ Windows scRGB snapshots โ€” snapshot buffers now carry the fixed Windows-scRGB mapping (1.0 = 80 cd/mยฒ), so live slides and other snapshot-based transitions match their source regardless of the SDR-white setting. This uses private wlroots patch 0043.
  • ๐Ÿ”ฌ Extended target volume โ€” Aqueous advertises extended_target_volume on its scRGB-capable Vulkan path, letting Mesaโ€™s Wayland WSI enumerate VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT for Proton and Wine HDR. It does not change the fixed 80-nit predefined mapping. (#130)

๐ŸŽž๏ธ Live workspace and scrolling slides

Workspace and scrolling slides now display live client content while input geometry stays at its settled destination. (#133)

  • ๐ŸŽฌ Live content in motion โ€” preview callbacks, presentation, and captured explicit-sync lifetimes come from private wlroots patch 0045, with callback-paced content through transitions and reversals.
  • ๐Ÿงฏ One-frame flash fixed โ€” outgoing workspace trees are now disabled before the transition clears prev_workspace, so finalizing a swap on one output can no longer flash the previous workspace on a neighboring output. (#106)
  • ๐Ÿงช More stress coverage โ€” added probes for buffer retention and Xwayland resize churn alongside the live-slide harness.

๐Ÿงฉ Window rules

  • โฑ๏ธ Matching timing โ€” new matching field with always, once, and startup modes (plus aliases). A once rule stays bound to the first window that claims it across title, tag, and content-type changes and survives hot reloads until its matcher is edited; startup applies during the first 10 seconds after compositor startup.
  • ๐Ÿ› ๏ธ Settings rule editor โ€” Pearl exposes Matching timing as a first-class rule field with native edit, save, and reopen coverage.
  • ๐ŸชŸ Portal picker stays floating โ€” the portal picker is now forced floating so it cannot be tiled. (#129)

๐Ÿ–ฑ๏ธ Focus, drag, and window switcher

  • ๐Ÿ–ฑ๏ธ Pointer selects the output โ€” physical pointer motion makes the output under the cursor the target for output, workspace, and window actions without enabling focus-follows-mouse. Hovering an empty output no longer steals keyboard focus.
  • โ†”๏ธ Corner-aware resize โ€” floating resize drags hit-test the pointer quadrant so the corner opposite the pointer stays anchored.
  • โŒจ๏ธ Switcher commits on release โ€” releasing the initiating modifier finishes the window switcher immediately. Shift is ignored so a reverse-cycle chord can release Shift without ending the presentation.
  • ๐Ÿท Wine/Wayland input fix โ€” Xwayland focus and grab resync paths now skip redundant text-input focus calls when the target surface is already focused, avoiding an assertion that interrupted Wine sessions.

๐Ÿงญ Layout and scrolling

  • ๐Ÿ“ New window placement โ€” new_window_position supports append, right, left, above, and below. The deprecated open_new_windows_to_right boolean still works and maps true to right and false to append; if both keys appear, the later one wins.
  • ๐Ÿ‘€ Vertical arrivals stay visible โ€” above and below arrivals pan within their column.
  • ๐Ÿ”ฒ Themeable snap zones โ€” snap-zone preview colors now derive from the configured window border colors.
  • ๐Ÿงฎ Overflow floor fixed โ€” dwindle and reverse-dwindle minimum content size is now max(client minimum, 320 x 200) logical pixels instead of scaling with output size, so larger displays fit more tiles instead of stretching a fixed handful.

๐Ÿงฐ Configuration and packaging

  • ๐Ÿ“„ Seeded templates โ€” input.toml and layout.toml are packaged as inert, fully commented templates and copied to ~/.config/aqueous on first login only when missing. The layout seed is skipped when $AQUEOUS_LAYOUT or an active [layout].path is set.
  • ๐Ÿ’พ Backups โ€” both templates are included in package backup lists, and Gentoo installation seeds them too.
  • ๐Ÿ“ Top strut default โ€” the shipped wm.toml no longer adds a 32 px top strut on top of layer-shell exclusive zones.
  • โš ๏ธ Read-only default warning โ€” Settings now warns when edits resolve to system defaults that the helper must refuse to write.
  • ๐ŸŒ• HDR 600 in configuration โ€” outputs.toml, display schemas, and the display preview include the 600-nit option.

๐Ÿงช Build and test updates

  • ๐Ÿงฑ LLVM test steps โ€” the GpuPin and ToplevelIcon test steps now receive -Dllvm. (#115)
  • ๐Ÿงช New headless coverage โ€” live-slide transitions, scRGB snapshots, Proton HDR color management, workspace transition finalization, and snapshot color checks.
  • ๐Ÿฉน Assertion fixes โ€” cleaned up extra assertions in the test suite.
  • ๐Ÿงท Private wlroots patches โ€” the build hook and Nix packaging pin patches 0043, 0044, and 0045; rebuild the patched wlroots dependency before testing HDR or live slides.

๐Ÿš€ Upgrade notes

open_new_windows_to_right is deprecated. Use new_window_position; true maps to right and false maps to append, so existing configurations keep working.

The first login seeds input.toml and layout.toml only when they are absent. Existing files are left alone, and the layout template is not seeded when an explicit sidecar is configured.

HDR 600 is opt-in through hdr_level = "600". Automatic selection chooses it for panels whose peak falls between 501 and 800 nits.

Capture clients should request frame information before capture. The portal handles the new session description, but 8-bit captures from PQ outputs will be delivered as SDR.

โค๏ธ Thanks

โค๏ธ Thanks to Kode54 for the scRGB fix and test tooling, and to everyone who tested HDR capture, live slides, and the new rule timing.

๐Ÿ“‹ Full Changelog: v1.0.18โ€ฆ8639e2c

๐Ÿ”€ Release commit: 8639e2c

ยฉ 2026 Seafoam LabsShelly Chel