From fe07298adbc33e5d2dd4e88592e7c01185c97ea4 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Sun, 27 Jul 2025 08:51:43 +0700 Subject: [PATCH] hyprlanddata: use stdiocollector instead of jq hack with splitparser --- .../quickshell/ii/services/HyprlandData.qml | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/.config/quickshell/ii/services/HyprlandData.qml b/.config/quickshell/ii/services/HyprlandData.qml index 6488ded82..07c2d89a2 100644 --- a/.config/quickshell/ii/services/HyprlandData.qml +++ b/.config/quickshell/ii/services/HyprlandData.qml @@ -69,10 +69,11 @@ Singleton { Process { id: getClients - command: ["bash", "-c", "hyprctl clients -j | jq -c"] - stdout: SplitParser { - onRead: data => { - root.windowList = JSON.parse(data); + command: ["bash", "-c", "hyprctl clients -j"] + stdout: StdioCollector { + id: clientsCollector + onStreamFinished: { + root.windowList = JSON.parse(clientsCollector.text) let tempWinByAddress = {}; for (var i = 0; i < root.windowList.length; ++i) { var win = root.windowList[i]; @@ -86,30 +87,33 @@ Singleton { Process { id: getMonitors - command: ["bash", "-c", "hyprctl monitors -j | jq -c"] - stdout: SplitParser { - onRead: data => { - root.monitors = JSON.parse(data); + command: ["bash", "-c", "hyprctl monitors -j"] + stdout: StdioCollector { + id: monitorsCollector + onStreamFinished: { + root.monitors = JSON.parse(monitorsCollector.text); } } } Process { id: getLayers - command: ["bash", "-c", "hyprctl layers -j | jq -c"] - stdout: SplitParser { - onRead: data => { - root.layers = JSON.parse(data); + command: ["bash", "-c", "hyprctl layers -j"] + stdout: StdioCollector { + id: layersCollector + onStreamFinished: { + root.layers = JSON.parse(layersCollector.text); } } } Process { id: getWorkspaces - command: ["bash", "-c", "hyprctl workspaces -j | jq -c"] - stdout: SplitParser { - onRead: data => { - root.workspaces = JSON.parse(data); + command: ["bash", "-c", "hyprctl workspaces -j"] + stdout: StdioCollector { + id: workspacesCollector + onStreamFinished: { + root.workspaces = JSON.parse(workspacesCollector.text); let tempWorkspaceById = {}; for (var i = 0; i < root.workspaces.length; ++i) { var ws = root.workspaces[i]; @@ -123,10 +127,11 @@ Singleton { Process { id: getActiveWorkspace - command: ["bash", "-c", "hyprctl activeworkspace -j | jq -c"] - stdout: SplitParser { - onRead: data => { - root.activeWorkspace = JSON.parse(data); + command: ["bash", "-c", "hyprctl activeworkspace -j"] + stdout: StdioCollector { + id: activeWorkspaceCollector + onStreamFinished: { + root.activeWorkspace = JSON.parse(activeWorkspaceCollector.text); } } }