- QML 62.7%
- JavaScript 37.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
formatEventTime used getUTCHours/getUTCMinutes, so every displayed
event time (agenda rows, and the {nextTime} bar token) was off by the
local UTC offset for any non-UTC user. countdownLabel already parsed
the same event.start as a true instant, so the two could disagree on
the same row. Caught during live re-review verification of the
final-review fix wave; the existing test suite couldn't see it since
it pins TZ=UTC process-wide, where local and UTC hours are identical.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
||
| docs/superpowers/plans | ||
| test | ||
| .gitignore | ||
| Agenda.qml | ||
| BarWidget.qml | ||
| CalendarStore.qml | ||
| EventRow.qml | ||
| manifest.json | ||
| Model.js | ||
| Panel.qml | ||
| README.md | ||
| WorldClocks.qml | ||
calagenda-plugin
An Omarchy 4 bar plugin: a fork of the stock omarchy.clock with a real
calendar agenda, day dots, day selection, meeting-join buttons, and world
clocks below the month grid.
Requires calagenda — a small CLI that fetches and expands calendar events into JSON. Without it installed, the plugin still works: month grid, rails, and world clocks all function; only the agenda section shows an install hint.
Install
omarchy plugin add https://git.straub.dev/erik/calagenda-plugin.git
omarchy plugin enable erik.calagenda center
Then install and configure calagenda per
its README — the short version:
pacman -S calagenda # after adding the Forgejo Arch registry, see calagenda's README
$EDITOR ~/.config/calagenda/config.toml
systemctl --user enable --now calagenda-sync.timer
Settings
Set via omarchy bar set erik.calagenda <key> <value> [--json], or by
hand-editing this plugin's entry in ~/.config/omarchy/shell.json:
| Key | Default | Meaning |
|---|---|---|
format / formatAlt |
inherited from the clock | bar label format; right-click cycles through built-ins plus {next}, {nextTime}, {nextIn}, {count} |
agendaDays |
7 |
how many upcoming days the agenda covers |
maxAgendaEvents |
12 |
cap on total agenda rows before the list truncates |
showDayDots |
true |
small colored dots on grid days with events |
showJoinButtons |
true |
one-click join for detected Meet/Zoom/Teams/Webex/Jitsi/Whereby links |
worldClocks |
[] |
e.g. [{"label":"Work","tz":"America/New_York"}] |
Local development
The shell's plugin watcher may not follow a symlinked plugin directory for
hot-reload (see this repo's implementation plan, Task 1, Step 6) — if edits
don't show up live, run omarchy-shell shell rescanPlugins after saving.
Note that rescanPlugins alone is not reliable for verifying changes to an
already-open popup's QML content — for that, restart the shell with
omarchy-restart-shell instead.
Run the JS unit tests: node --test test/model.test.js.