From 7f99167f0b6a3c83bf77e20bc5e03942b901fb71 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 9 Nov 2026 18:25:59 +0100 Subject: fix: OBS idle timeout, payload validation, workspace list --- deckit/modules/windows.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'deckit/modules/windows.py') diff --git a/deckit/modules/windows.py b/deckit/modules/windows.py index 022bdd7..d02fc0c 100644 --- a/deckit/modules/windows.py +++ b/deckit/modules/windows.py @@ -45,7 +45,7 @@ def _state(run): try: clients = json.loads(run(["hyprctl", "clients", "-j"]) or "[]") active = json.loads(run(["hyprctl", "activewindow", "-j"]) or "{}").get("address") - monitors = json.loads(run(["hyprctl", "monitors", "-j"]) or "[]") + workspaces = json.loads(run(["hyprctl", "workspaces", "-j"]) or "[]") except json.JSONDecodeError: return {"windows": [], "workspaces": [], "activeClass": None} wins = sorted( @@ -54,7 +54,8 @@ def _state(run): for c in clients if c.get("mapped", True) and c["workspace"]["id"] > 0), key=lambda w: (w["workspace"], w["class"])) active_class = next((w["class"] for w in wins if w["active"]), None) - return {"windows": wins, "workspaces": [m["activeWorkspace"]["id"] for m in monitors], + return {"windows": wins, + "workspaces": sorted(w["id"] for w in workspaces if w.get("id", 0) > 0), "activeClass": active_class} @@ -88,5 +89,8 @@ def make(cfg: dict) -> Module: raise ModuleError("unknown launch key") _popen(["sh", "-c", command] if isinstance(command, str) else command) - return Module(name="windows", title="Windows", state=lambda: _state(run), + def state(): + return {**_state(run), "launches": list(launch)} + + return Module(name="windows", title="Windows", state=state, actions={"workspace": workspace, "focus": focus, "close": close, "launch": launch_key}) -- cgit v1.2.3