diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-27 19:49:00 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-27 19:49:00 +0200 |
| commit | 2dd08a66fe9e443564fe9dc3ee8cedda1c8a7425 (patch) | |
| tree | 4d1f817fbc97c90cd799949794307db8c750cfd5 /docs/superpowers/specs | |
| parent | 6d24906dd041d010ce8d1d629cbec8fffc9f06c6 (diff) | |
| download | cal-notif-2dd08a66fe9e443564fe9dc3ee8cedda1c8a7425.tar.gz cal-notif-2dd08a66fe9e443564fe9dc3ee8cedda1c8a7425.zip | |
Add implementation plan, clarify offset lists and calendar names in spec
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/superpowers/specs')
| -rw-r--r-- | docs/superpowers/specs/2026-09-27-cal-notif-design.md | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/docs/superpowers/specs/2026-09-27-cal-notif-design.md b/docs/superpowers/specs/2026-09-27-cal-notif-design.md index 3a495b3..4d02f90 100644 --- a/docs/superpowers/specs/2026-09-27-cal-notif-design.md +++ b/docs/superpowers/specs/2026-09-27-cal-notif-design.md @@ -41,6 +41,8 @@ missing file works (VALARMs only, voice on). ```toml calendars_dir = "~/.local/share/calendars" # vdirsyncer filesystem storage +# A calendar's name is its `displayname` file (vdirsyncer metadata), else +# its directory name. [defaults] keys and the picker use that name. snooze = "5m" rofi_theme = "~/.config/rofi/udt/list.rasi" late = "10m" # deliver alarms missed by at most this much @@ -70,7 +72,9 @@ config and its comments. "other-uid@example.org" = [] # silenced ``` -Durations are strings of `<n>d`, `<n>h`, `<n>m` parts, e.g. `"1d 2h 15m"`. +Durations are strings of `<n>d`, `<n>h`, `<n>m` parts, e.g. `"1d 2h 15m"` +(one offset of 26h15m). Several offsets are a list in TOML, or +comma-separated in the picker (`1d, 1h` is two alarms). A calendar in `[defaults]` may also set `voice = false` via a table form (`birthdays = { offsets = ["1d"], voice = false }`). @@ -149,7 +153,7 @@ theme path is a config key (`rofi_theme`) defaulting to that file. 1. rofi lists occurrences in the next 30 days: `dd.mm HH:MM · calendar · summary · [current offsets]`. 2. Second rofi menu for the chosen event, with the event's summary and time - in `-mesg`: presets `10m`, `30m`, `1h`, `1d`, `1d 1h`, `none` (silence), + in `-mesg`: presets `10m`, `30m`, `1h`, `1d`, `1d, 1h`, `none` (silence), `reset` (drop override). Free text is accepted and parsed as durations; invalid input re-prompts with the error shown in `-mesg`. rofi exits non-zero on Escape: treated as cancel, never as an error. |
