GTK4 control panel for BOS (Bread Operating System)
Find a file
Breadway 21da79c7d9 theme: canonical accent mapping + live per-output / monitor-move updates
Audit findings #1 and #4.

#1 (accent mapping): render_theme_css hand-rolled the `:root { --name }`
block and mapped --accent, --red, --on-accent and --on-red all to
pywal's color1 (ANSI red — the slot bread-theme reserves for errors),
so the settings webview accented in a different hue from every GTK app
on the same monitor, and destructive-action styling was indistinguishable
from accent styling. Replace it with a direct call to
bread_theme::css_custom_properties / css_tokens (both exported in the
pinned v0.7.4), which format the canonical color_pairs list: --accent =
color4, --red = color1. As a bonus css_tokens emits a correct
font-family list instead of one over-quoted family.

#4 (live updates): watch_and_emit watched only the shared theme.css, so
`breadpaper set_on` on a non-focused monitor (which writes only
palettes/<out>.json + themes/<out>.css) never reached a settings window
parked there, and dragging the window between monitors never re-rendered.
Watch the generated-theme dir recursively and re-render when the shared
sheet or *this monitor's* per-output files change; add a
WindowEvent::Moved handler that re-renders when the window lands on a
different monitor.
2026-09-01 16:29:44 +08:00
.forgejo/workflows CI: single-trunk model — dev triggers on main, beta becomes RC-tag-triggered 2026-07-31 11:05:29 +08:00
frontend Settings redesign: hub-based navigation, plus hardening and bug fixes 2026-08-31 16:04:02 +08:00
packaging Drop pacman packaging, bakery-only; fix broken Tauri build path in CI 2026-07-23 10:43:23 +08:00
src theme: canonical accent mapping + live per-output / monitor-move updates 2026-09-01 16:29:44 +08:00
.gitignore gitignore untracked .freebuff/ and graphify-out/ local tool state 2026-08-31 16:04:02 +08:00
AGENTS.md Use Arch package name webkit2gtk-4.1; track AGENTS.md 2026-08-15 22:03:30 +08:00
bakery.toml Use Arch package name webkit2gtk-4.1; track AGENTS.md 2026-08-15 22:03:30 +08:00
CONTRIBUTING.md CONTRIBUTING.md: document single-trunk + RC-tag release model 2026-07-31 11:08:41 +08:00
LICENSE Extract bos-settings into its own repo; add Appearance/Startup Apps/Display editors 2026-07-04 23:31:18 +08:00
README.md Harden settings: split breadcrumbs secrets, typed exec, new panels 2026-08-15 21:47:00 +08:00

bos-settings

System settings app for BOS (Bread Operating System) — Tauri 2 + Svelte 5. Configures every bread* app's config plus core system settings (network, sound, power, users, firewall, snapshots, packages, AUR, firmware, Hyprland display/appearance/autostart) non-destructively.

Distributed via bakery. There is one long-lived branch, main; see CONTRIBUTING.md for the single-trunk / RC-tag release model shared across the bread ecosystem.

Building

The Svelte frontend lives in frontend/, the Rust backend in src/ (this repo's crate is not named src-tauri). cargo tauri build runs the frontend build hook; a plain cargo build does not.

cd frontend && npm ci && npm run build
cd ../src && cargo build --release

Dev (Vite + cargo tauri dev):

cd src && cargo tauri dev

Packaging / releasing

Bump src/Cargo.toml (and frontend/package.json) version, then follow CONTRIBUTING.md: work lands on main via feature/ / fix/ branches (every push to main publishes a bakery dev build). Tag vX.Y.Z-rc.N for beta, vX.Y.Z for the signed stable release. Do not push to a dev branch — there isn't one.