Commit graph

33 commits

Author SHA1 Message Date
Breadway
8d8be6ebb1 Add per-output wallpaper set, persist, and theme
Two monitors can keep different wallpapers. `set --output` targets one
awww output, writes that output's bread-theme files, and updates
~/.config/breadpaper/current.json without clobbering the other. Global
set still runs wal + bread-theme reload and stamps every known output.
`apply` and listen-on-monitor-connect restore the saved map. The library
picker binds to its monitor and applies to that output.
2026-08-16 13:06:17 +08:00
Breadway
5bc879d70e CI: run stable release on hestia and refuse unsigned bakery index
All checks were successful
check / check (push) Successful in 1m7s
dev release / build (push) Successful in 5m10s
beta (rc) release / build (push) Has been skipped
release / build (push) Successful in 42s
2026-08-16 00:50:22 +08:00
Breadway
1efc721990 Add GTK wallpaper library
All checks were successful
check / check (push) Successful in 2m28s
dev release / build (push) Successful in 49s
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.
2026-08-16 00:26:50 +08:00
Breadway
01c7e5b73f Bump version to v0.1.12
All checks were successful
beta (rc) release / build (push) Has been skipped
release / build (push) Successful in 37s
dev release / build (push) Successful in 47s
2026-08-15 23:05:47 +08:00
Breadway
0283ac4e81 Honor bread.command.paper.set via breadpaper listen
All checks were successful
dev release / build (push) Successful in 21s
Pin bread-utils to v0.7.2 (command/subscribe). Add a long-running
listen subcommand that subscribes to bread.command.paper.**, calls
set() on set, and emits bread.paper.set.done / .failed. Fail-silent
if breadd is down. No slideshow verbs. See EVENTS.md.
2026-08-15 22:47:12 +08:00
Breadway
54210ddc93 Emit bread.paper.changed after a successful set
All checks were successful
check / check (push) Successful in 23s
dev release / build (push) Successful in 25s
Link bread-utils v0.7.1 (bread-client) and publish
{ "path": "<wallpaper>" } once awww + wal + bread-theme reload
all succeed. Silent no-op if breadd is down. breadpaper is
CLI-only — no watch subscriber; modules should bread.exec
("breadpaper set …"). See EVENTS.md.
2026-08-15 22:15:29 +08:00
Breadway
7a3a54c6f0 Track AGENTS.md
All checks were successful
check / check (push) Successful in 26s
2026-08-15 22:03:30 +08:00
Breadway
70c2dd3c6a bakery.toml: bread-theme + awww/pywal, not bread
All checks were successful
check / check (push) Successful in 8s
The setter shells out to awww, wal, and bread-theme reload. It never
talks to breadd. bakery.toml listed bread as a dep and treated awww as
optional.

Add a short README: this is a setter, not a library or slideshow
daemon. Wallpaper library UI lives in bos-settings.
2026-08-15 21:34:55 +08:00
a93e8b1793 Merge pull request 'ci: build inside bread-ecosystem's shared Arch container' (#1) from feature/shared-ci into main
All checks were successful
dev release / build (push) Successful in 12s
check / check (push) Successful in 5s
Reviewed-on: #1
2026-08-05 19:19:29 +08:00
Breadway
3eff1e5972 ci: build inside bread-ecosystem's shared Arch container
All checks were successful
check / check (push) Successful in 4s
Ports breadpaper onto bread-ecosystem's shared, pinned Arch build
image/script instead of installing toolchain/libraries directly on the
bare self-hosted runner. Follows the pattern proven in breadpad:
ci/build.sh clones bread-ecosystem pinned to the sha in
ci/bread-ecosystem.rev and delegates to its ci/build.sh.

breadpaper needs nothing beyond the shared image's base package set
(only clap/anyhow as deps, no image-processing or GTK crates), so no
ci/deps.txt is added.

