noctalia-plugin: captures as streams (no 5 s timeout), valw's error message in notifications, full state on every --set
This commit is contained in:
1 parent
9fa71fd399
commit
619eab9dc9
11 files changed
+234
-81
No files matched your search
@@ -1247,7 +1247,7 @@ noctalia msg plugins enable elars/valw
|
||||
noctalia msg panel-toggle elars/valw:toolbar
|
||||
```
|
||||
|
||||
Expected: the panel appears near the bar with the four modes, the timer and three toggles, in Noctalia's style. Ask the user to confirm what they see, then close it (`noctalia msg panel-close`). Check `grep -i valw ~/.cache/noctalia/noctalia.log | tail -20` for Luau errors (unknown glyph names, bad props); fix any in the plugin, rerun Task 3's tests, and commit (`jj commit -m "noctalia-plugin: fixes from the live Noctalia" noctalia-plugin`).
|
||||
Expected: the panel appears near the bar with the four modes, the timer and three toggles, in Noctalia's style. Ask the user to confirm what they see, then close it (`noctalia msg panel-close`). With the user's go-ahead, also take two real shots from the panel: one with the timer at 5 s (the countdown runs, the shot lands, no error notification) and one Region shot held open for more than 6 s before selecting (it must not be killed). Check that nothing is clipped at 360×220 (the "Play sound" row, the four mode buttons in Turkish); adjust `width`/`height` in `plugin.toml` if needed. Check `grep -i valw ~/.cache/noctalia/noctalia.log | tail -20` for Luau errors (unknown glyph names, bad props); fix any in the plugin, rerun Task 3's tests, and commit (`jj commit -m "noctalia-plugin: fixes from the live Noctalia" noctalia-plugin`).
|
||||
|
||||
- [ ] **Step 4: Undo the dev install**
|
||||
|
||||
|
||||
@@ -89,18 +89,23 @@ about 360 × 220.
|
||||
- On open (`onOpen`): `valw toolbar --state` → `noctalia.json.decode` →
|
||||
render. If valw is missing (`noctalia.commandExists`) or the call fails:
|
||||
a single label "valw is not available" and `noctalia.notifyError` with
|
||||
the stderr's last line.
|
||||
valw's error message (its `error:` line).
|
||||
- A row of four buttons with glyphs and labels: Screen (`device-desktop`),
|
||||
Region (`crop`), Window (`app-window`), Zoom (`zoom-in`). The
|
||||
remembered mode is `variant = "primary"`, the others `"outline"`.
|
||||
- A click on a mode: `panel.close()`, then
|
||||
`sleep 0.3 && valw toolbar --run <mode>` (the wait lets the panel
|
||||
disappear before the screen is frozen or captured). A non-zero exit
|
||||
other than 3 → `noctalia.notifyError("valw", <stderr's last line>)`.
|
||||
disappear before the screen is frozen or captured). Captures run with
|
||||
`noctalia.runStream` (stderr folded in, the exit status echoed last):
|
||||
`runAsync` with a callback kills its command after 5 s, and a region,
|
||||
a zoom or the timer can take longer. A non-zero exit other than 3 →
|
||||
`noctalia.notifyError("valw", <valw's error: line>)`.
|
||||
- Below: "Timer" `ui.select` with `Off`, `5 s`, `10 s` (from `timers`),
|
||||
and three `ui.toggle`s: "Show cursor", "Show preview", "Play sound".
|
||||
A change re-renders at once and runs `valw toolbar --set <key>=<value>`;
|
||||
a failure → `notifyError`.
|
||||
A change re-renders at once and runs `valw toolbar --set` with every
|
||||
choice (so two quick changes can't undo each other); a failure →
|
||||
`notifyError`. `--state` and `--set` start no run log (they would push
|
||||
the capture logs out).
|
||||
- Colours only by Noctalia role names (`primary`, `on_surface`,
|
||||
`outline`, …); no hex colours anywhere in the plugin.
|
||||
|
||||
|
||||
Reference in new issue
Block a user