1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-08 06:25:37 -05:00

common: add Proc.runCommand helper

This commit is contained in:
bbedward
2025-10-14 15:14:20 -04:00
parent 5bb5cd296d
commit 9ff0d7405f
2 changed files with 86 additions and 28 deletions

View File

@@ -59,33 +59,6 @@ Singleton {
onTriggered: root.doGenerateNiriLayoutConfig()
}
Process {
id: outputsProcess
command: ["niri", "msg", "-j", "outputs"]
stdout: StdioCollector {
onStreamFinished: {
try {
const outputsData = JSON.parse(text)
outputs = outputsData
console.log("NiriService: Loaded", Object.keys(outputsData).length, "outputs")
updateDisplayScales()
if (windows.length > 0) {
windows = sortWindowsByLayout(windows)
}
} catch (e) {
console.warn("NiriService: Failed to parse outputs:", e)
}
}
}
onExited: exitCode => {
if (exitCode !== 0) {
console.warn("NiriService: Failed to fetch outputs, exit code:", exitCode)
}
}
}
Process {
id: validateProcess
command: ["niri", "validate"]
@@ -168,7 +141,23 @@ Singleton {
function fetchOutputs() {
if (!CompositorService.isNiri) return
outputsProcess.running = true
Proc.runCommand("niri-fetch-outputs", ["niri", "msg", "-j", "outputs"], (output, exitCode) => {
if (exitCode !== 0) {
console.warn("NiriService: Failed to fetch outputs, exit code:", exitCode)
return
}
try {
const outputsData = JSON.parse(output)
outputs = outputsData
console.log("NiriService: Loaded", Object.keys(outputsData).length, "outputs")
updateDisplayScales()
if (windows.length > 0) {
windows = sortWindowsByLayout(windows)
}
} catch (e) {
console.warn("NiriService: Failed to parse outputs:", e)
}
})
}
function updateDisplayScales() {