gio.notification

Module for [Notification] class

Types 3

[gio.notification.Notification] is a mechanism for creating a notification to be shown to the user — typically as a pop-up notification presented by the desktop environment shell.

The key difference between [gio.notification.Notification] and other similar APIs is that, if supported by the desktop environment, notifications sent with [gio.notification.Notification] will persist after the application has exited, and even across system reboots.

Since the user may click on a notification while the application is not running, applications using [gio.notification.Notification] should be able to be started as a D-Bus service, using [gio.application.Application].

In order for [gio.notification.Notification] to work, the application must have installed a .desktop file. For example:

[Desktop Entry]
Name=Test Application
Comment=Description of what Test Application does
Exec=gnome-test-application
Icon=org.gnome.TestApplication
Terminal=false
Type=Application
Categories=GNOME;GTK;TestApplication Category;
StartupNotify=true
DBusActivatable=true
X-GNOME-UsesNotifications=true

The X-GNOME-UsesNotifications key indicates to GNOME Control Center that this application uses notifications, so it can be listed in the Control Center’s ‘Notifications’ panel.

The .desktop file must be named as org.gnome.TestApplication.desktop, where org.gnome.TestApplication is the ID passed to [gio.application.Application.new_].

User interaction with a notification (either the default action, or buttons) must be associated with actions on the application (ie: app. actions). It is not possible to route user interaction through the notification itself, because the object will not exist if the application is autostarted as a result of a notification being clicked.

A notification can be sent with [gio.application.Application.sendNotification].

Methods
GType _gType() @property
Notification self()Returns `this`, for use in `with` statements.
NotificationGidBuilder builder()Get builder for [gio.notification.Notification] Returns: New builder object
void addButton(string label, string detailedAction)Adds a button to notification that activates the action in detailedaction when clicked. That action must be an application-wide action (starting with "app."). If detailedaction contains a target, t...
void addButtonWithTarget(string label, string action, glib.variant.Variant target = null)Adds a button to notification that activates action when clicked. action must be an application-wide action (it must start with "app.").
void setBody(string body_ = null)Sets the body of notification to body.
void setCategory(string category = null)Sets the type of notification to category. Categories have a main type like `email`, `im` or `device` and can have a detail separated by a `.`, e.g. `im.received` or `email.arrived`. Setting the ca...
void setDefaultAction(string detailedAction)Sets the default action of notification to detailed_action. This action is activated when the notification is clicked on.
void setDefaultActionAndTarget(string action, glib.variant.Variant target = null)Sets the default action of notification to action. This action is activated when the notification is clicked on. It must be an application-wide action (start with "app.").
void setIcon(gio.icon.Icon icon)Sets the icon of notification to icon.
void setPriority(gio.types.NotificationPriority priority)Sets the priority of notification to priority. See #GNotificationPriority for possible values.
void setTitle(string title)Sets the title of notification to title.
void setUrgent(bool urgent)Deprecated in favor of [gio.notification.Notification.setPriority].
Constructors
this(void * ptr, Flag!"Take" take)
this(string title)Creates a new #GNotification with title as its title.

Fluent builder for [gio.notification.Notification]