Hey everyone!
I'm Soumalya, a developer interested in Linux and systems programming. I've been working on Wallr, a wallpaper engine for Wayland written in Rust, and wanted to share it here to get feedback from other people in the open-source community.
I started building it partly to learn more about Rust, GPU rendering, and how Wayland works under the hood. It's grown quite a bit since then.
Wallr supports static images, GIFs, and video wallpapers. It also has 11 transition effects, per-monitor wallpaper settings, directory watching, and optional integrations with Matugen, Wallust, and Pywal.
Under the hood, it uses wgpu for rendering, with a background daemon that communicates with the CLI over a Unix socket. Video playback uses FFmpeg, with hardware decoding where supported. I've also included a benchmark script to compare Wallr with awww, although I'd like to test it across more hardware and compositors before drawing broad conclusions about performance.
It currently targets Hyprland, Sway, niri, and compatible KDE Plasma 6 setups. GNOME/Mutter isn't supported at the moment.
For transparency, I used AI assistance during development to make my workflow easier. I'm continuing to work on the project, test it, and improve the implementation.
Source code and installation instructions:
https://github.com/programmersd21/wallr
I'd appreciate feedback on the code, architecture, compatibility, or anything that could be improved. If you use another Wayland wallpaper tool, I'd also be interested in hearing what you like about it and what you think could be done differently.
Thanks for reading!