All versions since v1.0.10
v1.0.10
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.9...v1.0.10
v1.0.11
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.10...v1.0.11
v1.0.12
What’s Changed
- 111 raise on focus does not engage in floating mode by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Aqueous/pull/113
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.11...v1.0.12
v1.0.13
What’s Changed
- bumping zig version to 0.17 by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Aqueous/pull/120
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.12...v1.0.13
v1.0.14
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.13...v1.0.14
v1.0.15
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.14...v1.0.15
v1.0.16
What’s Changed
- fixed dwindle overflow by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Aqueous/pull/121
- added patch 0039 to adjust fifo pacing when occluded by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Aqueous/pull/122
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.15...v1.0.16
v1.0.17
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.16...v1.0.17
v1.0.18
Fixed most of the biggest memory issues
Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.17...v1.0.18
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-v1is now version 2. Sessions advertise per-format encoding, and the portal publishes PipeWiretransferFunctionandcolorPrimariesfor 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_volumeon its scRGB-capable Vulkan path, letting Mesa’s Wayland WSI enumerateVK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXTfor 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
matchingfield withalways,once, andstartupmodes (plus aliases). Aoncerule 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;startupapplies 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_positionsupportsappend,right,left,above, andbelow. The deprecatedopen_new_windows_to_rightboolean still works and mapstruetorightandfalsetoappend; if both keys appear, the later one wins. - 👀 Vertical arrivals stay visible —
aboveandbelowarrivals 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.tomlandlayout.tomlare packaged as inert, fully commented templates and copied to~/.config/aqueouson first login only when missing. The layout seed is skipped when$AQUEOUS_LAYOUTor an active[layout].pathis set. - 💾 Backups — both templates are included in package backup lists, and Gentoo installation seeds them too.
- 📏 Top strut default — the shipped
wm.tomlno 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
