Notification

Added in version 2.40.

class Notification(**properties: Any)

Superclasses: Object

GNotification 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 GNotification and other similar APIs is that, if supported by the desktop environment, notifications sent with GNotification 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 GNotification should be able to be started as a D-Bus service, using Application.

In order for GNotification 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 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 send_notification.

Constructors

class Notification
classmethod new(title: str) Notification

Creates a new Notification with title as its title.

After populating notification with more details, it can be sent to the desktop shell with send_notification(). Changing any properties after this call will not have any effect until resending notification.

Added in version 2.40.

Parameters:

title – the title of the notification

Methods

class Notification
add_button(label: str, detailed_action: str) None

Adds a button to notification that activates the action in detailed_action when clicked. That action must be an application-wide action (starting with “app.”). If detailed_action contains a target, the action will be activated with that target as its parameter.

See parse_detailed_name() for a description of the format for detailed_action.

Added in version 2.40.

Parameters:
  • label – label of the button

  • detailed_action – a detailed action name

add_button_with_target(label: str, action: str, target: Variant | None = None) None

Adds a button to notification that activates action when clicked. action must be an application-wide action (it must start with “app.”).

If target_format is given, it is used to collect remaining positional parameters into a Variant instance, similar to new(). action will be activated with that Variant as its parameter.

Added in version 2.40.

Parameters:
  • label – label of the button

  • action – an action name

  • target

set_body(body: str | None = None) None

Sets the body of notification to body.

Added in version 2.40.

Parameters:

body – the new body for notification, or None

set_category(category: str | None = None) None

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 category helps the notification server to select proper feedback to the user.

Standard categories are listed in the specification.

Added in version 2.70.

Parameters:

category – the category for notification, or None for no category

set_default_action(detailed_action: str) None

Sets the default action of notification to detailed_action. This action is activated when the notification is clicked on.

The action in detailed_action must be an application-wide action (it must start with “app.”). If detailed_action contains a target, the given action will be activated with that target as its parameter. See parse_detailed_name() for a description of the format for detailed_action.

When no default action is set, the application that the notification was sent on is activated.

Added in version 2.40.

Parameters:

detailed_action – a detailed action name

set_default_action_and_target(action: str, target: Variant | None = None) None

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 (it must start with “app.”).

If target_format is given, it is used to collect remaining positional parameters into a Variant instance, similar to new(). action will be activated with that Variant as its parameter.

When no default action is set, the application that the notification was sent on is activated.

Added in version 2.40.

Parameters:
  • action – an action name

  • target

set_icon(icon: Icon) None

Sets the icon of notification to icon.

Added in version 2.40.

Parameters:

icon – the icon to be shown in notification, as a Icon

set_priority(priority: NotificationPriority) None

Sets the priority of notification to priority. See NotificationPriority for possible values.

Parameters:

priority – a NotificationPriority

set_title(title: str) None

Sets the title of notification to title.

Added in version 2.40.

Parameters:

title – the new title for notification

set_urgent(urgent: bool) None

Deprecated in favor of set_priority().

Added in version 2.40.

Deprecated since version 2.42: Since 2.42, this has been deprecated in favour of set_priority().

Parameters:

urgentTrue if notification is urgent