### Method

# Xdp Portal add_notification

#### Declaration [src]

    void
    xdp_portal_add_notification (
      XdpPortal* portal,
      const char* id,
      GVariant* notification,
      XdpNotificationFlags flags,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer data
    )

#### Description [src]

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 `g_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 `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 `xdp_portal_remove_notification()`.

This method completes asynchronously. Use `xdp_portal_add_notification_finish()` inside the `GAsyncReadyCallback` to obtain the result of the operation.

#### Parameters

`id`

  Type: `const char*`

  Unique ID for the notification.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`notification`

  Type: `GVariant`

  A `GVariant` dictionary with the content of the notification.

  The data is owned by the caller of the method.

`flags`

  Type: `XdpNotificationFlags`

  Options for this call.

`cancellable`

  Type: `GCancellable`

  Optional `GCancellable`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`callback`

  Type: `GAsyncReadyCallback`

  A callback to call when the request is done.

  The argument can be `NULL`.

`data`

  Type: `gpointer`

  Data to pass to `callback`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.