From e9268415a1e83b65f8e2f61e74fe1a3ef4cef082 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sat, 12 Jul 2025 16:58:10 +1000 Subject: dashboard: use file uptime --- modules/dashboard/dash/User.qml | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/modules/dashboard/dash/User.qml b/modules/dashboard/dash/User.qml index 403885f..b224d17 100644 --- a/modules/dashboard/dash/User.qml +++ b/modules/dashboard/dash/User.qml @@ -126,26 +126,38 @@ Row { } InfoLine { + id: uptime + icon: "timer" - text: uptimeProc.uptime + text: qsTr("Loading uptime...") colour: Colours.palette.m3tertiary Timer { running: true repeat: true interval: 15000 - onTriggered: uptimeProc.running = true + onTriggered: fileUptime.reload() } - Process { - id: uptimeProc - - property string uptime - - running: true - command: ["uptime", "-p"] - stdout: StdioCollector { - onStreamFinished: uptimeProc.uptime = text.trim() + FileView { + id: fileUptime + + path: "/proc/uptime" + onLoaded: { + const up = parseInt(text().split(" ")[0] ?? 0); + + const days = Math.floor(up / 86400); + const hours = Math.floor((up % 86400) / 3600); + const minutes = Math.floor((up % 3600) / 60); + + let str = qsTr("up "); + if (days > 0) + str += `${days} day${days === 1 ? "" : "s"}`; + if (hours > 0) + str += `${str ? ", " : ""}${hours} hour${hours === 1 ? "" : "s"}`; + if (minutes > 0 || !str) + str += `${str ? ", " : ""}${minutes} minute${minutes === 1 ? "" : "s"}`; + uptime.text = str; } } } -- cgit v1.2.3-freya