aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/superpowers/plans/2026-09-16-conky-lua-dashboard.md46
1 files changed, 36 insertions, 10 deletions
diff --git a/docs/superpowers/plans/2026-09-16-conky-lua-dashboard.md b/docs/superpowers/plans/2026-09-16-conky-lua-dashboard.md
index c57bcbc..339e2f1 100644
--- a/docs/superpowers/plans/2026-09-16-conky-lua-dashboard.md
+++ b/docs/superpowers/plans/2026-09-16-conky-lua-dashboard.md
@@ -750,7 +750,10 @@ hyprctl dispatch workspace "$ws" >/dev/null; sleep 2
g=$(hyprctl clients -j | jq -r '.[]|select(.class=="conky-dash")|"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | head -1)
grim -g "$g" /tmp/dash-task4.png && echo "captured $g"
hyprctl dispatch workspace "$orig" >/dev/null
-pkill -f 'conky -c ./conky.conf'
+# pkill -x, not pkill -f: a -f pattern that matches this script's own
+# command line kills the shell's process group, returning 144 and
+# swallowing whatever command follows.
+pkill -x conky
cat /tmp/conky-dash.log
```
@@ -1031,7 +1034,10 @@ hyprctl dispatch workspace "$ws" >/dev/null; sleep 2
g=$(hyprctl clients -j | jq -r '.[]|select(.class=="conky-dash")|"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | head -1)
grim -g "$g" /tmp/dash-clock.png && echo "captured $g"
hyprctl dispatch workspace "$orig" >/dev/null
-pkill -f 'conky -c ./conky.conf'
+# pkill -x, not pkill -f: a -f pattern that matches this script's own
+# command line kills the shell's process group, returning 144 and
+# swallowing whatever command follows.
+pkill -x conky
cat /tmp/conky-dash.log
```
@@ -1278,13 +1284,17 @@ hl.window_rule({
-- SUPER+S, not SUPER+D: keybindings.lua already binds D to the unnamed special
-- workspace.
-hl.bind(hl.mainMod .. " + s", hl.dsp.workspace.toggle_special("dash"))
+-- Literal "SUPER", not hl.mainMod: keybindings.lua declares
+-- `local mainMod = "SUPER"`, a file-local never assigned onto hl, so
+-- hl.mainMod is nil in any other section.
+hl.bind("SUPER + s", hl.dsp.workspace.toggle_special("dash"))
```
-Note: `hl.mainMod` may not be exported; `keybindings.lua` uses a local
-`mainMod`. If `hl.mainMod` is nil at load, replace that last line with the
-literal modifier used in `keybindings.lua` (read its `mainMod` assignment with
-`grep -n 'mainMod' ~/.config/hypr/sections/keybindings.lua | head -3`).
+Note on the two unusual rule keys: `workspace`, `float`, `border_size` and
+`rounding` all appear in existing rules, but `fullscreen` and `no_focus` appear
+nowhere in this config. They were checked against the runtime instead:
+`hl.window_rule` rejects an unknown field with `unknown field '<name>'`, and
+neither of these produces that error, so the Lua API accepts both.
- [ ] **Step 2: Verify it parses as Lua**
@@ -1332,12 +1342,28 @@ why the dashboard uses its own `special:dash`.
Do not assume the class matches; check it against a running instance. The rules
are inert if the class in the config and the rules disagree.
+`conky.conf` is gitignored generated output, so regenerate it first if it is
+missing (Task 6's render command, repeated here so this step stands alone):
+
```bash
cd ~/Programming/GIT/conky-theme-udt
+[ -f conky.conf ] || sed \
+ -e 's/@SCHEME@/macchiato/' -e 's/@HEADING@/#8aadf4/' -e 's/@LABEL@/#a5adcb/' \
+ -e 's/@RULE@/#494d64/' -e 's/@VALUE@/#8bd5ca/' -e 's/@HIGHLIGHT@/#c6a0f6/' \
+ -e 's/@OK@/#a6da95/' -e 's/@CRITICAL@/#ed8796/' -e 's/@BODY@/#cad3f5/' \
+ -e 's/@BODY_SHADE_RAW@/1e2030/' \
+ -e 's/@BODY_OUTLINE@/#494d64/' -e 's/@BODY_SHADE@/#1e2030/' \
+ -e "s|~/.config/conky/dashboard.lua|./dashboard.lua|" \
+ conky.conf.in > conky.conf
+
(conky -c ./conky.conf >/tmp/conky-dash.log 2>&1 &)
sleep 3
hyprctl clients -j | jq -r '.[]|select(.class=="conky-dash")|"class=\(.class) ws=\(.workspace.name) floating=\(.floating) size=\(.size)"'
-pkill -f 'conky -c ./conky.conf'
+# pkill -x, not pkill -f: a -f pattern matching this script's own command line
+# kills the shell's process group, which returns 144 and swallows any command
+# after it.
+pkill -x conky
+cat /tmp/conky-dash.log
```
Expected: one line with `class=conky-dash`. Nothing printed means the class is
@@ -1605,7 +1631,7 @@ Run the parser and layout checks:
Screenshot it, remembering that `grim` captures screen coordinates and so needs
the dashboard's workspace to be the active one:
- hyprctl dispatch togglespecialworkspace dash
+ hyprctl dispatch 'hl.dsp.workspace.toggle_special("dash")'
sleep 1
grim -g "$(hyprctl clients -j | jq -r '.[]|select(.class=="conky-dash")|"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')" /tmp/dash.png
@@ -1679,7 +1705,7 @@ Run after Task 10. Every item is a command with an expected result, not a judgem
- [ ] No unsubstituted placeholders: `grep -c '@[A-Z_]*@' conky.conf` prints `0`
- [ ] No Lua faults: `timeout 8 conky -c ~/.config/conky/conky.conf 2>&1 | grep 'dashboard error'` prints nothing
- [ ] Window places correctly: `hyprctl clients -j | jq -r '.[]|select(.class=="conky-dash")|.workspace.name'` prints `special:dash`
-- [ ] Toggle works: `hyprctl dispatch togglespecialworkspace dash` makes it visible, again hides it
+- [ ] Toggle works: `hyprctl dispatch 'hl.dsp.workspace.toggle_special("dash")'` makes it visible, again hides it (the bare `togglespecialworkspace dash` form errors under the Lua config)
- [ ] Clock is legible in a screenshot taken on its own workspace, and matches `idea2.png` in shape
- [ ] Scheme switch recolours it: change `scheme` in `~/.config/udt/roles.conf`, run UDT's `install.sh`, see different hex in `conky.conf`
- [ ] Both repos have signed commits: `git log --format='%h %G? %s' -5` shows `G` in each