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.

{i} 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

{i} Add your comments to this goal proposal here

Status of this goal

{i} 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

done

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

done

gnome-power-manager

not needed

gnome-screensaver

not needed

gnome-session

not needed

gnome-settings-daemon

done

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

done

pulseaudio

not needed

telepathy-mission-control

to do

may need special-casing in gnome-shell

core-utilities

baobab

not needed

brasero

done

empathy

done

eog

not needed

epiphany

done

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

done

sushi

not needed

yelp

not needed

core-extras

gnome-background

not needed

gnome-user-share

done

vino

done

gnome-user-docs

not needed

core-os-services

accountservice

not needed

avahi

not needed

ConsoleKit

not needed

dbus

not needed

gdm

not needed

NetworkManager

not needed

PackageKit

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

done

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

done

file-roller

done

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

done

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

Initiatives/GnomeGoals/NotificationSource (last edited 2013-12-18 13:44:51 by LuisMenina)