// The center 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") // Right-click opens the settings that govern this widget. Timezone and clock format live on Date & Time. The // format toggles are mirrored on Appearance, but someone right-clicking a // clock is far more often after the time itself than its typography. onSecondaryActivated: ShellState.openSettings("datetime") Text { anchors.verticalCenter: parent.verticalCenter text: Qt.formatDateTime(clock.date, root.format) font.family: Theme.fontFamily // Seconds tick once a second in the center 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.barFg } }