summaryrefslogtreecommitdiff
path: root/services/SystemUsage.qml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-15 15:43:50 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-15 15:43:50 +1000
commit05e9561fd687c15baba56fc9eeca9a29b504abd2 (patch)
treea739b82c81d38727fe69c4c541a0509a75f15a8d /services/SystemUsage.qml
parentcolours: more fixes for cli rewrite (diff)
downloadcaelestia-shell-05e9561fd687c15baba56fc9eeca9a29b504abd2.tar.gz
caelestia-shell-05e9561fd687c15baba56fc9eeca9a29b504abd2.tar.bz2
caelestia-shell-05e9561fd687c15baba56fc9eeca9a29b504abd2.zip
internal: use stdiocollector
Removes dependency on jq Also fix beatdetector
Diffstat (limited to 'services/SystemUsage.qml')
-rw-r--r--services/SystemUsage.qml83
1 files changed, 43 insertions, 40 deletions
diff --git a/services/SystemUsage.qml b/services/SystemUsage.qml
index ef953f1..9bf665a 100644
--- a/services/SystemUsage.qml
+++ b/services/SystemUsage.qml
@@ -98,38 +98,40 @@ Singleton {
running: true
command: ["sh", "-c", "df | grep '^/dev/' | awk '{print $1, $3, $4}'"]
- stdout: SplitParser {
- splitMarker: ""
- onRead: data => {
- const deviceMap = new Map();
+ stdout: StdioCollector {
+ onStreamFinished: {
+ const deviceMap = new Map();
- for (const line of data.trim().split("\n")) {
- if (line.trim() === "") continue;
+ for (const line of text.trim().split("\n")) {
+ if (line.trim() === "")
+ continue;
- const parts = line.trim().split(/\s+/);
- if (parts.length >= 3) {
- const device = parts[0];
- const used = parseInt(parts[1], 10) || 0;
- const avail = parseInt(parts[2], 10) || 0;
-
- // only keep the entry with the largest total space for each device
- if (!deviceMap.has(device) ||
- (used + avail) > (deviceMap.get(device).used + deviceMap.get(device).avail)) {
- deviceMap.set(device, { used: used, avail: avail });
- }
- }
- }
+ const parts = line.trim().split(/\s+/);
+ if (parts.length >= 3) {
+ const device = parts[0];
+ const used = parseInt(parts[1], 10) || 0;
+ const avail = parseInt(parts[2], 10) || 0;
- let totalUsed = 0;
- let totalAvail = 0;
-
- for (const [device, stats] of deviceMap) {
- totalUsed += stats.used;
- totalAvail += stats.avail;
- }
+ // Only keep the entry with the largest total space for each device
+ if (!deviceMap.has(device) || (used + avail) > (deviceMap.get(device).used + deviceMap.get(device).avail)) {
+ deviceMap.set(device, {
+ used: used,
+ avail: avail
+ });
+ }
+ }
+ }
+
+ let totalUsed = 0;
+ let totalAvail = 0;
- root.storageUsed = totalUsed;
- root.storageTotal = totalUsed + totalAvail;
+ for (const [device, stats] of deviceMap) {
+ totalUsed += stats.used;
+ totalAvail += stats.avail;
+ }
+
+ root.storageUsed = totalUsed;
+ root.storageTotal = totalUsed + totalAvail;
}
}
}
@@ -138,10 +140,10 @@ Singleton {
id: cpuTemp
running: true
- command: ["fish", "-c", "cat /sys/class/thermal/thermal_zone*/temp | string join ' '"]
- stdout: SplitParser {
- onRead: data => {
- const temps = data.trim().split(" ");
+ command: ["sh", "-c", "cat /sys/class/thermal/thermal_zone*/temp"]
+ stdout: StdioCollector {
+ onStreamFinished: {
+ const temps = text.trim().split(" ");
const sum = temps.reduce((acc, d) => acc + parseInt(d, 10), 0);
root.cpuTemp = sum / temps.length / 1000;
}
@@ -153,10 +155,9 @@ Singleton {
running: true
command: ["sh", "-c", "cat /sys/class/drm/card*/device/gpu_busy_percent"]
- stdout: SplitParser {
- splitMarker: ""
- onRead: data => {
- const percs = data.trim().split("\n");
+ stdout: StdioCollector {
+ onStreamFinished: {
+ const percs = text.trim().split("\n");
const sum = percs.reduce((acc, d) => acc + parseInt(d, 10), 0);
root.gpuPerc = sum / percs.length / 100;
}
@@ -167,13 +168,14 @@ Singleton {
id: gpuTemp
running: true
- command: ["sh", "-c", "sensors | jq -nRc '[inputs]'"]
- stdout: SplitParser {
- onRead: data => {
+ command: ["sensors"]
+ stdout: StdioCollector {
+ onStreamFinished: {
let eligible = false;
let sum = 0;
let count = 0;
- for (const line of JSON.parse(data)) {
+
+ for (const line of text.trim().split("\n")) {
if (line === "Adapter: PCI adapter")
eligible = true;
else if (line === "")
@@ -186,6 +188,7 @@ Singleton {
}
}
}
+
root.gpuTemp = count > 0 ? sum / count : 0;
}
}