Also adds check.yml: clippy + test on feature/**/fix/** pushes, as a
fast pre-release-build signal, matching breadpaper's own build/test
flags (--release --locked, no --workspace since this isn't a
workspace).
2026-08-05 19:14:49 +08:00
Breadway
ceb6fbb12f CONTRIBUTING.md: document single-trunk + RC-tag release model
All checks were successful
dev release / build (push) Successful in 49s
2026-07-31 11:08:41 +08:00
Breadway
d329839af2 CI: single-trunk model — dev triggers on main, beta becomes RC-tag-triggered
Replaces the dev/beta branch split with one trunk (main): dev-track
builds still publish on every push, but the beta track now publishes
from a vX.Y.Z-rc.N prerelease tag instead of a separately-maintained
beta branch. Removes the branch nobody reliably kept in sync.
2026-07-31 11:05:29 +08:00
Breadway
3b7434f2c9 Drop pacman packaging, bakery-only distribution
Some checks failed
dev release / build (push) Successful in 24s
Mirror to GitHub / mirror (push) Failing after 1s
bakery already fully covers what the PKGBUILD provided (binary, systemd
--user service where applicable, dependency declarations) except a LICENSE
copy, which bakery.toml's new license_file field now closes. Removes
packaging/arch/ and .forgejo/workflows/package.yml; adds the LICENSE
artifact to each release/dev-release/beta-release workflow's prepare
step. Not pacman-installed inside BOS today (BOS already consumes these
apps exclusively via build-local.sh's skel-staging), so this only removes
the option to `pacman -S` outside of BOS/bakery.
2026-07-23 10:25:12 +08:00
Breadway
61775c91a6 docs: add CONTRIBUTING.md
Some checks failed
Mirror to GitHub / mirror (push) Failing after 4s
dev release / build (push) Successful in 10s
Documents the dev/beta/main branch and release-track workflow shared
across the bread ecosystem. See bread-ecosystem's docs/release-channels.md
for the full policy this implements.
2026-07-22 19:41:10 +08:00
Breadway
eb8667991d ci: make beta a branch-triggered freeze track, not a one-off tag
Some checks failed
dev release / build (push) Failing after 12s
beta release / build (push) Successful in 19s
Mirror to GitHub / mirror (push) Failing after 6s
Beta is now a real stabilization branch: publishes on every push to
`beta` (mirroring dev's model, auto-versioned X.Y.Z-beta.<ts>+<sha>,
base version from the latest published tag) instead of a manual
beta-v* tag. Fixes made during the freeze land via fix/<issue> branches
merged into `beta` directly. The gen-index.sh clone for beta pulls
bread-ecosystem's default branch (main) rather than pinning to dev,
since beta is the more stable track and main now carries the
TRACK-aware script.
2026-07-22 18:37:32 +08:00
Breadway
fa3ccacca5 ci: base dev version on the latest published tag, not Cargo.toml
Some checks failed
dev release / build (push) Successful in 20s
Mirror to GitHub / mirror (push) Failing after 2s
Cargo.toml can drift stale relative to the actual last release (observed
on breadbox/breadpad/breadcrumbs/breadpaper), which made the auto-bumped
dev version sort as OLDER than what's already installed — bakery's semver
check correctly refused those "updates". Deriving the base version from
git ls-remote --tags instead is self-healing regardless of Cargo.toml
drift, with a Cargo.toml fallback only for a repo with no tags yet.
2026-07-22 13:52:32 +08:00
Breadway
e77da145d9 random commit message, read it yourself
Some checks failed
dev release / build (push) Successful in 23s
Mirror to GitHub / mirror (push) Failing after 1s
2026-07-22 11:56:44 +08:00
Breadway
2d652f2bbf ci: use a unique temp dir for the bread-ecosystem clone in dev/beta CI
Some checks failed
dev release / build (push) Successful in 21s
Mirror to GitHub / mirror (push) Failing after 1s
The fixed /tmp/bread-ecosystem-ci path races when multiple repos' dev/beta
workflows run close together on the same self-hosted runner — one job's
rm -rf/clone can stomp another's in-progress checkout, causing the
regenerate-index step to fail intermittently. Switch to mktemp -d.
2026-07-22 10:24:33 +08:00
Breadway
25a3175776 ci: retrigger dev-track build now that BAKERY_MINISIGN_SEC_KEY_PATH is set
Some checks failed
dev release / build (push) Successful in 30s
Mirror to GitHub / mirror (push) Failing after 2s
2026-07-22 10:10:10 +08:00
Breadway
c10bad3877 ci: add dev/beta build track workflows
Some checks failed
dev release / build (push) Failing after 11s
Mirror to GitHub / mirror (push) Failing after 2s
Adds dev-release.yml (publishes on every push to dev) and beta-release.yml
(publishes on a beta-v* tag), mirroring the pattern landing in
bread-ecosystem/bread. See bread-ecosystem/docs/release-channels.md for
the three-track policy.
2026-07-22 09:58:26 +08:00
Breadway
1b4f9c5c04 fix(ci): clone bread-ecosystem to /tmp to avoid stale permissions
Some checks failed
Mirror to GitHub / mirror (push) Failing after 2s
release / build (push) Successful in 18s
Build and publish package / package (push) Failing after 1m7s
2026-06-17 22:53:08 +08:00
Breadway
5c9efcf316 fix: correct awww subcommand to img, support bare path arg, add --version
Some checks failed
Mirror to GitHub / mirror (push) Failing after 3s
release / build (push) Failing after 10s
Build and publish package / package (push) Failing after 1m19s
2026-06-17 22:44:48 +08:00
Breadway
b064e86f2f fix(ci): clone to /tmp to avoid stale work-dir permissions, use hestia label
Some checks failed
Mirror to GitHub / mirror (push) Failing after 2s
release / build (push) Failing after 7s
Build and publish package / package (push) Failing after 1m18s
2026-06-17 19:09:15 +08:00
Breadway
014fd9c12e fix(ci): add cargo to PATH for host runner
Some checks failed
Mirror to GitHub / mirror (push) Failing after 2s
release / build (push) Failing after 13s
Build and publish package / package (push) Failing after 2m1s
2026-06-17 18:54:32 +08:00
Breadway
2d0cdae396 fix(ci): run release job on hestia host to access cargo and dl server
Some checks failed
Mirror to GitHub / mirror (push) Failing after 1s
release / build (push) Failing after 1s
Build and publish package / package (push) Failing after 1m52s
hestia-host maps to host execution on the Forgejo runner, giving access
to /home/breadway/.cargo/bin/cargo and /srv/breadway-dl without Docker.
2026-06-17 14:54:59 +08:00
Breadway
ca843bf255 fix(ci): replace actions/checkout with manual git clone in release
Some checks failed
Mirror to GitHub / mirror (push) Failing after 3s
Build and publish package / package (push) Failing after 2m1s
release / build (push) Failing after 1s
actions/checkout uses GITHUB_SERVER_URL=http://localhost:3002 which is
unreachable from inside the Docker container. Use the public Forgejo URL
directly, matching the pattern used by package.yml.
2026-06-17 14:49:06 +08:00
Breadway
4bb2fd43ca fix: move release workflow to Forgejo, add LICENSE
Some checks failed
Mirror to GitHub / mirror (push) Failing after 3s
Build and publish package / package (push) Failing after 1m53s
release / build (push) Failing after 5s
release.yml moves from .github/ to .forgejo/ so it runs directly on
the hestia runner without needing the GitHub mirror. GitHub upload step
dropped; bakery uses dl.breadway.dev as primary. LICENSE added to fix
PKGBUILD package() failure.
2026-06-17 14:45:56 +08:00
Breadway
19e660937f debug: GIT_CURL_VERBOSE trace 2026-06-17 14:40:22 +08:00
Breadway
2d0d9728b2 debug: inspect workspace git config 2026-06-17 14:39:30 +08:00
Breadway
4aad0afeac debug: add git env and system config inspection 2026-06-17 14:38:34 +08:00
Breadway
8e1f0babb8 debug: print git config and env in mirror step 2026-06-17 14:35:41 +08:00
Breadway
580a51c350 fix(pkg): move python-pywal to optdepends in PKGBUILD
Some checks failed
Mirror to GitHub / mirror (push) Failing after 3s
Build and publish package / package (push) Failing after 2m52s
python-pywal is AUR-only; makepkg cannot resolve it as a hard depends.
2026-06-17 14:16:44 +08:00
Breadway
a8b38597ff Initial implementation of breadpaper
Some checks failed
Mirror to GitHub / mirror (push) Failing after 2s
Build and publish package / package (push) Failing after 1m3s
CLI tool that sets a wallpaper with awww, generates a pywal colour
palette, and reloads bread-theme to recolour all running bread GTK apps.
Includes CI workflows, bakery metadata, and Arch PKGBUILD.
2026-06-17 14:05:48 +08:00