summaryrefslogtreecommitdiff
path: root/.config/quickshell/Uptime.qml
blob: 155be44a6982d8a08f4d61a469c2e0ceddd697f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
	}
}