diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-27 19:41:40 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-27 19:41:40 +0200 |
| commit | 6d24906dd041d010ce8d1d629cbec8fffc9f06c6 (patch) | |
| tree | 0e9482b2e849d7efdda8384d01a6e0ca23db73dd /docs/superpowers/specs | |
| parent | 38127fcdb57f51be31df637147c5db31bad9e10f (diff) | |
| download | cal-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')
| -rw-r--r-- | docs/superpowers/specs/2026-09-27-cal-notif-design.md | 19 |
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. |
