diff options
Diffstat (limited to 'docs/superpowers/specs')
| -rw-r--r-- | docs/superpowers/specs/2026-10-07-island-core-design.md | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/docs/superpowers/specs/2026-10-07-island-core-design.md b/docs/superpowers/specs/2026-10-07-island-core-design.md index 93af743..0110432 100644 --- a/docs/superpowers/specs/2026-10-07-island-core-design.md +++ b/docs/superpowers/specs/2026-10-07-island-core-design.md @@ -83,9 +83,11 @@ instead, split into equal segments, one per active kind: | location | `Theme.blue` | geoclue running | | screen | `Theme.red` | a PipeWire node whose `media.name` matches `xdph-streaming` or `gsr-default` | -The detection rules are those of `waybar-theme-udt/bin/privacy_dots.sh`. Mic -and screen use `Quickshell.Services.Pipewire` instead of `pw-dump`; camera and -location have no binding and stay as a short poll. +The detection rules are those of `waybar-theme-udt/bin/privacy_dots.sh`, +ported to `island/privacy.sh` and polled every 2s. Quickshell 0.3.1's `PwNode` +exposes no running state, which is what tells a capturing source from an idle +one, so mic and screen go through `pw-dump` like camera and location go +through `fuser` and `pgrep`. **Revealed.** The pointer enters the sliver's strip. The two pills slide down and split apart from it in one continuous move: they start overlapping at the @@ -126,12 +128,13 @@ time, coloured by state as waybar's `vms_dots.sh` did: | State | Colour | | --- | --- | | running | `Theme.green` | -| paused, idle | `Theme.yellow` | -| pmsuspended | `Theme.accent` | +| paused, blocked (virsh's idle), shutting down | `Theme.yellow` | +| pmsuspended (`Virsh` calls it suspended) | `Theme.accent` | | saved (managed save) | `Theme.blue` | | crashed | `Theme.red` | -Shut-off VMs get no dot, and with no VM running there are no dots at all. +A shut-off VM gets no dot unless it carries a managed save; with every VM +plainly shut off there are no dots at all. States come from `desktop/modules/vm/Virsh.qml`, whose lifecycle event stream already runs whether the drawer is open or not. |
