aboutsummaryrefslogtreecommitdiffstats
path: root/restart.sh
diff options
context:
space:
mode:
Diffstat (limited to 'restart.sh')
-rwxr-xr-xrestart.sh46
1 files changed, 46 insertions, 0 deletions
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