This is a work-in-progress specification for how system-controlled notification mechanisms should work on Ubuntu.
The System Settings main screen should have a “Notifications” item.
After the summary of notification styles, the “Notifications” screen should have items for “Apps that notify with sound” and “Apps that notify with vibration”. This is because sound and vibration are the two notification styles that are anonymous if they happen by themselves. (All other styles are visually associated with the app that issues them.)
The corresponding “Sound” and “Vibration” screens, then, satisfy the use case of “My phone is beeping/vibrating and I want to find out why”. Each screen should contain a list of all the installed apps that currently have permission to issue notifications of that type. If you uncheck an application in the list, it should remain present until you have left that screen (in case you unchecked it accidentally and want to recheck it).
In addition, the “Vibration” screen should have a pair of radio items for whether vibration notifications continue as normal when the phone is in Silent Mode.
Erratum: The “Notification Center” item should not be present; instead there should be a “Notifications” switch at the top.
In the list of apps on the main “Notifications” screen, each app item should have, as its caption, a comma-separated list of the kinds of notification the app is permitted to use.
Selecting an app should navigate to a screen for the individual app. This screen should start with a “Notifications” switch, followed by a “Let this app alert me using:” checkbox list with items “Sounds”, “Vibrations”, and “Notification bubbles”.
Whenever the switch is on, any app notification should be shown in the notifications list.
Whenever the switch is off, all the checkboxes should be disabled.
(Badges are deliberately excluded from these settings, partly because their implementation is incomplete — they appear only on the Launcher, not in the Dash — and partly because badges are not annoying enough to need disabling at a system level.)