Feature Focus: GNOME 3’s New System Status Area

GNOME 3.10 isn’t far off, and there’s a lot of cool new stuff coming. One of the most visible changes in this release is the new System Status Area. For 3.10 we have reworked this part of the shell, and in this post I’m going to give a bit of background on the process involved in designing and implementing it.

The System Status Area is our term for the section on the right hand side of the GNOME 3 top bar. This is the place where icons indicate how much battery you have left and the strength of your wi-fi network, and so on. It is here that you can also perform basic system-level actions, like powering off. One of the long-standing design goals for this part of the top bar is to consistently use it for system-level status and actions. This makes the area predictable and ensures a clean separation between applications and system.

During the 3.x GNOME series, the System Status Area received quite a lot of work as we sought to refine and mature the original design that was introduced in 3.0. These iterative changes definitely improved this part of GNOME 3. At the same time, the basic design didn’t change a huge amount and was quite similar to what we had in the GNOME 2 days: a series of small icons, each with a menu attached to them. Each icon represented a different aspect of system status (battery, wi-fi-, bluetooth, etc), and the corresponding menu provided actions that you could take in that area.

Over time, we realised that there were some limitations with this model. There were some relatively isolated issues, like the row of small icons being difficult click targets, not having a good place for a screen brightness control, and the network menu being overloaded with a lot of items. We also encountered issues with having the user’s name in the top bar. This created privacy concerns: the prominence of the name on the screen was uncomfortable for people using their machines in public places. It also presented layout difficulties in cases where people had long names.

The Old System Menus
The Old System Menus

There were also structural limitations with the old model. As we sought to refine the System Status Area, we started looking to more dynamic models for indicating system status, which would reflect user intent more closely. Bluetooth is a good example here: in the old model, a bluetooth icon would always be present, even if bluetooth wasn’t being used (or had never been used, for that matter). You might not be interested in ever using bluetooth, and yet this icon would always be visible.

The old design resulted in a status area that wasn’t as focused on the user as it could be. To improve on this, we wanted to only show status icons when a hardware capability is active or in use. This approach is also a much better fit for modes that involve multiple aspects of system status. Aeroplane mode is a good example here, since it can affect bluetooth, wi-fi and mobile broadband simultaneously. Having separate menus for each of these areas prevented us from having an elegant presentation system status.

As we encountered these issues, those of us who work on GNOME design started to think about possible solutions, and the idea of having a single aggregated menu for system status emerged. In January of this year, some early concepts were thrown around. Most of these were rejected, but as time went on we started to hone in on a solution that we liked.

Early Concepts
Early Concepts

It should be said that, since this posed a major redesign of a core part of GNOME 3, we didn’t rush into pushing for changes. Informal discussions took place over three or four months before we decided to take the plan forward, and we only did this after we were confident that the new approach would both work and be an improvement.

Once we were confident about the overall design approach it was time to get stuck into the details. Since we were redesigning how to handle the multitude of possible system states, this was a highly complex design task. I personally wanted to make sure that we had all the bases covered, and I embarked on creating a series of detailed wireframes that sought to cover the full range of possible system states that might be encountered. These detailed each aspect of system status, including the way each one varies. They also included a set of example scenarios which enabled us to see how the design would play out in practice. These detailed investigations revealed issues with the original designs and allowed them to be improved.

Early Wireframes
Early Wireframes

It was around this time that Jasper St Pierre – one of the main GNOME Shell developers – took interest in the proposal, and this enabled us to put the proposal to the rest of the GNOME community. In April we proposed the new menu design as a GNOME 3.10 feature, and asked for comments and feedback on the GNOME Desktop Development List. There was a lot of discussion about the feature, and we got a lot of feedback. Jon, Jakub and I discussed the issues that were brought up and made changes to the design to address them (we subsequently updated the desktop list about these updates).

Over the course of this detailed phase of the design process, a total of four major iterations of the mockups were produced. Each one was quite detailed, and marked an improvement in the design. If you are interested in this, you can browse the series of iterations in our design repository.

And then we were into implementation territory. I think we underestimated the amount of work involved in implementing the new design, and Jasper had to move mountains to make it happen. However, thanks to his hard work we are going into 3.10 with the new System Status Area as one of the new GNOME features that we’ll be introducing. As implementation took place we inevitably encountered design issues, and Jakub and I have been working with Jasper to resolve these as we encounter them. We are now testing the implementation and are busy tracking the bugs that need fixing before the release.

The New System Menu
The New System Menu

Having spent a while using the new feature, I have to say that I’m very happy with the way it has turned out. The System Status Area is now much more focused, and only contains information about things I care about. It is also really nice to be able to open the menu and get an overview of system status. The new menu is also much easier to use with a pointer. Before, you would have to consciously target one of the small icons as you moved the pointer towards it. With the new design, you can move towards the top corner without even having to look (it feels very similar to the Activities Overview hot corner in this respect). It is very Fittsy.

I’m also confident that the new System Status Area will serve as a good platform for making further improvements in the future. Now that we are able to deal with system status in a more dynamic manner, I think there will be interesting opportunties for innovation in this area.

