Migrate config load/save to bread_utils::tomlcfg; timeout-guard hyprctl calls

config.rs's config_dir/load_doc/save_doc/atomic_write were a byte-for-byte
copy of bos-settings/src/config/mod.rs's versions (own doc comment said as
much) introduced in the same fix pass that added them there — now both
delegate to bread_utils::tomlcfg/bread_utils::atomic instead of each
carrying their own copy (path dependency for now, see the TODO in
Cargo.toml).

Also: services/hyprland.rs::query_json used a bare Command::output() with
no timeout, so an unresponsive hyprctl (Hyprland wedged/reloading) could
block clients()/monitors()/layers() indefinitely — switched to
bread_utils::proc::run_json with a 3s cap.

Builds clean; all 8 existing tests pass.
This commit is contained in:
Breadway 2026-07-17 09:32:55 +08:00
parent df7f51281a
commit 7b7fe680fe
4 changed files with 33 additions and 59 deletions

11
Cargo.lock generated
View file

@ -37,12 +37,23 @@ dependencies = [
"serde_json",
]
[[package]]
name = "bread-utils"
version = "0.2.3"
dependencies = [
"dirs",
"serde",
"serde_json",
"toml_edit 0.22.27",
]
[[package]]
name = "breadhelp"
version = "0.2.1"
dependencies = [
"async-channel",
"bread-theme",
"bread-utils",
"gdk4",
"glib",
"gtk4",