No description
Find a file
Breadway 0057dfa89a docs: expand README with install, usage, and pipeline overview
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 00:17:27 +08:00
.github/workflows fix: add contents: write permission for GitHub Release creation 2026-06-07 00:00:43 +08:00
bakery Init commit 2026-06-06 13:26:48 +08:00
bread-theme Init commit 2026-06-06 13:26:48 +08:00
registry Init commit 2026-06-06 13:26:48 +08:00
scripts fix: skip non-binary files in binary loop; don't capture stderr into pkg 2026-06-06 23:43:02 +08:00
.gitignore Init commit 2026-06-06 13:26:48 +08:00
bakery.toml Fix release pipeline: bakery.toml discovery and ECOSYSTEM_DIR on hestia 2026-06-06 22:30:29 +08:00
Cargo.lock Init commit 2026-06-06 13:26:48 +08:00
Cargo.toml Init commit 2026-06-06 13:26:48 +08:00
README.md docs: expand README with install, usage, and pipeline overview 2026-06-07 00:17:27 +08:00

Bread Ecosystem

A collection of Rust tools for the Linux desktop (Hyprland / Wayland / Arch). Install any product with a single command — no Rust toolchain required.

curl https://breadway.dev/get | sh
bakery install breadbar

Products

Package Description
bread Reactive automation daemon (breadd) + CLI
breadbar Status bar and notification daemon
breadbox Cloud sync daemon (breadbox-sync) + file browser
breadcrumbs Network information CLI
breadpad Scratchpad / quick-note app

Installing bakery

bakery is the package manager for the ecosystem. Install it with the bootstrap script:

curl https://breadway.dev/get | sh
# or
curl -sSfL https://get.breadway.dev | sh

The script downloads the prebuilt bakery binary to ~/.local/bin/bakery and prints a note if that directory isn't on your PATH yet.

Using bakery

bakery list                    # all available packages
bakery list --installed        # only installed packages
bakery info breadbar           # version, binaries, system deps, services
bakery doctor                  # check system deps for installed packages
bakery doctor breadbar         # check system deps for a specific package

bakery install <pkg>           # install a package
bakery update <pkg>            # update a package
bakery update --all            # update everything
bakery remove <pkg>            # remove a package (data files are never deleted)

bakery install runs doctor first and bails with a clear message if any system dependency is missing. Binaries land in ~/.local/bin (override with BAKERY_BIN_DIR).

System dependencies by product

Package Arch packages
bread libudev dbus
breadbar gtk4 gtk4-layer-shell dbus iw
breadbox gtk4 librsvg dbus
breadcrumbs networkmanager
breadpad gtk4 dbus

Theming

All GUI products (breadbar, breadbox, breadpad) read pywal colors from ~/.cache/wal/colors.json and fall back to Catppuccin Mocha when that file is absent. Per-app CSS overrides live at ~/.config/<app>/style.css.

The shared theming logic lives in the bread-theme crate in this repo.

Workspace

This repo is a Cargo workspace:

bread-ecosystem/
├── bakery/          # package manager binary
├── bread-theme/     # shared pywal + Catppuccin theming crate
├── registry/        # bread-ecosystem.toml — product registry
└── scripts/
    ├── get.sh       # curl | sh bootstrap
    └── gen-index.sh # generates dl.breadway.dev/index.json from release artifacts

Release pipeline

Each product repo (Breadway/bread, Breadway/breadbar, …) has a .github/workflows/release.yml that triggers on v* tags. The workflow runs on a self-hosted runner on hestia, builds a stripped x86_64 binary, deposits it at dl.breadway.dev/<pkg>/<version>/, updates index.json, and mirrors the binary to GitHub Releases as a fallback.

bakery always tries dl.breadway.dev first and transparently falls back to the GitHub Release URL recorded in the manifest.

License

MIT