Skip to content

All versions since v0.4.3

v0.4.3

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.4.2...v0.4.3

Vulkan Updates and animation fixes

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.4.3...v0.4.4

v0.4.5

  • Fixed Blur
  • Overview mode enabled
    • default setting for toggle_overview (used in scrolling) is Super + W

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.4.4...v0.4.5

0.4.6

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.4.5...0.4.6

Scrolling update

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/0.4.6...0.4.7

v0.4.8

This release expands HDR and color-management support, brings aqueousctl outputs to wlr-randr information parity, improves portrait display layouts, and fixes maximized floating-window behavior.

Highlights

  • Added Auto HDR-style SDR highlight expansion on HDR outputs.
  • Added native Wine/Proton HDR paths through color-management-v1 version 3.
  • Added full output inspection and JSON reporting to aqueousctl.
  • Added automatic vertical placement for scrolling layouts on portrait displays.
  • Improved packaging, UWSM integration, and release automation.

HDR and color management

  • Added configurable HDR peak presets through hdr_level:
    • 100, 400, or 1000 cd/m²
    • "auto" selects the nearest preset using EDID luminance metadata
  • Added configurable SDR diffuse white through sdr_white_level.
  • Added auto_hdr and auto_hdr_boost output settings.
  • Added the per-window hdr_expand rule.
  • Added Windows scRGB and Windows BT.2100 descriptions for Wine/Proton HDR clients.
  • Corrected target and reference luminance reporting so Proton receives valid HDR headroom.
  • Preserved SDR output reporting to prevent false HDR detection.
  • Added wlroots patches exposing EDID HDR metadata, SDR white-level rendering, and Windows HDR color-management support.
  • Added live tests for color-management luminance and Proton HDR behavior.

Auto HDR requires a build with Vulkan effects enabled.

aqueousctl output reporting

aqueousctl outputs now reports the complete wlr-randr information set:

  • Connector name and description
  • Manufacturer, model, and serial number
  • Physical dimensions
  • Enabled state
  • Every advertised mode
  • Current and preferred modes
  • Logical position
  • Transform
  • Scale
  • Adaptive-sync state

Use aqueousctl outputs --json for the same atomic snapshot with wlr-randr-compatible field names and value types.

Window management

  • Added prefer_vertical_on_portrait for scrolling layouts. New windows can automatically join the active column when its local usable region is taller than it is wide.
  • Fixed minimizing and restoring maximized floating windows.
  • Fixed maximized-window stacking in floating layouts so focus order determines which floating window appears on top.
  • Expanded fixture and integration coverage for vertical scrolling behavior.

Packaging and session integration

  • Updated package versions and release metadata to 0.4.8.
  • Updated install and upgrade messages with current configuration, session, shell, and logging information.
  • Moved the packaged UWSM environment from /etc/uwsm/env-aqueous to /etc/xdg/uwsm/env-aqueous, where UWSM actually discovers system configuration.
  • Corrected environment packaging across standard, Git, Intel, binary, and DMS packages.
  • Added the missing xcb-util-renderutil CI dependency.
  • Updated release and artifact GitHub Actions.
  • Improved CI concurrency and branch filtering.

Auto HDR development tools

Added an Auto HDR training and evaluation stack with:

  • Synthetic SDR/HDR pair generation
  • Multiple tone-mapping degradation methods
  • Gain-map, LUT, and parameter-regression model options
  • Training, evaluation, and export tooling
  • ROCm acceleration and GPU validation
  • Python 3.12 and 3.14 environment support

Upgrade notes

  • wayland-protocols 1.49 or newer is now required.
  • Restart the complete Aqueous session after upgrading.
  • If you maintain a custom system-wide UWSM environment under /etc/uwsm, move it to /etc/xdg/uwsm. Per-user overrides remain supported under ~/.config/uwsm.
  • Existing Aqueous configuration files remain compatible; all new HDR and portrait-layout options are optional.

What’s Changed

New Contributors

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/0.4.7...v0.4.8

v0.5.0

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.4.8...v0.5.0

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.4.8...v0.5.0

v0.6.0

Aqueous — changes since v0.5.0

This update makes Dank Material Shell the default for the source packages, adds screen mirroring and more scrolling controls, and improves fullscreen transitions, multi-monitor reliability, and HDR capture support.

