feat(desktop): add mako notifications (task 0025) #17

Merged
alexion merged 1 commits from task-0025-mako-notifications into main 2026-07-22 18:22:18 -04:00
Owner

Task: .claude/tasks/0025-mako-notifications.md

Summary

Adds a mako notification daemon module to the desktop group, enabled by the aggregator.

  • modules/desktop/mako.nix enables services.mako through home-manager, added to modules/desktop/desktop.nix.
  • Toasts auto-dismiss into history after five seconds (default-timeout=5000); mako's own default of 0 would leave them on screen forever.
  • A do-not-disturb mode ([mode=dnd] with invisible=true) hides toasts while still recording them to history, so notifications missed during do-not-disturb stay retrievable.
  • Super+N recalls the last notification via makoctl restore, keyboard-only like the rest of the session.
  • Colors and the popup font come from Stylix's mako target, so the module sets only behaviour.

The bar-side do-not-disturb toggle (custom/dnd, calling makoctl mode -t dnd) and MPRIS media controls already live in waybar.nix from task 0024, so this task adds only the daemon. The mode name dnd matches on both sides. mako renders toasts as a layer-shell overlay with no tiled window, so no Waybar window-rewrite icon mapping applies.

Deviation: a Super+Shift+N dismiss-all binding was drafted alongside the recall bind but dropped as unrequested scope — the acceptance criteria call for history recall, which restore alone serves.

Review

Risk

Overall: Low

  • Blast radius: Low — new self-contained module plus one mkDefault enable line, no changes to existing callers.
  • Reversibility: Low — additive files/options, trivial to revert with no migration or deletion.
  • Test coverage: Low — untested, but it is declarative config with no test surface expected here.
  • Sensitive domain: Low — notification daemon behaviour and keybinds, no auth, permissions, or data.
  • Size & complexity: Low — ~45 lines, flat declarative settings, no control flow.
  • Runtime criticality: Low — desktop convenience tooling, not a production hot path.

Standards & Spec findings

No unaddressed findings. The review raised three, all fixed in this diff before commit: a semicolon in a comment (recast into two sentences), a comment narrating the bar's use of the mode name (reworded to state the local reason), and the unrequested dismiss --all keybind (dropped).

— Claude

Task: `.claude/tasks/0025-mako-notifications.md` ## Summary Adds a mako notification daemon module to the desktop group, enabled by the aggregator. - `modules/desktop/mako.nix` enables `services.mako` through home-manager, added to `modules/desktop/desktop.nix`. - Toasts auto-dismiss into history after five seconds (`default-timeout=5000`); mako's own default of 0 would leave them on screen forever. - A do-not-disturb mode (`[mode=dnd]` with `invisible=true`) hides toasts while still recording them to history, so notifications missed during do-not-disturb stay retrievable. - `Super+N` recalls the last notification via `makoctl restore`, keyboard-only like the rest of the session. - Colors and the popup font come from Stylix's mako target, so the module sets only behaviour. The bar-side do-not-disturb toggle (`custom/dnd`, calling `makoctl mode -t dnd`) and MPRIS media controls already live in `waybar.nix` from task 0024, so this task adds only the daemon. The mode name `dnd` matches on both sides. mako renders toasts as a layer-shell overlay with no tiled window, so no Waybar `window-rewrite` icon mapping applies. **Deviation:** a `Super+Shift+N` dismiss-all binding was drafted alongside the recall bind but dropped as unrequested scope — the acceptance criteria call for history recall, which `restore` alone serves. ## Review ### Risk **Overall: Low** - Blast radius: Low — new self-contained module plus one `mkDefault` enable line, no changes to existing callers. - Reversibility: Low — additive files/options, trivial to revert with no migration or deletion. - Test coverage: Low — untested, but it is declarative config with no test surface expected here. - Sensitive domain: Low — notification daemon behaviour and keybinds, no auth, permissions, or data. - Size & complexity: Low — ~45 lines, flat declarative settings, no control flow. - Runtime criticality: Low — desktop convenience tooling, not a production hot path. ### Standards & Spec findings No unaddressed findings. The review raised three, all fixed in this diff before commit: a semicolon in a comment (recast into two sentences), a comment narrating the bar's use of the mode name (reworded to state the local reason), and the unrequested `dismiss --all` keybind (dropped). — Claude
alexion added 1 commit 2026-07-22 17:16:10 -04:00
Add a mako notification daemon module to the desktop group, enabled by
the aggregator. Toasts auto-dismiss into history after five seconds, a
do-not-disturb mode ([mode=dnd] invisible=true) suppresses display while
still recording to history, and Super+N recalls the last notification
via makoctl restore. Colors and the popup font come from Stylix's mako
target. The bar-side do-not-disturb toggle and media controls already
live in waybar.nix, so this task adds only the daemon.
alexion merged commit 900cb6b8e8 into main 2026-07-22 18:22:18 -04:00
alexion deleted branch task-0025-mako-notifications 2026-07-22 18:22:18 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alexion/dotfiles#17