bos/packaging/arch/README.md
Breadway 664298b6b4 Extract bos-settings to its own repo; add breadhelp; JSON-driven Hyprland config
bos-settings moves to git.breadway.dev/Breadway/bos-settings (full history
preserved via git-filter-repo) so its release cadence is decoupled from
BOS's own. breadhelp takes its place as this repo's workspace member: a
GTK4 onboarding/help center replacing the old bos-welcome/bos-keybinds
bash scripts with searchable guides, an interactive keybind viewer
(sourced from the new keybinds.toml, not parsed out of hyprland.lua or
hardcoded), a troubleshooting wizard with one-click fixes, and a proper
first-run tour. bos-netcheck extracts bos-welcome's network-check half,
which still needs to run every login independent of breadhelp's own
first-run gating.

hyprland.lua's keybinds/settings/monitors/autostart are now JSON-driven
(binds.json/settings.json/monitors.json/autostart.json) with every
loader pcall-wrapped and falling back to hardcoded defaults per field on
bad or missing config, so bread* apps (bos-settings' new editors, and
breadhelp's keybind viewer) can read/write this config without ever
being able to leave the compositor unable to start.

CI's package.yml now builds breadhelp instead of bos-settings on tag
push; bos-settings needs its own equivalent workflow in its new repo
(not yet set up).
2026-07-05 09:16:14 +08:00

1.3 KiB

Arch packaging

breadhelp/PKGBUILD builds and installs breadhelp from source — BOS's onboarding + help center, and the only first-party pacman package still built from this repo.

bos-settings is also pacman-packaged and served from the same [breadway] repo, but its source lives in its own repo now (~/Projects/bos-settings, github.com/Breadway/bos-settings) so a bos-settings release doesn't require a BOS ISO release.

Everything else the bread ecosystem ships (breadbar, breadbox, breadpad, ...) is bakery-managed, not pacman-packaged — see build-local.sh.

Local build

cd breadhelp && makepkg -si

Before publishing to [breadway] repo

CI (.forgejo/workflows/package.yml) handles this on tag push (vX.Y.Z): it bumps pkgver, archives the repo into the expected tarball name, and runs makepkg. To do it by hand instead:

  1. Tag a release on GitHub (vX.Y.Z).
  2. Update pkgver in breadhelp/PKGBUILD to match the tag.
  3. Update source to the release tarball URL.
  4. Run updpkgsums (or manually set sha256sums).

Runtime dependencies

Package Required Notes
gtk4 yes UI toolkit
glib2 yes always
snapper optional create-backup one-click fix