Desktop and shell integration

  • Source packages now default to Seafoam Labs’ dms-aqueous, including the Aqueous Settings plugin, screen-sharing chooser, Spotlight launcher, and region screenshots. The prebuilt PKGBUILD-bin retains Noctalia; the new gitNoctalia/PKGBUILD preserves a Noctalia Git package option.
  • Improved DMS settings control colors and added integration coverage for the shell, settings helper, and packaging.
  • Added persistent shell IPC through AQUEOUS_SOCKET, with capability discovery, snapshots, acknowledged state updates, and typed runtime commands. Existing aqueousctl commands remain supported. DMS adoption of the new socket is still a separate integration step.
  • Added native ext-background-effect-v1 support so compatible applications and shells can request blur for precise regions. Global blur settings and explicit rule exclusions remain authoritative.

Window management and input

  • Added open_new_windows_to_right for scrolling layouts: new windows can open immediately beside the focused column. The default remains insertion at the far right.
  • Added the scrolling_full_width window rule to open matching applications with a full-width scrolling column. Manual width changes override the rule.
  • Mouse-wheel and touchpad scrolling can now bind to built-in actions and custom commands using WheelUp, WheelDown, WheelLeft, and WheelRight. Existing viewport wheel shortcuts can be reassigned or disabled.
  • Added the optional mouse_follows_focus setting to move the pointer into a newly focused window. Pointer-driven interactions avoid triggering a warp.
  • Output focus shortcuts now move the pointer to the destination output’s center and work with empty outputs.
  • Improved fullscreen workspace slide transitions, including transparent fullscreen content, containment within the correct output, and interrupted transitions.

Displays, rendering, and reliability

  • Added screen mirroring with independent refresh rates and aspect-preserving letterboxing, configurable through mirror_of or the Displays settings page. Initial support is limited to one SDR mirror pair on the same backend/device, with normal orientation. Mirrors go black while the session is locked or the source is unavailable. See the mirroring guide.
  • Fixed cross-monitor window remapping and explicit-sync buffer release issues that could leave windows stalled after being hidden and shown again.
  • Added retries with backoff after output rendering or commit failures, allowing recovery from transient failures.
  • Preserved color-management and Auto HDR state in captured window buffers used for workspace transitions and resizing.
  • Added FIFO v1 protocol support for client presentation pacing.
  • Added an SDR screenshot conversion path for 10-bit HDR outputs, plus native 10-bit shared-memory format negotiation for ext image-copy capture. Experimental aqueous-capture-color-v1 metadata enables cooperating clients to identify the captured color encoding. Native HDR export requires client and encoder support; the synchronous conversion fallback is intended for screenshots, with continuous recording still requiring further work and validation.
  • Added regression coverage for mirroring, output recovery, fullscreen transitions, window remapping, wheel bindings, capture formats, and FIFO, plus Proton Wayland focus-stall diagnostics.

Upgrade notes

  • Window rules no longer implicitly select Game Mode. Omitting layout preserves the current layout. Add layout = "game-mode" to rules that relied on the previous behavior. An existing Game Mode workspace claim may need a manual layout selection to clear it.
  • Existing user configuration is preserved when switching to DMS source packages. Update launcher and screenshot commands in ~/.config/aqueous/wm.toml to dms ipc call spotlight toggle and dms screenshot region, including direct screenshot bindings. Compare with /usr/share/aqueous/wm.toml for the packaged defaults.
  • Remove duplicate manual shell startup entries when adopting packaged startup. GitPKGBUILD/PKGBUILD uses dms.service; remove manual enablement of the old aqueous-dms.service when switching to that variant. Other source variants use aqueous-dms.service.
  • The nested launcher is now launch_aqueous.sh, with AQUEOUS_DMS_CMD for overriding its shell command.
  • Rebuild and ship the matching patched wlroots library, then restart Aqueous for the new protocol and capture functionality. Diagnostic builds with -Dvulkan-effects=false also require this patched dependency.

Full comparison at the reviewed master commit

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.5.0...v0.6.0

v0.7.0

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.6.0...v0.7.0

v0.8.0

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.7.0...v0.8.0

v0.9.0

  • Added window switched
  • Finished wayland protocols
  • Added more compatibility for Pearl

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.8.0...v0.9.0

v0.9.1

Fixing my own screw up

v1.0.0

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v0.9.1...v1.0.0

v1.0.1

v1.0.2

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.1...v1.0.2

v1.0.3

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.2...v1.0.3

v1.0.4

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.3...v1.0.4

v1.0.5

What’s Changed

New Contributors

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.4...v1.0.5

v1.0.6

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.5...v1.0.6

v1.0.7

Fixed a bunch of memory leaks. Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.6...v1.0.7

v1.0.8

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.7...v1.0.8

v1.0.9

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.8...v1.0.9

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

Full Changelog: https://github.com/Seafoam-Labs/Aqueous/compare/v1.0.11...v1.0.12

v1.0.13

What’s Changed

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

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-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