Implement wallpaper rendering with multi-output support

This actually renders a wallpaper for each output using the newly added
Buffer and BufferPool for shared-memory surfaces and creates a
wlr-layer-shell surface per output. Right now, each wallpaper
shares the same wallpaper (though scaled to each).

wl_output globals get added to a HashMap that is used by Output when it
gets an output event.

Fix null-safety in WindowManager when no seats/outputs exist and route
Window dimensions through pending_manage.
This commit is contained in:
Ben Buhse 2026-02-07 17:27:24 -06:00
commit e186a2d017
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
9 changed files with 568 additions and 35 deletions

View file

@ -10,6 +10,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
These are in rough order of my priority, though no promises I do them in this order.
- [ ] Switch all structs to idiomatic Zig init/deinit pattern (init returns value, caller decides stack/heap)
- [ ] Support per-host config using properties
- [ ] Support wallpapers
- [ ] Support a bar
- [ ] Support starting programs at WM launch