diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-07 18:42:17 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-07 18:42:17 +0200 |
| commit | d9783e91a4b98f14e02a3d7f947ab6617cb96047 (patch) | |
| tree | 3e858480f56b576ed27319322b21a08412fb9d69 /docs/superpowers/specs | |
| parent | d4996abb0f75657f877a858a93afdd1eb9763bd9 (diff) | |
| download | quickshell-d9783e91a4b98f14e02a3d7f947ab6617cb96047.tar.gz quickshell-d9783e91a4b98f14e02a3d7f947ab6617cb96047.zip | |
docs(plan): island core implementation plan
Twelve tasks from pure logic to waybar removal. The spec is corrected on
two points found while reading the code: Quickshell's PwNode has no running
state, so mic and screen detection poll pw-dump like the waybar script did,
and the VM dot rule now agrees with its own table on saved VMs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
