Use XRGB and post damage
Minor cleanup
Initial commit
Likely the fastest, least user-friendly, and worst named Wayland wallpaper utility possible. Requires for zwlr_layer_shell_v1
and wp_viewporter
.
The wallpaper is stored in ARGB8888 format on disk, so that a file descriptor for the file can be sent straight to the Wayland server. All outputs share the same buffer, and a viewport is used to match the content to each output.
Unscientific speed comparison with three 4k displays, measured from start of main to surface commit:
tool | input | first output | last output |
---|---|---|---|
wayllpaper | 31.6 MiB bin | 1 ms | 1 ms |
wbg | 0.6 MiB jpg | 74 ms | 122 ms |
wbg | 1.9 MiB png | 111 ms | 156 ms |
wbg | 2.3 MiB jpg | 193 ms | 240 ms |
swaybg | 0.6 MiB jpg | 76 ms | 119 ms |
swaybg | 1.9 MiB png | 123 ms | 161 ms |
swaybg | 2.3 MiB jpg | 177 ms | 215 ms |
meson build
ninja -C build
sudo ninja -C build install
First, convert the background to a raw ARGB8888 file. A tool to convert from PNG is included:
$ wayllpaper-convert input.png wallpaper.bin
width: 3840
height: 2160
Then run wayllpaper using the output from the above to show the wallpaper:
$ wayllpaper wallpaper.bin 3840 2160
The dimensions are required as the file does not contain any metadata, only raw pixel values.
Go to #kennylevinsen @ irc.libera.chat to discuss, or use ~kennylevinsen/public-inbox@lists.sr.ht