aboutsummaryrefslogtreecommitdiffstats

notifyd

A freedesktop notification daemon for this desktop, replacing dunst.

The daemon owns org.freedesktop.Notifications and holds the state. It publishes the live queue and the history ring as JSON under $XDG_RUNTIME_DIR/notifyd/ for a quickshell renderer to draw, and notifyctl is the only thing that talks back over D-Bus.

go build ./...

The design and the exact file contract are in the quickshell repo, at docs/superpowers/specs/2026-09-15-notification-daemon-design.md.

Install and handover

Build and install the two binaries and the script, beside the statusctl CLI:

go build -o ~/bin/notifyd ./cmd/notifyd
go build -o ~/bin/notifyctl ./cmd/notifyctl
install -m 755 scripts/notify-snooze.sh ~/bin/notify-snooze.sh

dunst is not removed until this proves itself. To switch:

  1. Stop dunst (pkill -x dunst or its service) so the bus name is free.
  2. Add hl.exec_cmd("notifyd") to ~/.config/hypr/sections/autostart.lua, beside the quickshell lines.
  3. Change rofipass's one dunstctl close-all to notifyctl close-all.
  4. Start notifyd and send a test notification.

The renderer that draws the balloons is a separate plan; until it ships the queue is visible through notifyctl list.

License

GPLv2 only. See LICENSE.

Development Approach

This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback.

All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions.

The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability.