commit f4ff7b5

sewn  ·  2026-08-22 12:47:07 +0000 UTC
parent 4230522
README: update desc/comparison, add self-resolving
1 files changed,  +30, -14
+30, -14
 1@@ -1,9 +1,9 @@
 2 # wawa
 3 
 4-A distinctively simple yet feature-packed, hackable Wayland wallpaper setter utilizing
 5-`stb_image` that targets `wlr-layer-shell` supported compositors, featuring
 6-tiling, spreading across monitors, along with fill, fit and stretching the
 7-wallpaper, with less SLOC than your average wallpaper setter.
 8+A distinctively simple yet feature-packed, hackable Wayland wallpaper setter
 9+utilizing `stb_image` that targets `wlr-layer-shell` supported compositors,
10+featuring tiling, spreading across monitors, along with fill, fit and
11+stretching the wallpaper, with less SLOC than your average wallpaper setter.
12 
13 In wawa, the image is loaded only for monitors that need it, and is immediately
14 freed when all monitors have been configured; this keeps the memory usage of
15@@ -12,23 +12,39 @@ be a performance hit if youre constantly resizing the monitor. Please open an
16 issue if this concerns you, in which case a specific flag can be added to keep
17 the image in memory, unless it is a design flaw.
18 
19+## Self-resolving wallpaper image modes
20+
21+By default, the image mode is set to `fill`.
22+
23+When randomly picking a wallpaper to pick if the argument is a directory and no
24+image mode is provided (eg. `wawa ~/wallpapers`), wawa is able to derive which
25+image mode to use per the directory name:
26+
27+```
28+wallpapers
29+├── fill
30+│   ├── dalem_pole.jpg
31+│   └── dalem_summer.jpg
32+└── spread
33+    ├── dalem_bliss.jpg
34+    ├── dalem_cherry.jpg
35+    ├── dalem_cos.jpg
36+    └── dalem_tree.jpg
37+```
38+
39 ## Contributing
40 
41 Please use [Forgejo AGit](https://forgejo.org/docs/latest/user/git-cli/agit-support/).
42 
43 ## Comparison
44 
45-[swaybg] uses cairo, and has a significant amount of customization, with
46-a slightly larger codebase. [wbg] is more sophisticated, but is simpler than
47-swaybg, and relies on speed using minimal third-party libraries for loading
48-images, much like wbg. It also has support for defining multiple images for each
49-monitor specified on the command line.
50-
51-Unfortunately, wbg is so simple, while supporting modern libraries, it has only
52-two modes, fit (with `-s` flag) and fill (default), which makes it undesireable
53-for those who want to tile or etc.
54+[swaybg] shares the same features as wawa, adding per-output wallpaper setting
55+and using cairo under the hood with a 220% larger codebase, while [wbg] only
56+supports either the `stretch` and `fill` image mode and relies on using minimal
57+third-party libraries (while being 150% larger than swaybg) for loading images.
58 
59-No other wallpaper setter supports tiling out of the box.
60+At this time, no other wallpaper setter supports tiling or spreading out of the
61+box without using a Rust wrapper or some other alternative that isn't built in.
62 
63 [swaybg]: https://github.com/swaywm/swaybg
64 [wbg]: https://codeberg.org/dnkl/wbg