From a55464e179a3f82aa46866564878ad35e11e0ae5 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 7 Oct 2026 19:13:16 +0200 Subject: docs: the island, and waybar gone AGENTS.md describes the hybrid model (desktop/ hosts drawer and island) and gains the gotchas found while building the island: UseQApplication for tray menus, WheelHandler vs MouseArea, accent colliding with green, xkb layout switching, and the tray popup un-hovering the island. The Blur waybar measurement becomes history. READMEs drop their present-tense waybar references. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/status/README.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'desktop/modules/status/README.md') diff --git a/desktop/modules/status/README.md b/desktop/modules/status/README.md index e435d94..b25505f 100644 --- a/desktop/modules/status/README.md +++ b/desktop/modules/status/README.md @@ -28,7 +28,7 @@ mechanism, which is why it keeps working while quickshell is down. statusctl get prints 0 or 1 statusctl set 0|1 statusctl toggle - statusctl watch waybar JSON on every change + statusctl watch JSON on every change (no consumer now) The repo copy is the source; `~/bin/statusctl` is a symlink to it. `watch` watches the directory rather than the file, because an atomic write replaces the file @@ -70,8 +70,8 @@ The traffic runs both ways, and only one way writes. $XDG_RUNTIME_DIR/breaktimer.remain seconds left in the phase exposed as `Status.btState`, `btPhase` and `btRemain`, with `btRunning` and -`btPaused` derived from the first. `waybar-breaktimer.sh` reads the same three -files and the two consumers do not know about each other. +`btPaused` derived from the first. The old bar script read the same three +files; the two consumers never knew about each other. **Writing: never.** The daemon owns those files and rewrites state and phase on every transition, so a second writer would race its loop. Every control calls a @@ -83,7 +83,7 @@ end the daemon write `stopped` there: `stop_daemon`, and the `cleanup` trap on `TERM`. A daemon lost to `KILL` leaves a stale `running` and the drawer shows a frozen countdown, a visible wrong answer the Start button resolves, which is cheaper than a liveness probe on every repaint. QML cannot send a signal, so -the `kill -0` check the waybar module uses is not available here anyway. +the `kill -0` check the old bar module used is not available here anyway. **The countdown counts in five second steps**, because that is the daemon's tick and the shell does not interpolate between its writes. A local one second @@ -123,16 +123,17 @@ runs, since `status.gaming` holds it on until the game exits. `status.gaming` is never set by `statusctl`; the detector owns it. The effects are unchanged, because they key off the combined `presentation` value. -## Waybar +## The watch (no consumer now) -`custom/presentation` reads `statusctl presentation watch`. It replaces -waybar's built-in `idle_inhibitor`, which cannot be kept alongside it: that -module owns its own inhibitor object, so both would have to be released -before the screen could lock. +`statusctl presentation watch` fed waybar's `custom/presentation` module, which +replaced waybar's built-in `idle_inhibitor`. Waybar is gone, so the watch has +no consumer; the command stays. Presentation is toggled from the drawer's +status page, and later from the control panel. The island shows no presentation +state at rest. The watch emits three classes, not two. `status.gaming` turns the mode on -without touching the manual half, so a game would otherwise leave the widget -reading `deactivated` while the effects were asserted. `gaming` is its own +without touching the manual half, so a bar widget would otherwise read +`deactivated` while the effects were asserted. `gaming` is its own class with its own icon, and `toggle` is refused while it holds: the detector reasserts the file within its poll, so the write would not stick. `set` is still allowed, since the manual half is worth setting for when the game exits. -- cgit v1.2.3