No description
Find a file
Breadway fb1e83769d
Some checks failed
release / build (push) Failing after 3s
feat: register bakery as an installable package, bump to 0.2.1
bakery can now update itself via `bakery update all`
2026-06-07 14:58:09 +08:00
.github/workflows fix: use relative symlink for latest to work inside Docker containers 2026-06-07 08:59:06 +08:00
bakery feat: multi-package install and bakery update all 2026-06-07 14:51:20 +08:00
bread-theme Init commit 2026-06-06 13:26:48 +08:00
registry feat: register bakery as an installable package, bump to 0.2.1 2026-06-07 14:58:09 +08:00
scripts fix: strip arch suffix on install, fix doubled org in github_url 2026-06-07 08:53:39 +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 feat: register bakery as an installable package, bump to 0.2.1 2026-06-07 14:58:09 +08:00
Cargo.toml feat: register bakery as an installable package, bump to 0.2.1 2026-06-07 14:58:09 +08:00
README.md docs: fix product descriptions and system deps in README 2026-06-07 09:28:39 +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 — Lua scripting over Hyprland, udev, power, network, and Bluetooth events
breadbar GTK4 status bar (workspaces, clock, CPU/RAM/battery/WiFi/Bluetooth) and D-Bus notification daemon for Hyprland
breadbox GTK4 fuzzy app launcher for Hyprland with context-aware sorting; ships an icon-sync daemon (breadbox-sync)
breadcrumbs Profile-aware Wi-Fi state machine with Tailscale exit-node management and a self-healing watch daemon
breadpad Quick-capture scratchpad popup with AI-powered note classification, reminders, recurrence, and a full note viewer (breadman)

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 gtk4-layer-shell librsvg
breadcrumbs networkmanager
breadpad gtk4 gtk4-layer-shell 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