aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-14 13:59:05 +0200
committerDanilo M. <danix@danix.xyz>2026-09-14 13:59:05 +0200
commit821666ada505184dda57ab5362e712c97cdc5201 (patch)
tree1b94ad39c8d9d5257b68b72b8410a6c32731017b /docs/superpowers
parent5d0d2a41523ad53b7b08dac8dca0ffdd08b7e699 (diff)
downloadquickshell-821666ada505184dda57ab5362e712c97cdc5201.tar.gz
quickshell-821666ada505184dda57ab5362e712c97cdc5201.zip
docs: correct three plan details found during execution
The Connections block needs a typed property on a QtObject, the bluetooth README lines belong to Task 6 so every commit stays self-consistent, and Pairing has no status property. Each was found by a task review and fixed in the plan as well as the code.
Diffstat (limited to 'docs/superpowers')
-rw-r--r--docs/superpowers/plans/2026-09-14-network-bluetooth.md46
1 files changed, 32 insertions, 14 deletions
diff --git a/docs/superpowers/plans/2026-09-14-network-bluetooth.md b/docs/superpowers/plans/2026-09-14-network-bluetooth.md
index 33604c4..f5e314d 100644
--- a/docs/superpowers/plans/2026-09-14-network-bluetooth.md
+++ b/docs/superpowers/plans/2026-09-14-network-bluetooth.md
@@ -156,7 +156,9 @@ Module {
property Process notifyProc: Process {}
- Connections {
+ // A typed property, not a bare child: Module is a QtObject with no default
+ // property, so a bare child object fails to load. Same as VmModule.
+ property Connections conn: Connections {
target: mod.pendingNetwork
function onConnectionFailed(reason) {
mod.error = "Connection failed: " + reason;
@@ -663,9 +665,10 @@ password field. Known networks offer Forget, the connected one Disconnect.
## Service lifetime
`alwaysActive: true`, and truthfully: the `Quickshell.Networking` backend
-pushes and there is no poll to gate. There is no `Service.qml`, unlike sound
-and vm, because there is no loop to own. Referencing `Networking` in
-`NetworkModule.qml` is what instantiates it at shell start.
+pushes and there is no poll to gate. There is no `Service.qml`, unlike
+sound's `Service.qml` or vm's `Virsh.qml`, because there is no loop to own.
+Referencing `Networking` in `NetworkModule.qml` is what instantiates it at
+shell start.
The backend is empty for about two seconds after launch and then fills. Every
binding repaints when it arrives; nothing caches the first paint.
@@ -682,13 +685,12 @@ them, so a failure shows only as the list not changing. Noted rather than
faked.
```
-- [ ] **Step 2: Update `desktop/README.md`**
+- [ ] **Step 2: Update `desktop/README.md` (network only; Bluetooth lines land in Task 6)**
-In the module list, add the two lines:
+In the module list, add the one line for the module that exists at this commit:
```markdown
modules/network/ wired and wifi, radio, scan, join, forget
- modules/bluetooth/ adapter, scan, pair, connect, forget, trust
```
Change the geometry paragraph's grid sentence from "three columns at 180px minimum, wrapping and adding rows up to a 3x3 ceiling for the modules that exist" to name the current order:
@@ -696,9 +698,15 @@ Change the geometry paragraph's grid sentence from "three columns at 180px minim
```markdown
The bottom is a fixed, never-scrolled `Flow` grid: three columns at 180px
minimum, wrapping and adding rows up to a 3x3 ceiling for the modules that
-exist, in the order Sound, Network, Bluetooth, Mail, Appearance, Machines.
+exist, in the order Sound, Network, Mail, Appearance, Machines.
```
+Then fix the three sentences this module makes stale, in the same file:
+
+- the line "Sound, mail and vm each carry their own README" becomes "Sound, mail, vm and network each carry their own README"
+- the line "Sound, mail and vm each add a service and a page on top of that same shape" becomes "Sound, mail, vm and network each add a service and a page on top of that same shape"
+- the line "Sound and mail are `alwaysActive: true`; vm is false." becomes "Sound, mail and network are `alwaysActive: true`; vm is false."
+
- [ ] **Step 3: Commit**
```bash
@@ -840,7 +848,7 @@ Rectangle {
Text {
anchors.verticalCenter: parent.verticalCenter
visible: row.device.batteryAvailable ?? false
- text: Math.round(row.device.battery ?? 0) + "%"
+ text: Math.round((row.device.battery ?? 0) * 100) + "%"
font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 4 }
color: Theme.overlay
}
@@ -1046,7 +1054,7 @@ safely rather than assuming a first paint."
**Interfaces:**
- Consumes: `BluetoothModule.devices`, `BluetoothModule.notify`.
-- Produces: `Pairing` with `address`, `status`, `error`, `busy`, signal `finished(address, ok)`, and `pair(address)`.
+- Produces: `Pairing` with `address`, `error`, `busy`, signal `finished(address, ok)`, and `pair(address)`. Progress is shown from `busy` plus `address`; there is no separate `status` property.
- [ ] **Step 1: Create `Pairing.qml`**
@@ -1102,12 +1110,12 @@ Add the property beside `adapter`:
readonly property Pairing pairing: Pairing {}
```
-Add the completion handler beside `notifyProc`:
+Add the completion handler beside `notifyProc`, as a typed property (a bare `Connections` child does not load on a `QtObject`; same reason as `NetworkModule`):
```qml
// Pairing runs through bluetoothctl; on success connect natively, on
// failure notify, since the drawer may have closed by then.
- Connections {
+ property Connections pairingConn: Connections {
target: mod.pairing
function onFinished(address, ok) {
if (!ok) {
@@ -1254,10 +1262,20 @@ The adapter is null and the device list empty for about two seconds after
launch. Every access navigates safely; nothing caches the first paint.
```
-- [ ] **Step 2: Commit**
+- [ ] **Step 2: Add the Bluetooth lines to `desktop/README.md`**
+
+Task 3 deliberately left these out so every commit stays self-consistent, since the module did not exist then. Now it does:
+
+- module list: add ` modules/bluetooth/ adapter, scan, pair, connect, forget, trust`
+- grid sentence: extend the order to `Sound, Network, Bluetooth, Mail, Appearance, Machines`
+- the README enumeration becomes "Sound, mail, vm, network and bluetooth each carry their own README"
+- the service enumeration becomes "Sound, mail, vm, network and bluetooth each add a service and a page on top of that same shape"
+- the alwaysActive line becomes "Sound, mail, network and bluetooth are `alwaysActive: true`; vm is false."
+
+- [ ] **Step 3: Commit**
```bash
-git add desktop/modules/bluetooth/README.md
+git add desktop/modules/bluetooth/README.md desktop/README.md
git commit -m "docs(desktop): document the bluetooth module"
```