From 7bfa7b17341a5aba3b08991d29758acad8781397 Mon Sep 17 00:00:00 2001 From: Andre Ramnitz Date: Sun, 25 Oct 2026 09:05:05 +0100 Subject: [PATCH] scripts: add simpledwindle_reload --- dot-local/bin/simpledwindle_reload | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 dot-local/bin/simpledwindle_reload diff --git a/dot-local/bin/simpledwindle_reload b/dot-local/bin/simpledwindle_reload new file mode 100755 index 0000000..47aa911 --- /dev/null +++ b/dot-local/bin/simpledwindle_reload @@ -0,0 +1,64 @@ + +#!/usr/bin/env bash + +set -Eeuo pipefail + +readonly NAME="simpledwindle" +readonly SCRIPT="$HOME/.local/share/kwin/scripts/$NAME/contents/code/main.js" +readonly DBUS_SERVICE="org.kde.KWin" +readonly DBUS_PATH="/Scripting" + +die() { + printf 'ERROR: %s\n' "$*" >&2 + exit 1 +} + +kwin() { + qdbus6 "$DBUS_SERVICE" "$DBUS_PATH" "$@" +} + +command -v qdbus6 >/dev/null 2>&1 || + die "qdbus6 wurde nicht gefunden." + +[[ -r "$SCRIPT" ]] || + die "Script nicht gefunden oder nicht lesbar: $SCRIPT" + +printf '[%s] Checking KWin scripting interface...\n' "$NAME" + +kwin isScriptLoaded "$NAME" >/dev/null || + die "KWin-Scripting-Schnittstelle nicht erreichbar." + +# Vorhandene Instanz entfernen +if [[ $(kwin isScriptLoaded "$NAME") == true ]]; then + printf '[%s] Unloading...\n' "$NAME" + + result=$(kwin unloadScript "$NAME") || + die "unloadScript fehlgeschlagen." + + [[ $result == true ]] || + die "KWin konnte das Script nicht entladen." + + [[ $(kwin isScriptLoaded "$NAME") == false ]] || + die "Script ist nach unloadScript weiterhin geladen." +fi + +# Neue Instanz registrieren +printf '[%s] Loading...\n' "$NAME" + +id=$(kwin loadScript "$SCRIPT" "$NAME") || + die "loadScript fehlgeschlagen." + +[[ $id =~ ^[0-9]+$ ]] || + die "Unerwartete Script-ID: $id" + +[[ $(kwin isScriptLoaded "$NAME") == true ]] || + die "Script wurde nicht registriert." + +# KWin-Scripting starten +printf '[%s] Starting (ID: %s)...\n' "$NAME" "$id" + +kwin start || + die "KWin konnte das Script nicht starten." + +printf '[%s] Reload requested successfully.\n' "$NAME" + -- 2.56.0