Extract clock and tray bar widgets

This commit is contained in:
David Heinemeier Hansson
2026-05-20 19:11:00 +02:00
parent d9ec5b82f2
commit bdf7bf76cb
6 changed files with 499 additions and 507 deletions
+44
View File
@@ -0,0 +1,44 @@
import QtQuick
import Quickshell
import qs.Commons
import qs.Ui
BarWidget {
id: root
moduleName: "clock"
property bool alt: false
function setting(name, fallback) {
var value = settings ? settings[name] : undefined
return value === undefined || value === null ? fallback : value
}
function label() {
if (alt) return Qt.formatDateTime(clock.date, String(setting("formatAlt", "dd MMMM 'W'ww yyyy")))
if (bar && bar.vertical) return Qt.formatDateTime(clock.date, String(setting("verticalFormat", "HH\n—\nmm")))
return Qt.formatDateTime(clock.date, String(setting("format", "dddd HH:mm")))
}
implicitWidth: button.implicitWidth
implicitHeight: button.implicitHeight
SystemClock {
id: clock
precision: SystemClock.Minutes
}
WidgetButton {
id: button
anchors.fill: parent
bar: root.bar
text: root.label()
horizontalMargin: 8.75
verticalPadding: 8.75
onPressed: function(button) {
if (!root.bar) return
if (button === Qt.RightButton) root.bar.run("omarchy-launch-floating-terminal-with-presentation omarchy-tz-select")
else root.alt = !root.alt
}
}
}