After a successful hyprctl apply, publish bread.mon.applied
{ "profile": <string or null> }. BreadClient is fail-silent: if
breadd is down, apply behaves exactly as before.
Document the contract in EVENTS.md.
Replace the old `bread modules install` docs with `bakery install breadmon`.
Spell out that `hyprctl eval 'hl.monitor({...})'` is BOS-patched Hyprland
only, and that breadmon is not the bos-settings Display panel (which edits
monitors.json).
hyprland_socket2_path() duplicated the same HYPRLAND_INSTANCE_SIGNATURE +
XDG_RUNTIME_DIR resolution breadbox and breadclip had for socket1 — now
shared via bread_utils::hypr::socket_path (path dependency for now, see
the TODO in Cargo.toml).
Builds and all 16 existing tests pass.
- apply_monitors() shells out to `hyprctl eval` with a `hl.monitor()`
Lua call, a BOS-only Hyprland extension. On vanilla Hyprland the
eval request itself isn't recognized and failed with a confusing
raw hyprctl response. Detect that case and fail with an explicit
'this feature requires BOS' message instead, with tests.
- README: documented the BOS dependency for the apply step under
Requirements; noted everything else in the TUI works without it.
- Cargo.toml: 0.1.0 -> 0.1.1, matching the latest tag (v0.1.1).