mirror of
https://github.com/danbulant/dots-hyprland
synced 2026-05-24 12:22:09 +00:00
51 lines
1.6 KiB
QML
51 lines
1.6 KiB
QML
import "root:/modules/common"
|
|
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
pragma Singleton
|
|
pragma ComponentBehavior: Bound
|
|
|
|
Singleton {
|
|
property string time: Qt.formatDateTime(clock.date, "hh:mm")
|
|
property string date: Qt.formatDateTime(clock.date, "dddd, dd/MM")
|
|
property string day: Qt.formatDateTime(clock.date, "dd")
|
|
property string month: Qt.formatDateTime(clock.date, "MMMM")
|
|
property string year: Qt.formatDateTime(clock.date, "yyyy")
|
|
property string uptime: "0h, 0m"
|
|
|
|
SystemClock {
|
|
id: clock
|
|
precision: SystemClock.Minutes
|
|
}
|
|
|
|
Timer {
|
|
interval: 10
|
|
running: true
|
|
repeat: true
|
|
onTriggered: {
|
|
fileUptime.reload()
|
|
const textUptime = fileUptime.text()
|
|
const uptimeSeconds = Number(textUptime.split(" ")[0] ?? 0)
|
|
|
|
// Convert seconds to days, hours, and minutes
|
|
const days = Math.floor(uptimeSeconds / 86400)
|
|
const hours = Math.floor((uptimeSeconds % 86400) / 3600)
|
|
const minutes = Math.floor((uptimeSeconds % 3600) / 60)
|
|
|
|
// Build the formatted uptime string
|
|
let formatted = ""
|
|
if (days > 0) formatted += `${days}d`
|
|
if (hours > 0) formatted += `${formatted ? ", " : ""}${hours}h`
|
|
if (minutes > 0 || !formatted) formatted += `${formatted ? ", " : ""}${minutes}m`
|
|
uptime = formatted
|
|
interval = ConfigOptions.resources.updateInterval;
|
|
}
|
|
}
|
|
|
|
FileView {
|
|
id: fileUptime
|
|
|
|
path: "/proc/uptime"
|
|
}
|
|
|
|
}
|