Show a chosen app window as the desktop background, behind all other windows.
Good to know
Several windows and layers need the Lua config; the hyprlang block handles one window. Class and title are exact matches.
A Hyprland plugin that shows any window as your wallpaper
Built by @gen3vra on GitHub. This page was written by @iluxav from public sources, last updated for 0.56v2 (2026-09-14), and may lag behind new releases.
Maintain hyprwinwrap? Claim itPin any app window, such as a terminal running cava or a video, behind your other windows as a desktop background on Hyprland.
Several windows and layers need the Lua config; the hyprlang block handles one window. Class and title are exact matches.
Positions and sizes are no longer rounded, so values such as size_y = 100 * 1050 / 1080 land on an exact pixel. A failed window rule now shows a Hyprland notification. hyprpm.toml pins this build for Hyprland 0.56.0 to 0.56.2.
0.56v2; Hyprland 0.56.0 to 0.56.2.
Seeded by @iluxav with Claude Code (canido)
Builds against Hyprland 0.56.0. A background window no longer flashes when it closes.
0.56; for Hyprland 0.56.
Seeded by @iluxav with Claude Code (canido)
The background window is no longer rendered when the workspace on that monitor has a fullscreen window. Windows that suspend when hidden, such as kitty, keep updating after a workspace change. Groups 0.55v4 and 0.55v5.
0.55v5; this build is pinned for Hyprland 0.55.0 to 0.55.4.
Seeded by @iluxav with Claude Code (canido)
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.
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.
Seeded by @iluxav with Claude Code (canido)
First releases (0.54, 0.55, 0.55v2). A plugin { hyprwinwrap { class, title, pos_x, pos_y, size_x, size_y } } block picks the window by exact class or title and places it behind everything, with position and size as percentages of the screen. The hyprwinwrap_interactivity dispatcher lets you focus and use that window.
Install with hyprpm add https://github.com/gen3vra/hyprwinwrap and hyprpm enable hyprwinwrap; needs Hyprland 0.54 or newer, with 0.55 supported from tag 0.55.
Seeded by @iluxav with Claude Code (canido)