diff options
Diffstat (limited to '.config/quickshell/Services/Uptime.qml')
| -rw-r--r-- | .config/quickshell/Services/Uptime.qml | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/.config/quickshell/Services/Uptime.qml b/.config/quickshell/Services/Uptime.qml new file mode 100644 index 0000000..155be44 --- /dev/null +++ b/.config/quickshell/Services/Uptime.qml @@ -0,0 +1,63 @@ +pragma Singleton + +import Quickshell +import Quickshell.Io +import QtQuick + +Singleton { + id: root + property string uptime + + Process { + id: uptimeProc + command: ["uptime"] + running: true + stdout: StdioCollector { + onStreamFinished: { + var t = this.text.trim().split(" up ")[1] + + var days = 0 + if (t.includes("day")) { + var [d, t] = t.split(" day") + days = parseInt(d.trim()) + t = t.split(", ")[1] + } + t = t.split(", ")[0] + + var hours = 0 + var minutes = 0 + + if (t.includes("min")) { + minutes = parseInt(t.split(' min')[0]) + } else { + var [h, m] = t.split(":") + hours = parseInt(h.trim()) + minutes = parseInt(m.trim()) + } + + var uptime = "Up "; + if (days > 0) { + uptime += days + " day" + if (days != 1) uptime += "s" + uptime += ", " + } + if (hours > 0) { + uptime += hours + " hour" + if (hours != 1) uptime += "s" + uptime += ", " + } + uptime += minutes + " minute" + if (minutes != 1) uptime += "s" + + root.uptime = uptime + } + } + } + + Timer { + interval: 60000 + running: true + repeat: true + onTriggered: uptimeProc.running = true + } +} |
