bos-settings 0.5.0: GNOME-Settings-style redesign + live app control
New panels: About, Network (Wi-Fi/Ethernet via nmcli), Sound (PipeWire volume/device via pactl), Date & Time (timedatectl), and Clipboard (breadclip previously had no bos-settings presence at all despite running its own daemon). Layout: every panel now shares one scaffold (6 views were hand-rolling their own, inconsistently) with a centered, width-capped content column instead of rows stretching edge-to-edge on a wide window with the control stranded far from its label. Rows render as individual cards. Sidebar got human labels + icons + task-based grouping (System/Personalization/Maintenance/About) instead of raw binary names under "Apps"/"System". New capability: a shared service_control() widget gives every bread app backed by a systemd --user daemon (breadd, breadbox-sync, breadcrumbs, breadmill, breadclipd) live status plus Start/Stop/Restart/View logs — previously these panels only ever edited a TOML file and hoped the running process picked it up. breadbar (no systemd unit) gets an equivalent: Save now actually sends the SIGHUP its own reload mechanism needs, instead of just claiming to in the hint text. Fixed two real bugs surfaced while building About: CPU model string kept a stray leading tab+colon (trim_start_matches was missing '\t'), and GPU showed "unknown" on hardware whose lspci entry says "Display controller" instead of "VGA compatible controller". Local CSS patches (bos-settings/src/theme.rs) for two upstream bread-theme gaps: suggested/destructive buttons and scale widgets don't clear Adwaita's default background-image, so flat colour overrides were invisible; and destructive-action red must not be pywal-derived (it can land on gold depending on the wallpaper, indistinguishable from a primary action).
This commit is contained in:
parent
f43bfbb680
commit
eb740a3724
22 changed files with 1310 additions and 250 deletions
|
|
@ -14,6 +14,26 @@ use std::cell::RefCell;
|
|||
const APP_CSS: &str = "\
|
||||
.view-content { padding: 24px; }\n\
|
||||
.view-content > label.title { margin-bottom: 16px; }\n\
|
||||
/* Sidebar row sub-labels (the underlying binary/config name under a row's \
|
||||
human label) — smaller than the shared sheet's default dim-label size. */\n\
|
||||
.caption { font-size: 11px; }\n\
|
||||
/* bread-theme's shared sheet only overrides background-color on \
|
||||
suggested/destructive buttons, not background-image — so Adwaita's \
|
||||
built-in gradient (bright blue/red) paints over our flat colour \
|
||||
underneath it. Belongs upstream in bread-theme; patched locally here \
|
||||
until that's worth its own release. */\n\
|
||||
button.suggested-action, button.destructive-action { background-image: none; }\n\
|
||||
/* Same upstream gap for scale (Sound's volume sliders) — the shared sheet \
|
||||
has no `scale` rules at all, so they render in Adwaita's default blue. */\n\
|
||||
scale trough { background-color: alpha(@on-surface, 0.15); border-radius: 999px; min-height: 6px; background-image: none; }\n\
|
||||
scale highlight { background-color: @accent; background-image: none; border-radius: 999px; }\n\
|
||||
scale slider { background-color: @on-surface; border-radius: 999px; }\n\
|
||||
/* Destructive actions must not follow the wallpaper palette: @red is \
|
||||
pywal's color1, which can land on gold/yellow/anything depending on the \
|
||||
wallpaper (it did, this session) — making Delete/Remove look like a \
|
||||
primary action instead of a dangerous one. Fixed regardless of palette. */\n\
|
||||
button.destructive-action { background-color: #c0392b; color: #ffffff; }\n\
|
||||
button.destructive-action:hover { background-color: #d64535; }\n\
|
||||
";
|
||||
|
||||
thread_local! {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue