Over recent months, a fair amount of work has been done on the design of GNOME’s settings. Quite a lot of this work is experimental, but I wanted to share the work in progress and explain some of the reasoning behind it.
A major feature of the latest settings designs is a rethink of the GNOME Settings “shell” (that is, the overall framework of the settings application). We want to move from the current model, that uses an icon grid and fixed window size, to one that uses a list sidebar for navigation, and has a resizeable window.
While icon grids are an established approach for system settings, they aren’t the only solution, and we have encountered limitations with them. The main drawback of the icon grid is that it is hard to promote some settings over others. We have quite a lot of settings, and some are more frequently used and more interesting than others. To make this easy for users to deal with, we want to make some settings more prominent than others, so that users are guided into the interface in a logical way, rather than being presented with a wall of stuff that equally competes for attention.
There are other issues with the icon grid approach. It is difficult to accommodate new settings panels, and some settings don’t fit well into the constrained space of the fixed size window. This also doesn’t work very well on convertible devices (primary windows really need to be maximized when in “tablet mode”).
Moving to a list sidebar and resizeable window will address these issues, and create a much more guided experience where the order of the settings becomes familiar through use. It will also make the Settings application feel much more integrated and like a single unit, rather than being a collection of separate parts. It should make it quicker to navigate and more inviting to browse.
Moving to a list-based approach for settings involves both design and implementation challenges, and it is definitely not going to happen tomorrow. However, this is the general direction that we are aiming towards in the long term. On the design side, it requires that a number of settings panels be redesigned in order to fit into the new shell. This isn’t actually a bad thing though: most of these panels are in need of some design love anyway.
In what remains of this post, I’ll review our plans for the groups of settings where we have planned changes.
Network settings are notoriously difficult to get right. I think it’s fair to say that the current ones in GNOME could be better, and they’re something that I’ve wanted to take another run at for some time. One particular issue we want to eliminate is the overcomplexity of the settings for simple, common, cases. Many of the more advanced settings could be easier to use, also.
Networking is one area that is heavily impacted by the settings shell redesign plans. We want to split Wi-Fi and Mobile Broadband out into their own panels, leaving a general Networks panel for wired connections, VPN and network proxy settings. This allows the most commonly used network settings to be made more prominent and easier to access, which will make the settings more convenient to use.
Another goal for this panel is to make greater use of progressive disclosure. Again we’re focusing on the common cases, and making them easy – like changing a Wi-Fi password without being exposed to IP routing settings.
We do also want to improve the advanced network settings too, of course: by making them more compact, reducing the amount of navigation that is required, and making them more straightforward to use.
We’ve wanted to redesign the sound settings for some time, along with a redesign of how volumes work generally. Per-application volumes don’t work well for transient system sounds or when there are lots of multimedia apps open at once (this is especially an issue when browser tabs contain music or video), and the relationship between application and system volume often results in unpredictability. We plan to replace these with three more generic volume levels (media, alerts and alarms), which will merge system and application volumes.
Another issue that we plan to address is the overcomplexity of the sound settings UI itself. This isn’t necessary for what is actually a fairly simple set of features. It also prevents being able to easily get an overview of the current configuration. These issues are addressed by the new designs.
The display settings were last updated for GNOME 3.10. These changes succeeded in redefining display settings as not just being about joining displays together. In particular, it put an emphasis on using displays for presentations, where there previously hadn’t been much concern at all. However, this design tends to work best when there are a lot of displays, which is obviously not the most common case, and can be a bit too much work to use.
I’ve therefore recently been experimenting with how to modify the current design to optimise it for the two display case – which is when these settings are most commonly used. These designs are still fairly experimental, and aren’t particularly connected to the settings shell redesign that I’ve discussed above.
The new designs attempt to bring the most important settings to the front, without requiring the user to delve into dialog windows every time. They are also structured around global modes, rather than purely consisting of per-display settings: this should make it clearer what’s going on at any one time.
Users, keyboard, printers
The changes to the Users, Keyboard and Printers settings are fairly similar, and aren’t as sweeping as some of the other design proposals. Each of these settings panels currently includes a selection list of its own, which wouldn’t work so well with the new settings shell that we’re planning. We are therefore looking to remove these selection lists. In some cases this has some real advantages, like in the Users panel, where it enables us to provide a better experience when there is only one user on the system (which is the case a lot of the time). In others it is more of a simple reorganisation.
All of the designs include various refinements and improvements on the existing designs. There are a lot of visual improvements to the printer settings, for example, and there’s improved feedback for changing shortcuts in the keyboard settings.
In this post, I’ve outlined the general direction that we are hoping to take with GNOME’s settings. There isn’t a fixed roadmap for any of these changes, and it might be some time until they are all implemented. However, we are making progress. One part of the plans has been implemented during the current GNOME development cycle, with the new Mouse and Touchpad settings panel, and I’m hopeful that we will continue to make push forward with this in the future.
One reason for publicising these plans when they are still at an experimental stage is to get feedback, so we can improve the designs before they are implemented. So, if you do have any thoughts on this, please get in touch, either through the comments on this post, IRC, or via one of the relevant design pages.