On Thu, 2009-04-09 at 11:41 +0100, Mark Shuttleworth wrote: > Peter Whittaker wrote: > > If you read my comments on the wiki page, you'll see I make clear > > distinctions between system and user notifications: Let's apply that > > distinction consistently. A user notification is a doorbell, it appears > > in the user notification area, near where the user keeps their stuff. A > > system notification is a firealarm and appears in the system > > notification area, where other "systemy" things are. > So, a user notification is something like "John emailed you", and a > system notification is something like "Your network disappeared"? Yes, exactly. They are different events, different types of events, and need to be handled differently. If I ignore the doorbell, chances are I've missed a friend or a chance to donate to a worthy cause; chances are I'll have another chance at either/both. If I ignore a firealarm, well, it's not the sort of thing you do more than once, is it? So "John emailed you" appears ephemerally in the user notification area (mentally, I'm viewing this as bottom-right, where the bubble fades up from the bottom, stopping with its bottom edge attached to the bottom bar). "Your network disappeared" appears in the system notification area, using the same mechanism (my little mental picture is bubble fading down from the top right, stopping with its bottom edge attached to the top bar). If necessary, they can decorated with something akin to traffic signals (yellow triangles for suspicious conditions, red octagons for serious conditions, etc., though I would like this to be configurable). Generally, user notifications are ephemeral, allowing us to ignore them; the one obvious exception is a user-triggered reminder, that is, a reminder of a ToDo, meeting, etc., entered by the user. (Preference allows the user to make buddy or email notifications, etc., persistent if they want, and all user notifications are user configurable.) System notifications fall into three classes: The always ephemeral, the always persistent, and the ephemeral-but-may-signal-a-problem. "Your battery is about to die, save your work" is persistent (using the model I described previously - appear, then sink beneath the focused window, reappearing as focus rises). "Important updates are available" is also persistent. Always ephemeral would include "Your battery is fully charged", "you are now connected to network N", etc. Trickier are "ephemeral-but-may-signal-a-problem": "You are now disconnected from the network" may or may not be a problem. Chances are, you undocked your laptop. But if you aren't on a laptop, chances are this is a problem. I'm of at least two minds as to how to resolve this. My first - and distinctly inelegant - inclination is to periodically remind the user ("You've been disconnected for 90 minutes, is everything OK"), perhaps even making the notification persistent after a time, but this would be disturbing to the laptop user who has deliberately gone off-line. My second - and preferred - inclination is an ephemeral bubble to draw attention coupled with a persistent NetworkManager icon showing current network state. I say preferred because it is fairly easy to do (since it is what happens now - no more work required) and because it is relatively elegant. (The only reasonable improvement I can see is to not raise the bubble until the machine is being used interactively, e.g., when the screen is unlocked, in order to ensure the bubble is displayed when it makes sense to do so - when it can be attended to.) My third - and downright potentially Rube Goldbergian - is to apply some sort of heuristics to determine how likely it is that the network disappearing was intended. If the machine is being used and it is a latop, then chances are the user undocked; if the machine is not being used, then maybe the user undocked, but that's not a safe assumption; if the machine isn't a laptop, then chances are it's a problem - the user may have deliberately unplugged the network, but that in itself likely signals an unusual, so having to dismiss a persistent dialog won't be too unwelcome. And I don't know if the data exists to allow intelligent heuristics. All of the ephemeral-but-may-signal-a-problem will have to be use-cased (hmm, Calvin was right, verbing weirds language) to determine appropriate defaults and appropriate heuristics. What do we do if we get any of these wrong, as we surely will? We discuss. We figure out default policies for all three cases, apply them as best we can, likely succeeding more than we fail thanks to the 80/20 rule, and we debate the rest as a community and come to consensus. Like we most often do. Having said that, all system notifications start off with a default system policy that can be changed by an admin (but not by a user). Quick comments re a few other points. I am adamantly opposed to popups in the user space, as should be obvious from earlier comments - unrequested popups are simply unwelcome and potentially problematic. Bubbles are much more elegant and are different enough to warrant attention. I felt it worth reiterating this point, given other comments re the unwelcomeness of popups (If I'm showing off Ubuntu, an unwelcome popup would be embarassing; a way-cool bubble, on the other hand, provides another opportunity to describe how cool and responsive are the community and its OS). I understand the comments re icons in the bar. While it *is* what I am used to, it can stand improvement and at some point there may be too many and signal will get lost in noise. The bubble mechanism, appropriately employed, is an elegant alternative. And one that can make clear the distinction between user and system events.