As with any new feature, we will be closely monitoring the feedback that we get over the coming weeks and months, and I’m sure that there will be adjustments that need to be made. For anyone who does encounter issues with the System Status design, we have a new component you can file bugs against (called “system-status” – it can be found in the “gnome-shell” product). We’ll be keeping a close eye and are happy to talk through any issues you might encounter.

The process involved in developing this new feature has lasted about eight months, and we have put a lot of work into it. We think that the new System Status Area enhances the GNOME 3 experience, and we hope that you like it. We’ll also keep working on it in future releases, so that it gets better and better.

35 thoughts on “Feature Focus: GNOME 3’s New System Status Area”

  1. Do you intend on supporting media playback support as exposed by media players that implement the MPRIS DBus spec (http://www.mpris.org/2.1/spec/)?

    This interface exposes the currently playing track by these players, the playback progress (with the possibility to change it), next/prev track and play/pause/stop controls as well as artist, title and album metadata.

    Most (if not all) media players have support for this interface — clementine, rhythmnbox, banshee, audacious, amarok, vlc, etc.

    1. Hey Reece. There’s been some conversation about using MPRIS for media player integration in the Message Tray and Lock Screen. I’m not sure what the final conclusion was though. This is something that I want to look at for 3.12 though.

    2. I noticed that gnome-settings-daemon’s media key plugin now uses MPRIS as a fallback if no player explicitly registers for media key handling. So that’s progress.

  2. I don’t suppose there’s any chance of getting a Suspend button while you’re doing this redesign? It’s a pain having to use extensions to add one, just so I can put the machine to sleep each night.

    1. Hey Simon, suspend will work in the same way as in 3.8 – it is exposed in the menu when you hold down the alt key. We did look at this during the redesign, and we tried to make it a bit more exposed. In the end it was difficult to find a good way to do that though.

      1. Why can’t suspend also be offered on the popup screen when you select the “Power Off” option from the menu? There is probably a design-led reason for this but the only one I can think of personally is that the warning related to open applications may not be relevent when you are suspending, but for me personally I don’t see that as any kind of major issue.

        1. Colin, because we have a timeout for the power off dialog – after 60 seconds, we automatically power off the machine. This is a saftey net for if you opt to power off and then walk away. If we had suspend in the dialog, it would put you in a stressful position – if you don’t press suspend within the 60 seconds, the machine will power off – not what you want if you intended to suspend.

      2. Perhaps you should consider priorities? There’s a reason extensions like Alternative Status Menu are so popular… it’s that of all the items in the default menu, none of them are used as frequently as the items you’ve chosen to leave out.

        I use the Suspend function daily, whereas I use the Reboot function maybe once a month, and Shut Down maybe once or twice a year (to power off the desktop when on holiday). The secret Alt-key modifier really isn’t a satisfactory option…

      3. Shutdown might be a sort of common action on a desktop machine (if suspend/hibernate doesn’t work) and thus it could possibly be argued that the show only shutdown approach has at least some merit.

        But on a laptop I’d say that both hibernate and suspend are far more common than shutdown. I even use reboot more often than shutdown (and I generally only reboot when I update my kernel). Hiding these options and forcing the user to press alt to even see them — without even providing the user with a hint that this is necessary — is definitely *not* userfriendly or a sign of thought through UI design.

        Other than this the redesigned interface looks great.

        I must ask one thing though: in GNOME 3.8 the Bluetooth setting isn’t persistant over reboot. I almost never use bluetooth on my laptop, yet it defaults to on, even if I’ve turned it off before. Is this possible to fix somehow?

  3. Looks great… only question is, what opens when you click the entries with arrows next to them? e.g. the wifi, battery and user name. Is it just the appropriate system settings panel?

      1. Would you consider making volume a submenu, to show apps playing audio and audio output devices, providing the functionality of the audio settings?

        Or, alternatively, could you provide a way to get at the audio settings?

  4. AWESOME! I already did see the changes when I tested GNOME OS Tree, but with these concepts its simple phenomenal!

    GNOME 3.10 is a MASSIVE hit. Probably for me, the best version of GNOME (shell) ever

  5. A few questions are coming to my mind.

    * How do I log out and lock the screen? I do this quite a lot.
    * Can I still change the volume with the mouse wheel, without clicking on something in the first place?
    * Does the menu saves its state? Will sub-menus opened stay open, even over sessions?

    1. Hey!

      * Log out is found in the “user” submenu – click on your name and the option will appear. Locking is done through the lock button – the round circle with the padlock symbol.
      * I *think* so! That was certainly the intended behaviour.
      * No the sub-menus don’t stay open. If we find that people are consistently going back to the same submenu, then that’s something we could change. I’m not entirely sure that will be the case though, so we’ll have to wait for more data.

    2. I just tested it to be on the safe side, and changing volume with the scrool wheel is still possible in 3.10. It was stressed a lot during the development that this fuctionality had to remain though when the code and ui changed a lot.

  6. Even though there is still a couple of things that needs to be fixed when running in a Virtual Machine, hence being slightly skeptical of this change at first, it works great!

  7. Hi Allan,
    excellen desin work!, Gnome 3.x is for me the best and most sophisticated logical arrangement I’ve ever seen.

  8. What’s the purpose of this unification? We have more than enough horizontal space so I don’t understand the point of merging everything together.

    I use the mouse scroll to raise/lower the volume by hoving the volume icon, will that still work with this unified concept? It seems like there are more than few progress-areas like the screen brightness so I’m kinda worried about the functionality of this mockup…

    1. There were a few motivations for simplifying the system areas.

      During user testing on GNOME 3.8, a lot of participants ruffled through the system indicators at the top right whenever they were given a task like starting an app or browsing to a website, so we tried to make them simpler and “less interesting”, since they’re mostly about system administration. When we tried some of the initial designs, users likened them to the status icons seen on their smartphones, and understood the purpose immediately and we had less people ruffling through those areas.

      As Allan also mentioned, we were concerned with privacy concerns about the user’s name; the new Lock Screen designs in 3.6 helps prevent issues where you’re logged into the wrong account, so we don’t need a persistent reminder.

      The mouse scroll wheel to raise/lower the volume still works. I use it all the time too, so I made sure to keep it working.

  9. Looks nice. This was one of the things I was highly sceptical about but the design seems sound and I even noticed my Win desktop configuration resulted in the same principles. Just a couple of Qs:
    1. Has this development by any chance affected your plans regarding appindicators whose implementation I’m sure you’ll agree is still far from optimal?
    2. Good thinking regarding keeping the ability to use mouse-scroll to change the volume. Would we have to hover the entire system status area or specifically the volume indicator? If it’s the latter would it be possible to add (rather than replace) a similar functionality for brightness (probably via an extention like https://extensions.gnome.org/extension/231/brightness-control/ )

    1. I’m not exactly sure what you mean by AppIndicators. If you’re talking about integration with Unity’s AppIndicator framework, we have no plans to support this feature.

      A simple extension to add a new indicator to the panel and provide similar functionality should not be too hard to manage.

  10. First, congratulations!
    I’m not a Gnome user but like the recent changes you introduced (the window bar removal).
    One thing I find quite curious is that there is no visual hint that you can shutdown the computer by pressing the battery button -> seems illogical. Also if all system status buttons make appear the same menu, why not reduce the number to only one?

    1. All of the icons light up at once to show that they’ll all connected, and the fact that the whole set of icons is underlined and the arrow points to the middle of the set of icons emphasize the point that it’s just one menu.

      And reduce the number of what to only one? Of icons? You want to show battery power, wifi strength, and your volume level with one icon? If you make one, I’ll be impressed.

  11. I was worried how the redesign might shape up but I have to say I really like it. Well done!

  12. Nice article. It made for interesting reading.

    One concern I have doesn’t seem to have cropped up yet, so I’ll ask about it.

    One element that seems to have been demoted is that of a regular wired network connection. Like a lot of the models in the recent ultrabook trend, my machine does not have a built in ethernet controller. When I’m in the office, I disable wifi and get network via a USB ethernet adapter (which I guess will be quite common these days with this style of laptop).

    Unfortunately the UI presented to me seems to just be one of a broken wifi symbol. This is misleading and might lead me to think there is a problem with my network, but in actual fact the wired interface is working away happily. This may be down to bugs (or incomplete packaging downstream) in the 3.90.x series but looking at the wireframes, this kind of configuration doesn’t seem to be represented.

    Can you elaborate?

    1. Wired connections indeed had bugs in 3.9.90 cycle, incorrectly showing as Disconnected. New NetworkManager APIs had to land for us to correct this, so it’s taken a little while longer than we had hoped to get fixed, but this has been fixed for the final release.

      … at least, I hope so! Your USB dongle might confuse NetworkManager, so if you’re still having issues after 3.9.91 is released, please file bugs for gnome-shell and I’ll take a look.

  13. Was it considered to make the menu “hot” and appear on hover like the Activities button? They both look similar and are at similar parts of the screen (top corners.)

  14. Hey,
    instead of showing Lock, Switch User, Suspend, Power Off, Install & Restart etc in a long list like that, why not having just a Button showing »Session…« which is showing a dialog containing the options of leaving the session as a big vertical list?
    Lock
    Switch User
    Suspend
    Hibernate
    Poweroff
    Install Updates and Reboot

  15. Thanks for your comments everyone. I’m going to be on holiday for a couple of weeks, and am disabling the comments for while I’m away. I’ll turn them back on once I’m back.

  16. This looks so cool! =)
    Last time i used gnome for a long time was 3.6 and a couple weeks ago i tried 3.8. Its nice but i dont like the new way of showing applications. I prefer with the right categories instead of just one grid with all apps and the option to create folders. Another thing i had some troubles was notification area. I have moved the mose down and to the corners, tried everithing and there was no notification area showing.. I was thinking it was off or gone.. I searched on internet and couldnt find anything talking about notification then i found that i have to go full down with the mouse tho show notification area. I think the way notification area shows need some changes.
    Keep up the good work! ;)

Comments are closed.