GNOME Goal: Notification Sources
Guidelines
For https://live.gnome.org/Design/SystemSettings/Notifications, we want to be able to filter notifications by application. This will give users more fine-grained control over notifications, compared to the current all-or-nothing switch, and will improve the user experience with notifications in GNOME.
To implement this filtering, we need to have a way to determine which application sent a notification. The Notification spec defines a desktop-entry hint for this purpose. Unfortunately, this hint is almost unused.
In addition to that, we need a way to know that the application is capable of sending notifications before that's ever done, so applications need to expose the X-GNOME-UsesNotifications key in their desktop files.
This goal affects all applications that send notifications with libnotify or by calling the org.freedesktop.Notifications API directly. |
To fix an application, call
notify_notification_set_hint (n, "desktop-entry", g_variant_new_string (desktop_id));
for each NotifyNotification, before the notify_notification_show() call. Here, desktop_id should be the basename of the applications desktop file. E.g. rhythmbox installs /usr/share/applications/rhythmbox.desktop, so the desktop_id should be "rhythmbox".
Then, add
X-GNOME-UsesNotifications=true
to the same desktop file that was referred to in the set_hint_string() call above.
Comments before approval
Add your comments to this goal proposal here |
Status of this goal
Tip: If you choose to work on a module, create the bug report on the GNOME bugzilla for the relevant module, and make it block bug #690985. This way people will know someone already works on it, and won't duplicate the work you're doing. |
State |
Markup |
todo |
<: #ff8080> todo |
patch |
<: #ffcc50> [[GnomeBug:xxxxx|patch]] |
done |
<: #80ff80> [[GnomeBug:xxxxx|done]] |
not needed |
<: #80ff80> not needed |
Above are the states and corresponding markup to update the modules state table below.
Tarball |
Status |
|
core |
||
at-spi2-core |
not needed |
|
at-spi2-atk |
not needed |
|
dconf |
not needed |
|
evolution-data-server |
not needed |
|
glib-networking |
not needed |
|
gnome-bluetooth |
not needed |
|
gnome-online-accounts |
||
gnome-control-center |
not needed |
|
gnome-desktop |
not needed |
|
gnome-icon-theme |
not needed |
|
gnome-icon-theme-extras |
not needed |
|
gnome-icon-theme-symbolic |
not needed |
|
gnome-keyring |
not needed |
|
gnome-menus |
not needed |
|
gnome-packagekit |
||
gnome-power-manager |
not needed |
|
gnome-screensaver |
not needed |
|
gnome-session |
not needed |
|
gnome-settings-daemon |
||
gnome-shell |
not needed |
|
gnome-themes-standard |
not needed |
|
gsettings-desktop-schemas |
not needed |
|
gvfs |
not needed |
|
mousetweaks |
not needed |
|
mutter |
not needed |
|
network-manager-applet |
||
pulseaudio |
not needed |
|
telepathy-mission-control |
to do |
may need special-casing in gnome-shell |
core-utilities |
||
baobab |
not needed |
|
brasero |
||
empathy |
||
eog |
not needed |
|
epiphany |
||
evince |
not needed |
|
gcalctool |
not needed |
|
gnome-contacts |
not needed |
|
gnome-dictionary |
not needed |
|
gnome-disk-utility |
not needed |
|
gnome-font-viewer |
not needed |
|
gnome-screenshot |
not needed |
|
gnome-search-tool |
not needed |
|
gnome-system-log |
not needed |
|
gnome-system-monitor |
not needed |
|
gnome-terminal |
not needed |
|
gucharmap |
not needed |
|
nautilus |
||
sushi |
not needed |
|
yelp |
not needed |
|
core-extras |
||
gnome-background |
not needed |
|
gnome-user-share |
||
vino |
||
gnome-user-docs |
not needed |
|
core-os-services |
||
accountservice |
not needed |
|
avahi |
not needed |
|
not needed |
||
dbus |
not needed |
|
gdm |
not needed |
|
not needed |
||
not needed |
||
polkit |
not needed |
|
upower |
not needed |
|
core-deps |
||
atk |
not needed |
|
atkmm |
not needed |
|
cairo |
not needed |
|
cairomm |
not needed |
|
cantarell-fonts |
not needed |
|
caribou |
not needed |
|
clutter |
not needed |
|
clutter-gtk |
not needed |
|
clutter-gst |
not needed |
|
cogl |
not needed |
|
dbus-glib |
not needed |
|
dbus-python |
not needed |
|
desktop-file-utils |
not needed |
|
enchant |
not needed |
|
expat |
not needed |
|
farsight2 |
not needed |
|
folks |
not needed |
|
fontconfig |
not needed |
|
gamin |
not needed |
|
gnome-js-common |
not needed |
|
gtksourceview |
not needed |
|
gdk-pixbuf |
not needed |
|
gjs |
not needed |
|
glib |
not needed |
|
glibmm |
not needed |
|
gmime |
not needed |
|
gnome-video-effects |
not needed |
|
gnutls |
not needed |
|
gobject-introspection |
not needed |
|
gst-plugins-base |
not needed |
|
gst-plugins-good |
not needed |
|
gst-plugins-farsight |
not needed |
|
gstreamer |
not needed |
|
gtk+ |
not needed |
|
gtk-doc |
not needed |
|
gtkmm |
not needed |
|
gudev |
not needed |
|
hicolor-icon-theme |
not needed |
|
icon-naming-utils |
not needed |
|
iso-codes |
not needed |
|
itstool |
not needed |
|
intltool |
not needed |
|
java-gnome |
not needed |
|
js185 |
not needed |
|
json-glib |
not needed |
|
libatasmart |
not needed |
|
libcanberra |
not needed |
|
libchamplain |
not needed |
|
libcroco |
not needed |
|
libdaemon |
not needed |
|
libdiscid |
not needed |
|
libgpg-error |
not needed |
|
libgcrypt |
not needed |
|
libgee |
not needed |
|
libgdata |
not needed |
|
libgnome-keyring |
not needed |
|
libgnomekbd |
not needed |
|
libgsf |
not needed |
|
libgtop |
not needed |
|
libgweather |
not needed |
|
libical |
not needed |
|
libmusicbrainz |
not needed |
|
libnice |
not needed |
|
libnotify |
not needed |
|
liboauth |
not needed |
|
libpeas |
not needed |
|
libproxy |
not needed |
|
librest |
not needed |
|
librsvg |
not needed |
|
libsigc++2 |
not needed |
|
libsndfile |
not needed |
|
libsoup |
not needed |
|
libtasn1 |
not needed |
|
libwnck |
not needed |
|
libxklavier |
not needed |
|
libxml2 |
not needed |
|
libxslt |
not needed |
|
mm-common |
not needed |
|
nspr |
not needed |
|
nss |
not needed |
|
p11-kit |
not needed |
|
pango |
not needed |
|
pangomm |
not needed |
|
pixman |
not needed |
|
polkit-gnome |
not needed |
|
poppler |
not needed |
|
py2cairo |
not needed |
|
pygobject |
not needed |
|
rarian |
not needed |
|
seed |
not needed |
|
shared-mime-info |
not needed |
|
sound-theme-freedesktop |
not needed |
|
speex |
not needed |
|
sqlite3 |
not needed |
|
startup-notification |
not needed |
|
telepathy-glib |
not needed |
|
telepathy-logger |
not needed |
|
telepathy-farstream |
not needed |
|
totem-pl-parser |
not needed |
|
tracker |
not needed |
|
vala |
not needed |
|
vte |
not needed |
|
webkit |
not needed |
|
yelp-tools |
not needed |
|
yelp-xsl |
not needed |
|
zenity |
||
libnl |
not needed |
|
lcms2 |
not needed |
|
colord |
not needed |
|
apps |
||
accerciser |
not needed |
|
aislerot |
not needed |
|
anjuta |
not needed |
|
cheese |
not needed |
|
devhelp |
not needed |
|
evolution |
||
file-roller |
||
gedit |
not needed |
|
ghex |
not needed |
|
glade |
not needed |
|
gnome-color-manager |
not needed |
|
gnome-devel-docs |
not needed |
|
gnome-documents |
not needed |
|
gnome-contacts |
not needed |
|
gnome-clocks |
||
gnome-photos |
not needed |
|
gnome-games |
not needed |
|
gnome-nettool |
not needed |
|
nautilus-sendto |
not needed |
|
nemiver |
not needed |
|
orca |
not needed |
|
rygel |
not needed |
|
seahorse |
not needed |
|
totem |
not needed |
|
vinagre |
not needed |