development log
FF00 VWM can handle pictures now
The second alpha adds static wallpapers, rotation, mirroring, and the lifecycle work I said had to come first.
FF00 VWM started because I wanted video wallpaper without fighting xwinwrap. The second alpha is where it starts becoming the broader X11 wallpaper manager I had in mind: it can handle normal pictures now too.
PNG, JPEG, WebP, and SVG are in. Each monitor can have its own file and layout. Pictures can be rotated by 90-degree steps, mirrored horizontally or vertically, and tiled. Those changes only affect what is drawn on the wallpaper; the source file is never edited or converted.
I did the boring lifecycle work in the same update because it was supposed to
come first. Controller operations now share a real lock, an owned renderer can
be recovered if the runtime index disappears, and mpv starts with --no-config
so my unrelated player setup cannot quietly change wallpaper behavior.
The image backend does not run pictures through mpv. It decodes them locally and paints the final pixels into the same kind of X11 desktop-level window used by the video renderer. The Nix package pins the WebP and SVG loaders instead of assuming the right desktop modules happen to exist globally.
I tested PNG, WebP, SVG, and video in live X11 windows, then repeated WebP with the actual wrapped Nix package. The automated suite covers JPEG as well, plus rotation order, layout, configuration migration, lock contention, stale state, PID reuse, malformed ownership markers, and the exact mpv arguments.
The release is still an alpha. Hot-plugging still needs a manual refresh, per-monitor Apply currently reapplies every connected saved assignment, and the larger real-login and forced-termination matrix is not finished. That is the honest edge of this version.
With NUR configured, the install address stays the same:
nix-shell -p nur.repos.crimsonvariable.ff00-vwm
The package behind that address is now 0.2.0-alpha.1.
Open the release, read the project record, or inspect the NUR catalogue.