Software 44591 Published by

Hyprland 0.56 arrived on July 20 with a massive 335-commit update that nearly doubles the compositor's Lua scripting surface area while introducing configurable window motion blur and HDR tonemapping controls. Lead developer Vaxry confirmed the release contains zero breaking changes despite the sheer volume of added features, including a new interactive REPL for hyprctl and expanded plugin event APIs. The update also cleans up the architecture by extracting core state management from the monolithic compositor class to improve testability and reduce per-frame heap allocations. If you rely on nix modules or hyprpm plugins, give the ecosystem a week to stabilize before fully committing to the upgrade.



Hyprland 0.56 ships with expanded Lua scripting, motion blur, and zero breaking changes

The July 20 release packs 335 commits into a tiling compositor that refuses to ask you to relearn your config.

Hyprland 0.56 landed on July 20, 2026, and it’s the kind of update that turns a polished compositor into a programmable platform. Lead developer Vaxry pushed 335 commits across 300 files, adding roughly 13,300 lines while deleting about 4,900. And despite the sheer volume, there are zero breaking changes. Not one.

Keep in mind that a jump this large usually means you’re going to spend your weekend hunting down broken bindings. Vaxry explicitly called it out: "No breaking changes! :)" Given the size of the update, that’s honestly unusual for a C++ project this mature. The release also marks a clear pivot from the v0.55 scrolling layout overhaul into scripting depth and visual polish. Two major versions in six months. That’s a pace most window managers wouldn’t dare attempt.

Hyprland

The Lua expansion (and why it matters)

The single biggest shift in v0.56 is the Lua API. Hyprland nearly doubled its scripting surface area. You can now write custom live gestures entirely in Lua, query keyboard state mid-press via is_key_down, and drop into an interactive REPL through hyprctl thanks to a contribution from @Dregu. If you’ve ever wanted to bind a macro to a specific monitor’s physical dimensions, physicalWidth and physicalHeight are finally there.

The plugin system got its own hook line. New APIs let custom plugins register for and dispatch compositor events, while get_loaded_plugins gives you basic introspection. Stub type generation for the config file means IDE autocomplete actually works now. Next, the workspace management functions expanded with raw set_ APIs and a change_id event that fires whenever a workspace’s contents shift.

Rendering, layout, and the invisible refactor

Visually, v0.56 brings motion blur you can toggle per window. Not cheap. It also adds HDR tonemapping controls, gradient animations for shadows and glows, and a no_auto_hdr rule if your panel is screaming at you at max brightness. Wayland protocol-wise, xdg interactive drags now work fully, background effects have their own protocol, and input capture gets a partial permission-based implementation.

Head here to check the full diff, but keep in mind that half the code didn’t actually touch the user-facing experience. Vaxry and the team extracted layout control, monitor queries, workspace state, and view state from the monolithic Compositor class. The animation manager got a cleaner lifecycle, fullscreen logic is now testable, and per-frame heap allocations in the renderer are being trimmed. These are the kind of changes that don’t show up in a changelog but prevent the codebase from becoming a maintenance nightmare.

It’s a rather ambitious release for a project that’s technically still in its late-beta phase, though the Lua expansion and motion blur do make it feel closer to desktop-ready. However, at the same time, the post-release tracker already shows a regression. Issue #15494 reports window animations running painfully slow for some users after the refactor. Closed now, but it’s a reminder that extracting animation state from CCompositor probably shifted timing on a few configs. Ecosystem projects like nix modules and hyprpm plugins are already opening support issues. If you rely on community tooling, give it a week to catch up.

You can grab the release notes straight from GitHub, compile from source if you prefer the bleeding edge, or wait for your distro packages to stabilize. The commit history is public, the API is documented, and if you write a Lua script that works well with v0.56, the team will probably appreciate it.