Components

sysc-notify

Resolve notification service ownership and inspect notification delivery.

sysc-notify owns org.freedesktop.Notifications on the session bus. It sends notification state to sysc-shell, which draws popups and history.

Source: default-branch commit 9b6e374d · SYSC v0.1.3 pin: sysc-notify v0.1.1. Check the pinned release notes when you need behavior specific to that version.

Three sysc-shell notification toasts. Fixture data.

One notification owner

Only one daemon can own org.freedesktop.Notifications. If mako, dunst, swaync or another provider already owns the name, notifications may continue going to that provider. SYSC's conflict flow can stop and disable a detected user service and record the change for uninstall recovery. Review conflict handling before handing it over.

The suite runs sysc-notify as a systemd user service. Check the service, bus owner and logs without changing session state:

systemctl --user --no-pager status sysc-notify.service
busctl --user status org.freedesktop.Notifications
journalctl --user -u sysc-notify.service -b --no-pager

The bus status should identify the process that owns the notification name. If that process is not sysc-notify, resolve the conflict before troubleshooting the shell panel.

Delivery and limits

The daemon connects to sysc-shell at $XDG_RUNTIME_DIR/sysc-notify/presenter.v1.sock. The current source implements notification spec 1.3 actions and replacement IDs, image hints, urgency and inline replies. It keeps up to 100 closed notifications for seven days in $XDG_STATE_HOME/sysc-notify/history.json, falling back to ~/.local/state/sysc-notify/history.json when XDG_STATE_HOME is unset (history store). Transient notifications and notifications with the boolean x-sysc-private hint set to true stay out of history (hint handling).

The v0.1.1 protocol API documents the suite-pinned package. For socket ownership and service handoff, see the service integration guide.

Follow a notification

Applications send notifications to the session bus name org.freedesktop.Notifications. sysc-notify owns that name and forwards presenter state over its private Unix socket to sysc-shell. The shell draws the popup and history panel. A running shell cannot receive events from a daemon that lost the bus name, and a running daemon cannot draw a popup when its presenter is absent.

Start with the bus owner and unit status when delivery stops:

busctl --user status org.freedesktop.Notifications
systemctl --user --no-pager status sysc-notify.service
journalctl --user -u sysc-notify.service -b --no-pager

If another notification service owns the D-Bus name, stop the conflict through the recorded installer choice or follow the conflict recovery guide. Two daemons cannot own the same bus name at once.

The current source retains at most 100 closed notifications for seven days. Transient notifications and notifications with x-sysc-private=true stay out of saved history. The history file can contain notification text, application names and image data; treat it as user data when you back up or inspect it.

Source code · Report an issue