aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/island/README.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-13 10:35:35 +0200
committerDanilo M. <danix@danix.xyz>2026-10-13 10:35:35 +0200
commit901a88e26b91eb104aa9a837372d35db24f7b6bf (patch)
tree72998cd4c34a7fe6d1c188058f09dc0531b515a0 /desktop/island/README.md
parenta4b6d435848596f4c5f4fd4957275cc1b6452921 (diff)
downloadquickshell-901a88e26b91eb104aa9a837372d35db24f7b6bf.tar.gz
quickshell-901a88e26b91eb104aa9a837372d35db24f7b6bf.zip
docs: the calendar panel and calctl
The island README gains the panel. AGENTS.md records why calctl reads the vdir itself, the local-time recurrence rule, the system Python it needs, and two traps the build hit: a QML method named escape fails to load, and a pill expanding for any panel grew beside the calendar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/island/README.md')
-rw-r--r--desktop/island/README.md19
1 files changed, 18 insertions, 1 deletions
diff --git a/desktop/island/README.md b/desktop/island/README.md
index 8f70506..4d21e6e 100644
--- a/desktop/island/README.md
+++ b/desktop/island/README.md
@@ -42,7 +42,7 @@ reports its initial state as events. The desktop icons come from
`Wed 07/10 15:07`, then one dot per VM that is running, paused, suspended,
saved or crashed (a plainly shut-off VM gets none). States come from the
drawer's `Virsh` service, whose lifecycle event stream runs whether the drawer
-is open or not.
+is open or not. Click opens the calendar panel.
## Status pill
@@ -81,6 +81,23 @@ they change and keeping keys it does not know. A tile added to the code
later starts hidden. Pure helpers in `Controls.js`, tested with
`node island/test_controls.js`.
+## Calendar panel
+
+The clock pill opens a month grid beside the selected day's agenda. Dots
+are one per calendar with something that day, in the khal colours; a bell on
+an agenda row means the event carries its own alarm. A click on an event, or
+"+ New event", opens the editor; while it is open the grid picks the date
+(shift-click for the end). Repeat is none, daily, weekly, monthly or yearly
+with an optional until-date; the alarm is none, 10m, 1h or 1d. An event with
+something richer shows custom and an edit leaves it alone. Edit and delete
+act on the whole series. Escape closes the editor, then the panel.
+
+Everything goes through `calendar/calctl`, which reads the calendar list
+from khal's config, writes the `.ics` files atomically and starts a
+`vdirsyncer sync` after each write. The panel watches the calendar
+directories, so khal edits and cron syncs show up live. Tests:
+`/usr/bin/python3 calendar/test_calctl.py`, `node calendar/test_cal.js`.
+
## Privacy
`privacy.sh` prints `mic cam loc scr`, each 0 or 1, and `Privacy.qml` polls it