Backlayer is an animated wallpaper runtime for Linux — a daemon, Wayland layer-shell surfaces, dedicated renderers, and a native Scene Composer. Hyprland is the first supported compositor, with broader Linux support as the goal.
Wallpaper kinds
Static wallpapers with per-assignment fit controls: cover, contain, stretch, or center.
Video wallpapers through a dedicated video-runner using ffmpeg and ffprobe, with libmpv on the roadmap.
WGSL shaders rendered with wgpu — static or animated with a built-in time/resolution uniform block.
A real-time 2D scene graph with sprites, effects, and GPU-native particles, authored in the Scene Composer.
Scene Composer
A full-screen editor for native scene wallpapers: sprite nodes, glow, vignette, scanlines and fog effects, plus particle emitters with shapes, burst emission, over-life curves and tint. Scenes save as single-file .backlayer assets.
Runtime
backlayerd maps stable monitor identifiers to wallpapers, surviving output-name changes across reconnects.
Wallpapers live on background layer-shell surfaces — your desktop input is never intercepted.
Pause on fullscreen, pause on battery, and FPS limiting are runtime rules from day one.
Dedicated renderer processes per wallpaper, supervised and restarted by the daemon on failure.
A bundled user service gives login autostart and daemon recovery for day-to-day reliability.
Native wallpapers pack into portable .backlayer files with an asset-relative manifest.
Quick start
Requires Hyprland on Wayland, a Rust toolchain, Node.js, pnpm, and ffmpeg/ffprobe for video wallpapers. An Arch package layout and AUR-ready files ship under packaging/.
pnpm install
cargo run -p backlayerd -- --serve
pnpm ui:tauri:dev
For login-time autostart, enable the bundled systemd --user unit. See docs/install.md for the full flow.
A working wallpaper plugin lets Plasma render image, video, and simplified scene wallpapers through Plasma's native wallpaper system — the first step beyond wlroots compositors.
Behind BACKLAYER_ENABLE_WORKSHOP=1, local Wallpaper Engine items can be imported and classified as video, scene, or web. Compatibility is partial — native assets are the primary direction.