blob: 91fb75841d38f58632fba62adcadd733183681e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# notifications
The balloon renderer for the notification daemon (`notifyd`, a separate repo).
It reads the daemon's published files through the `Notify` singleton and draws
one balloon per live notification, bottom-right of `DP-1`.
## Suppression lives here
The daemon does not know about DND or snooze. This component withholds
balloons: `status.dnd` suppresses low and normal, `notifyd/snooze` suppresses
everything. The drawer's reserved space lists every live notification anyway.
## The files are the interface
$XDG_RUNTIME_DIR/notifyd/queue.json the live queue
$XDG_RUNTIME_DIR/notifyd/history.json the ring of 20
$XDG_RUNTIME_DIR/notifyd/drawer "1" while the drawer holds the space
$XDG_RUNTIME_DIR/notifyd/snooze an epoch second while snoozing
`notifyctl` and `notify-snooze.sh` are in `~/bin`; without them the balloons
draw but close and actions do nothing.
## Blur
Hyprland blurs a layer surface only when a rule names its namespace. This
component sets `quickshell-notifications`; the rule is in
`~/.config/hypr/sections/decorations.lua`.
## History rows
The spec calls history rows closable individually. `notifyctl` has no per-id
history delete, only `clear-history`, so the history page ships a clear all
and inert rows. The daemon verb and the renderer row it needs are tracked in
the `notifyd` repo's `TODO.md`; when that ships, the row's X is wired to
`notifyctl history-remove`.
|