aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/specs
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-07 18:42:17 +0200
committerDanilo M. <danix@danix.xyz>2026-10-07 18:42:17 +0200
commitd9783e91a4b98f14e02a3d7f947ab6617cb96047 (patch)
tree3e858480f56b576ed27319322b21a08412fb9d69 /docs/superpowers/specs
parentd4996abb0f75657f877a858a93afdd1eb9763bd9 (diff)
downloadquickshell-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.md15
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.