breadmon: clear error for missing BOS hyprctl eval extension, doc, version fix

- 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).
This commit is contained in:
Breadway 2026-07-17 03:22:52 +08:00
parent 4bbe976e7a
commit ddbc9e63d3
4 changed files with 44 additions and 3 deletions

View file

@ -4,7 +4,8 @@ A terminal UI monitor manager for Hyprland. Lets you position, configure, and mi
## Requirements
- Hyprland compositor (the `hyprctl` binary must be on `PATH`)
- **[BOS (Bread OS)](https://git.breadway.dev/breadway/bos)'s patched Hyprland build.** Applying changes (the `a` key / Global keys "Apply") runs `hyprctl eval` with a `hl.monitor({...})` Lua call — a BOS-specific extension that does not exist on vanilla/upstream Hyprland. On a non-BOS Hyprland install, `hyprctl eval` itself is not a recognized request, and breadmon will fail to apply with an explicit error explaining this instead of the raw hyprctl response. Everything else in the TUI (viewing/arranging/saving profiles) works regardless; only the live-apply step needs BOS.
- The `hyprctl` binary must be on `PATH`
- Rust toolchain (to build from source)
## Build