aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/island/calendar
AgeCommit message (Collapse)AuthorFilesLines
5 daysName the project Keystone, and move its paths and namespacesDanilo M.1-1/+1
The repository had no name of its own, only the framework's. It is now Keystone, in the README, AGENTS.md, the settings window, notes commit messages, calctl's PRODID and the user page's User-Agent. Its files move off quickshell's name too: ~/.config/quickshell/greetings -> ~/.config/keystone/ ~/.config/quickshell/obs-scene-icons.json -> ~/.config/keystone/ $XDG_STATE_HOME/quickshell/desktop.json -> $XDG_STATE_HOME/keystone/ ~/.config/quickshell is Quickshell's own default config directory (a bare qs loads its shell.qml), so sharing it was a collision rather than a home. There is no fallback to the old paths: the files are moved once. The layer namespaces become keystone-*, and the Hyprland blur rules in hypr-theme are renamed to match in the same change. A running shell keeps its old namespaces until restarted. Left alone: the retired standalone mail and vm shells' namespaces, which their READMEs keep as history; Quickshell's own app id, binary and process name; and the repository directory. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 daysfix(calendar): review findings in calctl and the editorDanilo M.7-59/+170
An edit now rewrites only the fields that changed. A save with nothing changed used to rebuild the alarm, turning ACTION:AUDIO into DISPLAY and dropping ACKNOWLEDGED, re-anchor the start to the local zone, and strip SUMMARY's parameters; the test edits a foreign event unchanged and checks every one survives. get, edit and delete name the calendar the event is in. The same invite synced into two calendars has one UID, and the panel acted on whichever file came first, so editing one copy could overwrite or delete the other. A custom rule's date cannot be moved from the panel: BYDAY=MO stayed on Monday while the start moved, and the series lost the day shown. UNTIL is read back in local time, so a 22:30 series keeps its last occurrence. Files are written 0644 like vdirsyncer's. Enter in the title no longer bypasses the busy guard, which could create an event twice, and a throwing callback no longer leaks its Process. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 daysfeat(calendar): a bell on agenda rows whose event has an alarmDanilo M.1-1/+12
Checking a day's reminders meant opening each event. The bell shows when the event carries its own VALARM, preset or custom. cal-notif's per-calendar defaults are not reflected: they are its configuration, not a property of the event. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 daysfeat(island): the clock pill opens the calendar panelDanilo M.1-2/+2
A click on the pill opens the panel in its capsule, 620px wide, growing left from the gap so the status pill does not move. Focus goes into the panel so its text fields and Escape work; Escape closes the editor before the panel. The Escape hook is back(), not escape(): QML rejects a method named escape with "Illegal method name", since it shadows the global JS function, and the reload failed until it was renamed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 daysfeat(calendar): month grid beside the day's agendaDanilo M.1-0/+323
Six weeks from Monday, a dot per calendar with something that day, today and the selection marked. The agenda lists the selected day, all-day first; a click opens the event in the editor, and while the editor is open the grid picks its dates instead of the selection. Escape closes the editor before the panel. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
10 daysfeat(calendar): the event formDanilo M.1-0/+356
Dates come from the month grid beside it; times are typed or scrolled in 15-minute steps. Repeat and alarm offer the presets and show custom, unselectable, for an event carrying something richer, which the save then leaves alone. A failed save keeps the form open with calctl's line. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
10 daysfeat(calendar): the calendar serviceDanilo M.1-0/+102
Runs calctl, one Process per call so a reload and a save never collide, and drops a list that a newer one overtook. Watches the calendar directories the way the mail count watches xapian, so an edit from khal or a cron sync repaints the panel too. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
10 daysfeat(calendar): pure date logic for the panelDanilo M.2-0/+279
Month cells from Monday, which days an event covers, the day's agenda order, the grid's dots, time stepping, and the editor's draft in both directions. Days are strings and arithmetic is in UTC, so the DST change at the end of October never moves a day; the test steps across it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
10 daysfeat(calendar): calctl creates, edits and deletes eventsDanilo M.2-1/+237
Edits change only what the form owns: a custom rule, extra alarms and properties this tool does not know survive, which the test checks on an event with BYDAY, two alarms and an X- property. Writes go through a temporary file and a rename so khal, cal-notif and vdirsyncer never read half a file, and a vdirsyncer sync is started detached afterwards. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
10 daysfeat(calendar): calctl reads the vdir as JSONDanilo M.2-0/+444
The calendar list comes from khal's config, so there is no second list. Recurrence is expanded with dateutil in naive local time, which keeps a weekly 09:00 at 09:00 across the DST change; the test pins that on 26 October. A rule richer than a plain FREQ, or alarms other than one preset, read as custom, which is what lets an edit leave them alone. A file that fails to parse is skipped rather than blanking the month. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>