pragma Singleton import Quickshell import Quickshell.Hyprland import QtQuick Singleton { id: root readonly property var toplevels: Hyprland.toplevels readonly property var workspaces: Hyprland.workspaces readonly property var monitors: Hyprland.monitors readonly property HyprlandToplevel activeToplevel: Hyprland.activeToplevel readonly property HyprlandWorkspace focusedWorkspace: Hyprland.focusedWorkspace readonly property HyprlandMonitor focusedMonitor: Hyprland.focusedMonitor readonly property int activeWsId: focusedWorkspace?.id ?? 1 function dispatch(request: string): void { Hyprland.dispatch(request); } Connections { target: Hyprland function onRawEvent(event: HyprlandEvent): void { const n = event.name; if (n.endsWith("v2")) return; if (["workspace", "moveworkspace", "activespecial", "focusedmon"].includes(n)) { Hyprland.refreshWorkspaces(); Hyprland.refreshMonitors(); } else if (["openwindow", "closewindow", "movewindow"].includes(n)) { Hyprland.refreshToplevels(); Hyprland.refreshWorkspaces(); } else if (n.includes("mon")) { Hyprland.refreshMonitors(); } else if (n.includes("workspace")) { Hyprland.refreshWorkspaces(); } else if (n.includes("window") || n.includes("group") || ["pin", "fullscreen", "changefloatingmode", "minimize"].includes(n)) { Hyprland.refreshToplevels(); } } } }