Using a bash script for SystemStats instead of ZigStat

This commit is contained in:
quadbyte 2025-08-12 15:07:32 -04:00
parent b68d5c9f4c
commit d009b8d5c8
8 changed files with 234 additions and 160 deletions

View file

@ -1,47 +0,0 @@
pragma Singleton
import QtQuick
import Qt.labs.folderlistmodel
import Quickshell
import Quickshell.Io
Singleton {
id: manager //TBC
property string updateInterval: "2s"
property string cpuUsageStr: ""
property string cpuTempStr: ""
property string memoryUsageStr: ""
property string memoryUsagePerStr: ""
property real cpuUsage: 0
property real memoryUsage: 0
property real cpuTemp: 0
property real diskUsage: 0
property real memoryUsagePer: 0
property string diskUsageStr: ""
Process {
id: zigstatProcess
running: true
command: [Quickshell.shellDir + "/Programs/zigstat", updateInterval]
stdout: SplitParser {
onRead: function (line) {
try {
const data = JSON.parse(line)
cpuUsage = +data.cpu
cpuTemp = +data.cputemp
memoryUsage = +data.mem
memoryUsagePer = +data.memper
diskUsage = +data.diskper
cpuUsageStr = data.cpu + "%"
cpuTempStr = data.cputemp + "°C"
memoryUsageStr = data.mem + "G"
memoryUsagePerStr = data.memper + "%"
diskUsageStr = data.diskper + "%"
} catch (e) {
console.error("Failed to parse zigstat output:", e)
}
}
}
}
}

37
Services/SystemStats.qml Normal file
View file

@ -0,0 +1,37 @@
pragma Singleton
import QtQuick
import Qt.labs.folderlistmodel
import Quickshell
import Quickshell.Io
Singleton {
id: root
// Public values
property real cpuUsage: 0
property real cpuTemp: 0
property real memoryUsagePer: 0
property real diskUsage: 0
// Background process emitting one JSON line per sample
Process {
id: reader
running: true
command: ["sh", "-c", Quickshell.shellDir + "/Bin/system-stats.sh"]
stdout: SplitParser {
onRead: function (line) {
try {
const data = JSON.parse(line)
root.cpuUsage = data.cpu
root.cpuTemp = data.cputemp
root.memoryUsagePer = data.memper
root.diskUsage = data.diskper
} catch (e) {
// ignore malformed lines
}
}
}
}
}