angelv.clock ============ This work is based on Omarchy. It is a derivative work of the Omarchy shell's built-in clock widget (omarchy.clock), used under the MIT License. The upstream copyright notice is retained in LICENSE alongside the copyright covering the modifications made here. Specifically, it began as a byte-for-byte clone of the Omarchy shell's first-party clock bar widget (`omarchy.clock`), created with: omarchy plugin clone omarchy.clock Upstream project : Omarchy — https://github.com/basecamp/omarchy Upstream author : David Heinemeier Hansson / Basecamp Upstream license : MIT The files BarWidget.qml, Model.js and Panel.qml are derived from that widget and retain substantial portions of the original code. See LICENSE for the full terms and the retained copyright notice. Changes made in this derivative: * Added a time-zone converter section beneath the calendar: per-zone sun/moon glyphs, a 24-hour day/night rail, and a magnetic scrubber. * Added read-only calendar sync (see the second derivation below). * Added a settings window, so feeds, zones and every other option are edited there rather than in shell.json by hand. Second derivation: sync-calendar-omarchy ---------------------------------------- The calendar sync added in this plugin is derived from sync-calendar-omarchy, used under the MIT License. Upstream project : sync-calendar-omarchy https://github.com/promaaa/sync-calendar-omarchy Upstream author : promaaa Upstream license : MIT `fetch-events.py` retains substantial portions of that project's `fetch-events.py`: the iCalendar reader (line unfolding, text unescaping, TZID resolution and datetime parsing), the RRULE expanders for daily, weekly, monthly and yearly recurrences, multi-day event expansion, the meeting-URL detection, and the feed fetcher. Removed from that file in this derivative: the Google Calendar API and its OAuth helper, all JMAP support, the local offline calendar, every event create and delete path, and the machine-translation of event titles. What remains is read-only .ics / webcal fetching, which is all that Google's "secret address in iCal format" and Apple's published calendar links need. In Model.js, `parseEventsFile`, `formatSelectedDateLabel` and `formatAgendaMarkdown` are adapted from that project's Model.js. Omarchy is a trademark and project of its authors. This plugin is an independent, unofficial derivative and is not endorsed by or affiliated with the Omarchy project or Basecamp.