← Back to team overview

elementary-dev-community team mailing list archive

Re: Noise doesn't comply to HIG


Shnatsel, assuming your blueprint implemented, would the following be a correct summation of your desired behaviour? I am assuming that none of the mentioned apps are pinned to the dock.

- user logs in, and several daemons start up and check for events.
- when the daemons detect an event of interest, like a new email, message, news, etc, a notification bubble is shown and, if appropriate, an icon in the dock with a batch appears. I would think this would be implemented as a window that instantly minimizes? - Because gala is to treat minimized windows as closed, this applications window would be shown in neither the window or the workspace overviews. The dock, however, would show this window in all workspaces. Clicking on the icon would bring up the application window on the current workspace. - When the user closes this window, the window actually closes (disappears from the dock).

This would be what I would expect of the "background tasks" category.

On Fri, Mar 15, 2013 at 5:37 PM, Sergey Shnatsel Davidoff <sergey@xxxxxxxxxxxxxxxx> wrote:
The big question is, "should background apps minimize or close their window?"

AFAIK it's a purely technical issue that's ultimately up to Gala devs, so I can't see the point of writing it down to the HIG or discussing it here. IMO the UX-related question is "when should background apps show their icon in the dock, and if should they do that at all?". It seemed to me that Noise should be easily accessible from the dock while it plays music, so that the user can pause playback or switch to the next track easily, regardless of the presence of media keys, which are still uncommon around here. Also, turns out many people don't discover media keys even when they are present - keyboards have so many keys...

This is why I pushed for minimizing Noise during playback when running in Pantheon. I also pushed for making it exhibit shell-native behavior, e.g. hide the window instead of minimizing it when running in Unity, but I'm not sure if that was implemented.
I'm inclined to think that close is the cleaner solution here when we're talking about making closing workspaces on Gala work properly, making "opening" (re-opening technically) these apps work as expected, etc. Think about it this way: How many apps does a user maybe want to be running in the background on start-up 24/7? Here's a few background apps I know that I have running on my Phone:

ESPN (gotta know when Barça is playing)
Mint (I get alerts if I go over-budget)

Does it make sense to have all these windows minimized to my 1st workspace every time I log in since they all (in at least some way) need to be running in order to work properly? I just don't think that makes sense from a window management perspective.

I'll reply with a quote from the very same HIG page:

If the app performs repeat background tasks (such as checking for new mail), the background tasks should be handled by a separate daemon.

All the apps from your list except Music perform some background tasks repeatedly, so they fall into this "background daemon" category. More specifically, they wait for some event and notify you when it happens. Of course it's counter-productive to make them all clutter the dock at all times. However, showing a dock badge with the number of action items in the app is an important means of notifying the user about the event because this way the dock provides a persistent overview of remaining action items. Dock badges are complementary to showing a notification but they're also important because the user is not always willing to react to a notification immediately and notification backlogs are far too cluttered to be useful.

The way I see it, these "background daemons" should only display an icon in the dock when the daemon has some new action items. Although the definition of "new" is a bit vague here - looking at how some people never get the unread mail count in their inbox to zero, I doubt it's a good idea to show an email client inon in the dock with the badge "243" all the time. Maybe it's better to only show the icon when the number of unread threads increases or display the number of unread emails since you last checked the inbox instead of the actual count of unread threads. But this is a topic for another discussion.

And regarding that quote, I have a bone to pick:

If the app performs repeat background tasks (such as checking for new mail), the background tasks should be handled by a separate daemon.
Not only the Human Interface Guidelines advice on the matters of software architecture, they also provide no rationale for doing so. It's as ridiculous as an interior designer writing "and by the way, only build houses on this type of foundation" in a book on interior design. I mean, what can interior designers possibly know about foundations? And why do they even care?

Sergey "Shnatsel" Davidoff
OS architect @ elementary

Follow ups