// The centre clock, kept in the same place and the same format GNOME had it: // weekday, date, 12-hour time with seconds. Clicking it opens the calendar, // exactly like GNOME's date menu. import Quickshell import QtQuick import qs.config import qs.services import qs.widgets Pill { id: root // Seconds are only ticked when they are actually shown — a per-second wake // for a clock that displays minutes would be pure waste. SystemClock { id: clock precision: Settings.showSeconds ? SystemClock.Seconds : SystemClock.Minutes } readonly property string format: { const date = Settings.showWeekday ? "ddd MMM d " : "MMM d "; const time = Settings.use24Hour ? (Settings.showSeconds ? "HH:mm:ss" : "HH:mm") : (Settings.showSeconds ? "h:mm:ss AP" : "h:mm AP"); return date + time; } onActivated: ShellState.toggleDateMenu("agenda") Text { anchors.verticalCenter: parent.verticalCenter text: Qt.formatDateTime(clock.date, root.format) font.family: Theme.fontFamily // Seconds tick once a second in the centre of the bar; without tabular // figures the whole clock shifts sideways on every digit change. font.features: Theme.tabularFigures font.pixelSize: Theme.fontSize color: Theme.fg } }