Scan ~/Pictures/Wallpapers and /usr/share/backgrounds/bos (configurable) and open a bread-theme GTK picker via `breadpaper library` (alias browse). Clicking a thumbnail runs the existing set path. listen honors bread.command.paper.library by spawning that picker.
2.2 KiB
breadpaper
Wallpaper setter for the bread desktop. One command sets the wallpaper
via awww, generates a palette with
pywal (wal), and runs
bread-theme reload.
set / get stay one-shot CLI. breadpaper library (alias browse)
opens a GTK picker over the wallpaper directories. It is not a slideshow
daemon.
Dependencies
Must be on $PATH for set:
awww— Wayland wallpaper (awww img)wal— palette generation (python-pywal)bread-theme— theme reload (bakery package, notbreadd)
library also needs GTK4 (the window loads bread-theme's shared
stylesheet). get only reads the path pywal stored at ~/.cache/wal/wal.
Install
bakery install breadpaper
From source:
cargo build --release
install -Dm755 target/release/breadpaper ~/.local/bin/breadpaper
Usage
breadpaper <path> # shorthand for `set`
breadpaper set <path> # awww + wal + bread-theme reload
breadpaper get # print the current wallpaper path
breadpaper library # GTK picker (alias: browse)
breadpaper library --dir PATH # also scan PATH (repeatable)
breadpaper listen # honor bread.command.paper.set / .library
Supported formats: png, jpg, jpeg, webp, gif, bmp.
Library
breadpaper library scans these directories (missing ones are skipped):
~/Pictures/Wallpapers/usr/share/backgrounds/bos
Override the list in ~/.config/breadpaper/config.toml:
library_dirs = [
"~/Pictures/Wallpapers",
"/usr/share/backgrounds/bos",
]
BREADPAPER_LIBRARY_DIRS (colon-separated) overrides the file. --dir
appends extra roots for that invocation. Clicking a thumbnail runs the
same set path as the CLI.
Bread events
After a successful set, breadpaper emits bread.paper.changed if
breadd is running (silent no-op if it isn't). breadpaper listen is
the optional long-running subscriber for bread.command.paper.set and
bread.command.paper.library; it does not start by itself. Lua modules
can still bread.exec("breadpaper set …") or
bread.exec("breadpaper library"). See EVENTS.md.
License
MIT — see LICENSE.