diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-07 19:13:16 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-07 19:13:16 +0200 |
| commit | a55464e179a3f82aa46866564878ad35e11e0ae5 (patch) | |
| tree | 7e604416cb2c6c1a22f633a8dc6158d4d30d7e1f /desktop/modules/status | |
| parent | fe80b03136a141fb6832474e7dd6dc0ba822e454 (diff) | |
| download | quickshell-a55464e179a3f82aa46866564878ad35e11e0ae5.tar.gz quickshell-a55464e179a3f82aa46866564878ad35e11e0ae5.zip | |
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 <noreply@anthropic.com>
Diffstat (limited to 'desktop/modules/status')
| -rw-r--r-- | desktop/modules/status/README.md | 23 |
1 files changed, 12 insertions, 11 deletions
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 <mode> get prints 0 or 1 statusctl <mode> set 0|1 statusctl <mode> toggle - statusctl <mode> watch waybar JSON on every change + statusctl <mode> 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. |
