Add a calendar popup to the clock

Clicking the clock reveals a month grid with ISO week numbers, a year
progress meter, and month stepping. Right click walks the common label
formats and writes the chosen one back to shell.json, so the bar shows
what the config stores. The week start toggles from the grid's "W"
heading and persists as weekStartDay, defaulting to the locale's own
first day.

Rich popup widgets live in their own plugin directories, so the clock
moves out of bar/widgets/ into panels/clock/. The id is unchanged, so
existing layouts and centerAnchor keep working.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
David Heinemeier Hansson
2026-07-26 19:10:06 -07:00
co-authored by Claude Opus 5
parent c2610c3788
commit e2d655d265
9 changed files with 1113 additions and 98 deletions
+2 -1
View File
@@ -22,6 +22,7 @@ User-installed plugins live alongside these conceptually but on disk under
| Notifications | `omarchy.notifications` | `service` | `notifications/Service.qml` |
| Audio | `omarchy.audio` | `bar-widget` | `panels/audio/Panel.qml` |
| Bluetooth | `omarchy.bluetooth` | `bar-widget` | `panels/bluetooth/Panel.qml` |
| Clock | `omarchy.clock` | `bar-widget` | `panels/clock/BarWidget.qml` |
| Monitor | `omarchy.monitor` | `bar-widget` | `panels/monitor/Panel.qml` |
| Network | `omarchy.network` | `bar-widget` | `panels/network/Panel.qml` |
| Power | `omarchy.power` | `bar-widget` | `panels/power/Panel.qml` |
@@ -37,7 +38,7 @@ User-installed plugins live alongside these conceptually but on disk under
| Polkit agent | `omarchy.polkit` | `service` | `polkit/PolkitAgent.qml` |
First-party bar-only widgets also carry manifests next to their QML files,
e.g. `bar/widgets/Clock.manifest.json`. Rich popup widgets live in their
e.g. `bar/widgets/Workspaces.manifest.json`. Rich popup widgets live in their
own plugin directories, each with its own `manifest.json`.
## Bar