aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/specs/2026-09-27-cal-notif-design.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-27 19:41:40 +0200
committerDanilo M. <danix@danix.xyz>2026-09-27 19:41:40 +0200
commit6d24906dd041d010ce8d1d629cbec8fffc9f06c6 (patch)
tree0e9482b2e849d7efdda8384d01a6e0ca23db73dd /docs/superpowers/specs/2026-09-27-cal-notif-design.md
parent38127fcdb57f51be31df637147c5db31bad9e10f (diff)
downloadcal-notif-6d24906dd041d010ce8d1d629cbec8fffc9f06c6.tar.gz
cal-notif-6d24906dd041d010ce8d1d629cbec8fffc9f06c6.zip
Spec: rofi menus follow udt theming
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/superpowers/specs/2026-09-27-cal-notif-design.md')
-rw-r--r--docs/superpowers/specs/2026-09-27-cal-notif-design.md19
1 files changed, 15 insertions, 4 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 53138d6..3a495b3 100644
--- a/docs/superpowers/specs/2026-09-27-cal-notif-design.md
+++ b/docs/superpowers/specs/2026-09-27-cal-notif-design.md
@@ -42,6 +42,7 @@ missing file works (VALARMs only, voice on).
```toml
calendars_dir = "~/.local/share/calendars" # vdirsyncer filesystem storage
snooze = "5m"
+rofi_theme = "~/.config/rofi/udt/list.rasi"
late = "10m" # deliver alarms missed by at most this much
[defaults] # per calendar directory name, only for events with no VALARM
@@ -137,11 +138,21 @@ vectors, synthesizes the text and pipes 16-bit mono PCM to
## Picker (`pick`)
-1. rofi `-dmenu` lists occurrences in the next 30 days:
+Both menus follow the unified-desktop-theme (udt) rofi theming: every call
+is `rofi -dmenu -i -theme ~/.config/rofi/udt/list.rasi`, the same layout
+rofipass uses. `list.rasi` is the udt layout that keeps both the inputbar
+(needed to type free-text durations) and the `message` widget (needed for
+`-mesg`); `menu.rasi` has neither. No colors or layout are set by
+cal-notif itself, so a udt scheme switch applies with no change here. The
+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: presets `10m`, `30m`, `1h`, `1d`,
- `1d 1h`, `none` (silence), `reset` (drop override). Free text is accepted
- and parsed as durations; invalid input shows a rofi error and re-prompts.
+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),
+ `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.
3. `overrides.toml` is rewritten whole (flat `"uid" = [..]` lines, trivial
to emit without a TOML writer) via a temp file and rename. The daemon
picks it up on its next tick through the mtime check.