Desktop notifications
When one is sent: a pane becomes waiting, done or failed; a program sends a notification sequence; or isc notify TITLE [BODY] is called.
When none is sent: you're looking at the pane (it has the keyboard, in a window that's in front); the pane is muted; or the cause is the bell.
- Each pane has one notification. A new one replaces the pane's previous one, and it's removed once you've seen the pane.
- A pane can send at most three in quick succession, and earns another every second and a half. Any beyond that are dropped.
- The title is
project · pane. The pane part is the pane's name if it has one, otherwise its title, otherwise its program. The body is what the program said, or "Waiting for you", "Done", "Failed". - Text from programs is cleaned up first: one line, no control characters, limited length.
- They're sent at normal urgency, so they respect do-not-disturb.
Muting a pane. Use the mute command in the palette (it has no default key), or isc mute [PANE] [--off]. The pane's states still show, but it sends no notifications. The header shows a mute mark.
On Linux the daemon sends them over D-Bus, so they arrive even with no window open. They name the desktop entry insensical. If that entry isn't installed, the desktop may show them with no application name or icon.
Clicking one goes to the pane, restores it if it was minimized, and asks a window to come forward.
- On Wayland the window may not come to the front. A compositor only lets a window raise itself with a token that the notification service hands over, and the toolkit can't use one. The pane is selected, but the window may stay where it is.
- With no window open, clicking selects the pane, and nothing visible happens.
On macOS a window of the application posts them, not the daemon, and only from an app bundle. With the window closed, none arrive, even though the application is still running. The system asks once whether to allow them. Click one to bring the window to the front on the pane it's about. None arrive once you quit the application.
A notification always comes from the system. It's never a message inside the window. There's no count on the application's icon, no way to mute a whole project, and no switch for each state.