noctalia-shell/Services/Time.qml
2025-08-09 18:00:57 -04:00

49 lines
1.3 KiB
QML

pragma Singleton
import Quickshell
import QtQuick
import qs.Services
Singleton {
id: root
property var date: new Date()
property string time: Settings.settings.use12HourClock ? Qt.formatDateTime(
date,
"h:mm AP") : Qt.formatDateTime(
date, "HH:mm")
property string dateString: {
let now = date
let dayName = now.toLocaleDateString(Qt.locale(), "ddd")
dayName = dayName.charAt(0).toUpperCase() + dayName.slice(1)
let day = now.getDate()
let suffix
if (day > 3 && day < 21)
suffix = 'th'
else
switch (day % 10) {
case 1:
suffix = "st"
break
case 2:
suffix = "nd"
break
case 3:
suffix = "rd"
break
default:
suffix = "th"
}
let month = now.toLocaleDateString(Qt.locale(), "MMMM")
let year = now.toLocaleDateString(Qt.locale(), "yyyy")
return `${dayName}, ` + (Settings.settings.reverseDayMonth ? `${month} ${day}${suffix} ${year}` : `${day}${suffix} ${month} ${year}`)
}
Timer {
interval: 1000
repeat: true
running: true
onTriggered: root.date = new Date()
}
}