Consume [panel]/[osd] + render [[bar.widget]] declarative widgets (v0.7.8) #12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/theme-ui-control"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
breadbar side of the shell-theme UI-control expansion (bread-ecosystem #11, tag v0.7.8).
Verified live: a bar.widget chip renders + updates right of the clock; [panel].sections shows only the listed sections. 44 tests, clippy clean.
Axes 3 + 4 of the theme-UI-control expansion, breadbar side (needs bread-ecosystem v0.7.8). [panel] — the control-panel sections (volume/output/brightness/system/ power/tray) are each built in full then appended to panel_inner in shell_theme().panel().sections order; a dropped name is never parented. min_width flows in via CSS ({panel_min_width}), no code. [osd] — osd::spawn takes the enabled kinds (gates the volume/brightness watcher threads) and dismiss_ms (replaces the 2000ms constant). [[bar.widget]] — a new theme_widgets module maps bread_theme:🐚: ThemeWidget onto bread_shared::widget::WidgetSpec (same shape, mechanical 1:1) and runs one sh -c poll per widget, feeding trimmed stdout back as {value} via AppInput::ThemeWidgetTick. reconcile_widgets is split: reconcile_all_widgets merges the daemon's specs with the theme's, so both sources render through the one build_node path. Pollers are primary-only (matching widgets::client::spawn), abort on Drop, and are refreshed by rebuild_from_theme on a live switch. Bundled 'cpu'/'ram' icon names added. needs_restart now also fires on [panel].sections / [osd].enabled changes (both assembled once in init); everything else stays live. Verified live: a [[bar.widget]] label chip renders right of the clock and updates on its interval; a full glass-workbench->loaf-with-widget path. 44 tests, clippy clean.dc8de82ff1c6a0e2daa0