aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md16
-rwxr-xr-xrestart.sh46
2 files changed, 58 insertions, 4 deletions
diff --git a/README.md b/README.md
index b51e9fa..d7cce00 100644
--- a/README.md
+++ b/README.md
@@ -129,12 +129,20 @@ cheap.
## Development
-Run it in the foreground to see Lua output, which is the only debugging channel:
+After editing `dashboard.lua` or a widget:
- conky -c ~/.config/conky/conky.conf
+ ./restart.sh
-Conky has no hot-reload, so kill any running instance first (`pkill -x conky`)
-rather than ending up with two.
+Conky never rereads its config and the Lua is symlinked into `~/.config/conky/`,
+so a restart is the whole update path. The script syntax-checks first and
+refuses to restart on a Lua error, since the alternative is a blank screen with
+no message. Only a change to `conky.conf.in` or the palette needs UDT's
+`install.sh` to re-render first.
+
+To see Lua output, which is the only debugging channel, run it in the
+foreground instead:
+
+ pkill -x conky; conky -c ~/.config/conky/conky.conf
Run the parser and layout checks:
diff --git a/restart.sh b/restart.sh
new file mode 100755
index 0000000..f99ca98
--- /dev/null
+++ b/restart.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+# Restart the dashboard after editing dashboard.lua or a widget.
+#
+# Conky never rereads its config, and the Lua is symlinked into
+# ~/.config/conky/, so a restart is the whole update path. Only a change to
+# conky.conf.in or the palette needs UDT's install.sh to re-render first.
+#
+# Relaunched through hyprctl with `[workspace special:dash silent]`: the
+# dashboard's window rule puts it on that workspace but cannot suppress the
+# switch to it, so a plain exec throws the dashboard up over whatever is on
+# screen.
+
+set -u
+
+CONF="$HOME/.config/conky/conky.conf"
+
+if [ ! -e "$CONF" ]; then
+ echo "restart: no $CONF (run ../unified-desktop-theme/install.sh first)" >&2
+ exit 1
+fi
+
+# Syntax-check first: a Lua error is a blank screen with no message, so it is
+# worth catching here rather than discovering it on the workspace.
+if ! luac -p dashboard.lua lib/*.lua widgets/*.lua; then
+ echo "restart: Lua syntax error, not restarting" >&2
+ exit 1
+fi
+
+pkill -x conky 2>/dev/null && sleep 0.5
+
+if command -v hyprctl >/dev/null 2>&1 && [ -n "${HYPRLAND_INSTANCE_SIGNATURE:-}" ]; then
+ hyprctl dispatch \
+ "hl.dsp.exec_cmd(\"[workspace special:dash silent] conky -c $CONF -d\")" \
+ >/dev/null
+else
+ (conky -c "$CONF" -d >/dev/null 2>&1 &)
+fi
+
+sleep 1
+if pgrep -x conky >/dev/null; then
+ echo "dashboard restarted"
+else
+ echo "restart: conky did not come up; run it in the foreground to see why:" >&2
+ echo " conky -c $CONF" >&2
+ exit 1
+fi