aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--desktop/island/Island.qml8
-rw-r--r--desktop/island/StatusPill.qml17
-rw-r--r--docs/superpowers/specs/2026-10-07-island-core-design.md3
3 files changed, 18 insertions, 10 deletions
diff --git a/desktop/island/Island.qml b/desktop/island/Island.qml
index b471e3c..0cb3c10 100644
--- a/desktop/island/Island.qml
+++ b/desktop/island/Island.qml
@@ -146,8 +146,10 @@ PanelWindow {
Region { item: status; intersection: Intersection.Combine }
}
- // The visible sliver: accent at rest, the capture colours while
- // something captures, one equal segment per active kind.
+ // The visible sliver: neutral at rest, the capture colours while
+ // something captures, one equal segment per active kind. Not the accent
+ // at rest: udt snaps the accent to a palette colour, and when it lands on
+ // green an idle sliver read exactly like a live microphone.
Row {
id: sliver
x: win.cx - width / 2
@@ -156,7 +158,7 @@ PanelWindow {
height: 4
Repeater {
- model: Privacy.roles.length ? Privacy.roles : ["accent"]
+ model: Privacy.roles.length ? Privacy.roles : ["overlay"]
delegate: Rectangle {
required property string modelData
width: sliver.width / Math.max(1, Privacy.roles.length)
diff --git a/desktop/island/StatusPill.qml b/desktop/island/StatusPill.qml
index 344117c..5ab8f95 100644
--- a/desktop/island/StatusPill.qml
+++ b/desktop/island/StatusPill.qml
@@ -93,13 +93,18 @@ Capsule {
// One switch per wheel notch (120). A touchpad sends many small
// deltas, and switching on each made the count erratic.
- WheelHandler {
+ // A MouseArea, not a WheelHandler: the handler never fired here,
+ // while MouseArea.onWheel is what SoundPage already relies on.
+ MouseArea {
+ anchors.fill: parent
property real acc: 0
- onWheel: event => {
- acc += event.angleDelta.y;
- if (Math.abs(acc) < 120) return;
- Keyboard.cycle(acc > 0 ? "prev" : "next");
- acc = 0;
+ onWheel: wheel => {
+ acc += wheel.angleDelta.y;
+ if (Math.abs(acc) >= 120) {
+ Keyboard.cycle(acc > 0 ? "prev" : "next");
+ acc = 0;
+ }
+ wheel.accepted = true;
}
}
}
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 0110432..858e75c 100644
--- a/docs/superpowers/specs/2026-10-07-island-core-design.md
+++ b/docs/superpowers/specs/2026-10-07-island-core-design.md
@@ -73,7 +73,8 @@ translucent and still works.
## States
**Hidden.** Only the sliver shows: a short, thin bar at top centre in
-`Theme.accent`. While anything captures, the sliver takes the capture colours
+`Theme.overlay`, neutral, because udt can snap the accent to the same colour
+as a capture kind (green, measured: accent and green both `#36d190`). While anything captures, the sliver takes the capture colours
instead, split into equal segments, one per active kind:
| Kind | Colour | Source |