add_notification


Description:

public async bool add_notification (string id, Variant notification, NotificationFlags flags, Cancellable? cancellable) throws Error

Sends a desktop notification.

The following keys may be present in notification:

  • title `s`: a user-visible string to display as title
  • body `s`: a user-visible string to display as body
  • markup-body `s`: a user-visible string to display as body with support for markup
  • icon `v`: a serialized icon (in the format produced by [method@Gio.Icon.serialize] for class@Gio.ThemedIcon, class@Gio.FileIcon and class@Gio.BytesIcon)
  • sound `v`: a serialized sound
  • priority `s`: "low", "normal", "high" or "urgent"
  • default-action `s`: name of an action that will be activated when the user clicks on the notification
  • default-action-target `v`: target parameter to send along when activating the default action.
  • buttons `aa{sv}`: array of serialized buttons
  • display-hint `as`: An array of display hints.
  • category `s`: A category for this notification. See the spec for supported categories

The serialized sound consists of a `s` or `sv`: - default : Play the default sound for the notification. - silent : Don't ever play a sound for the notification. - file `s`: A path to a sound file. - bytes `ay`: An array of bytes.

The supported sound formats are ogg/opus, ogg/vorbis and wav/pcm.

Each serialized button is a dictionary with the following supported keys:

  • label `s`: user-visible label for the button. Mandatory without a purpose.
  • action `s`: name of an action that will be activated when the user clicks on the button. Mandatory
  • purpose `s`: information used by the server to style the button specially.
  • target `v`: target parameter to send along when activating the button

Actions with a prefix of "app." are assumed to be exported by the application and will be activated via the org.freedesktop.Application interface, others are activated by emitting the [signal@Portal:XdpPortal:notification-action-invoked] signal.

It is the callers responsibility to ensure that the ID is unique among all notifications.

To withdraw a notification, use [method@Portal.remove_notification].

Parameters:

this

a [class@Portal]

id

unique ID for the notification

notification

a [struct@GLib.Variant] dictionary with the content of the notification

flags

options for this call

cancellable

optional [class@Gio.Cancellable]

callback

a callback to call when the request is done

data

data to pass to callback