diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-21 20:13:23 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-21 20:13:23 +0200 |
| commit | 696f3ad4f65a6516549544af13a9646f57ae523e (patch) | |
| tree | 10004eac68626f413da40c2287dd1838fbb82f86 /desktop/modules/status/README.md | |
| parent | 34a6a3cd65370fd31877da0c54abcae15d69d3a4 (diff) | |
| download | quickshell-696f3ad4f65a6516549544af13a9646f57ae523e.tar.gz quickshell-696f3ad4f65a6516549544af13a9646f57ae523e.zip | |
feat(status): report a running game as its own presentation state
status.gaming is written by the shell's game detector and presentation is
the OR of it and the manual file, but statusctl read only the manual half.
A game therefore asserted the presentation effects while the waybar pill
still read deactivated.
Report gaming as a third state, for presentation only. The watch follows
status.gaming as well as its own file, and emits only on a real change so
an unchanged rewrite draws nothing.
Toggle is refused while a game holds the mode: the detector reasserts the
file within its poll, so the write would not stick. set stays allowed, the
manual half is worth setting for when the game exits.
gaming stays out of MODES. The detector owns that file and nothing here
may write it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/modules/status/README.md')
| -rw-r--r-- | desktop/modules/status/README.md | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/desktop/modules/status/README.md b/desktop/modules/status/README.md index 4d18342..7ac6b93 100644 --- a/desktop/modules/status/README.md +++ b/desktop/modules/status/README.md @@ -130,6 +130,15 @@ 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. +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 +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. +The watch therefore follows `status.gaming` as well as its own file, and emits +only on a real change so an unchanged rewrite draws nothing. + ## The check ./test-statusctl.sh |
