← Back to team overview

elementary-dev-community team mailing list archive

Background apps discussion


Okay, so the thread about Noise not complying to the HIG turned into quite a general discussion about the HIG and background application behaviour so I am creating this new thread with a better title to continue it. Here's a link to the old thread:

Summing up, we need to think about proper ways to create and deal with background applications, i.e, applications that don't require interaction with the user for most or a big part of the time they are running, like mail clients, IM clients, music players, microblogging apps, etc. Typically, these apps don't fit well into any one task the user is performing, so it often doesn't make sense for these applications to be bound to a particular workspace either.

To this end, applications are to intelligently handle closing the window to do whatever best suits the situation. The following could be guidelines to what the app must do (this deals with the user-facing elements, not the implementation)

"If you'd check a specific application frequently but not in reaction to notifications it raises (e.g. group chat, even if you weren't pinged directly) or if it has to be accessible as quickly as possible while it's running (e.g. music player, to pause music), the app should display an icon in the dock while it's running. If the app is primarily brought up in reaction to a notification and if the state of the app doesn't significantly affect its usage frequency (e.g. microblogging client - if the user tweets often they'd pin it to dock anyway), it should display an icon in the dock only when there are unattended action items (e.g. new messages) along with the action item count in the dock badge."

As far as implementation goes, this branch was recently merged into plank, which enables preliminary support for batches and progress bars without the need for an open window.
For hiding the window while keeping the dock icon visible, one solution would be to make better use of minimize. The following blueprint would need to be implemented:

That's all folks.

Follow ups