2.0 KiB
2.0 KiB
Why
The desktop currently has no quick, reliable way to schedule short-lived timers or wall-clock alarms from a terminal. A local command-line scheduler would make these events available from any shell while keeping their status visible in the existing Waybar and using the existing SwayNC/PipeWire desktop stack for completion alerts.
What Changes
- Add reusable Home Manager support for
timerandalarmcommands. - Persist unlimited active timers and alarms with numeric IDs.
- Support timer durations, time-only alarms, dated alarms, optional descriptions, listing, cancellation, and duplicate alarm prevention.
- Add a user-level scheduler that fires due events once, skips events missed while the computer is unavailable, and survives the terminal closing.
- Send one critical desktop notification and play a one-second PipeWire sound when an event fires.
- Add a Waybar JSON module that refreshes every second and displays the three closest active events across both event types.
- Integrate the module into the external Waybar configuration at
~/dotfiles/waybar/.config/waybar/, immediately after workspaces inmodules-left. - Exclude recurring alarms, snoozing, pause/resume, graphical management, and Waybar click actions.
Capabilities
New Capabilities
terminal-alarms-and-timers: Create, persist, inspect, cancel, schedule, and complete terminal timers and wall-clock alarms, including their Waybar status display.
Modified Capabilities
Impact
- Adds a reusable Home Manager module under
modules/home-manager/and enables it forjpporta-nixosonly. - Adds user-facing commands, persisted state under
~/.local/state, and a systemd user service. - Uses existing
jq,notify-send/SwayNC, PipeWire, and Waybar conventions; adds the freedesktop sound theme if needed for the completion sound. - Updates the separately managed Waybar config and stylesheet under
~/dotfiles/waybar/.config/waybar/. - No network services, database, external API, or system-wide daemon is introduced.