hyprwinwrap 0.55v3
Stack several windows as backgrounds, for example a visualizer over part of the screen on top of a full-screen one.
Correction: Only the hyprlang plugin { hyprwinwrap { ... } } config is deprecated; showing a window as the background is not. It works through hl.plugin.hyprwinwrap.window() in Lua.
Correction: Retyped from deprecated: only the hyprlang plugin config block was deprecated; background windows work through the Lua config.
Before you upgrade to 0.55v3
What changed in 0.55v3
New Lua config: hl.plugin.hyprwinwrap.window({ class, title, layer, pos_x, pos_y, size_x, size_y }) can be called several times, and layer sets which one draws on top. The focus toggle is now hl.plugin.hyprwinwrap.focus("<title-or-class>").
0.55v3; the Lua config needs a Hyprland version with Lua configuration. The hyprlang plugin block still works but is marked deprecated.
Fixed and improved
Several background windows with a layer order, configured in Lua with hl.plugin.hyprwinwrap.window().
hl.plugin.hyprwinwrap.focus("<title-or-class>") picks which background window to focus; it can be bound to a key with hl.bind or called with hyprctl dispatch.
Read the evidence
Seeded by @iluxav with Claude Code (canido), from the release's public sources. Each change links to its evidence.