Recently the question was asked in the KDE forums how we handle advanced settings. While there is neither a best practice nor a common approach in KDE software, we actually discussed a similar concept in respect to the Plasma control modules (KCM).
The updated organization of KCMs was implemented by the developers, the community decided about the basic layout, and a couple of proposals were done [1, 2]. So why don't generalize this idea and write a guideline?
The following guideline proposal not only recapitulates what we considered for the KCM but also introduces some new ideas. There is first of all the import/export function. The use case for this function is a system backup where you may want to store application settings too. While installing software is a piece of cake you waste much time to get back your previous look and feel as well as the known behavior. The import/export function should affect all aspects of the application. In contrast, the GHNS! feature is applied locally to the selected "group", which could be a minor usability flaw. Also controversially discussed is the workflow how to add user-defined settings. The idea is to implement it similar to the current color KCM. When the user modifies properties of an existing preset, e.g. "Breeze", the changes are applied to the preset "Current". In order to keep the customization it has to be renamed, e.g. "My Breeze". The advantage - and probably big challenge for developers - is to provide not only one single factory setting. Simplicity does not mean to have no choice.
Before we now start to create examples we would like to get your agreement - or rejection. So what do you think?
The settings dialog provides user-customizable options how an application or plasma (KCM) should behave. The dialog is intended for options that are not accessed frequently and are persitent. Following KDE's "Simple by default, powerful when needed" design mantra, settings are split into simple vs. advanced ones. Advanced settings are options that are not important to most users but essential for some, and can't removed therefore. Those options are hidden by default, but with an easy access in order to improve learnability.
Is this the right control
Use this pattern for all settings that are relevant to change for users.
Do not use the settings dialog for frequently accessed properties like, for instance, details vs. icon view. Use the toolbar or main menu (and optionally context menu) for these options.
Do not use the settings dialog for rarely changed or developer options like the sql table name. Use extra configuration files or dialogs for those options.
Simple by default: Define smart and polite defaults. Set the defaults in a way that most users don't have to alter them at all.
Powerful when needed: Provide enough options for the perfect customization according individual needs and preferences. But even though customizability is very important for KDE software, try to keep your settings dialog as small and simple as possible. Remember: every option requires more code and more testing!
Respect the privacy of the users: Always use opt-in, never an opt-out model for features that transmit potentially private data (e.g. usage statistics).
Organize your settings in logical groups. (#1 in the example).
Split options per group into standard and advanced. Make the standard easy to use for everyone. (#5)
Offer several presets and let the user decide what type of configuration should be active. (#3)
Consider to add access to third-party presets via Get Hot New Stuff! (GHNS), if available for this group. (#4)
Show a live preview for visual features. Omit this section if it's not relevant.
Provide functions to export/import all settings. (#7) If splitting the options into app-related (such as colors, fonts, etc.) and account-related (for instance personal settings, mail accounts...) make sense, let the user decide what to export. Import has to as straightforward as possible; let the user just confirm when data are being overwritten.
When the user changes the default switch to a special preset ("User" or "Current"). This preset cannot be applied unless it is renamed individually. Access to rename (and delete) is done per context menu. Indicate user defined presets by using italic font for the name.
Sort your options and groups by importance.
When a change is applied, the application should adopt it immediately without the need to restart it.
Do not change the settings dialog depending on the context. You should always start with the same landing page regardless of the application context.
Do not use a wizard to edit options. Only use a wizard to set options if actually a group of options all have to be edited at once, eg creating an account or a first run wizard.
1) Access groups via sidebar. 2) The preview has to be on the top of the content area. 3) Offer a good number of presets to let the user choose one out of different factory settings. Anchor the presets so that users can have more space for the area below using the horizontal splitter. Cut long captions with ellipsis and show the full name in a tooltip. (Remark 1: The mockup has very large splitters. The implementation should be visually less obtrusive.) (Remark 2: The preset selection replaces the former "reset (to default)" function.) 4) Allow users to add more presets via Get Hot New Stuff (GHNS). Organize the setting in a way that GHNS access is per group and not global. 5) Provide access to the most relevant settings at the Standard section. Make sure that these options are easy to understand. 6) Indicate that Advanced options are available but keep this section collapsed by default. 7) Allow users to export the current settings to a file that can be easily imported on any other machine. 8) Allow to Apply the current settings to the application without closing the dialog. 9) Provide access to functions for user-defined presets per context menu and standard shortcuts. 10) Scroll the whole area of options but neither the preview not the presets, if necessary.
13.02.2010 The KDE 4.3 System Settings - Part 4 - Advanced User Settings "Welcome to part four of our look at the KDE 4.3 System Settings panel. In this section we'll tackle the Advanced User Settings under the Advanced tab.28.02.2011 New Articles Published for week ending 2/26/11 New Articles Published for week ending 2/26/11 VMware Alive Enterprise VMware Alive Enterprise minimum user requirements for the Hyperic Adapter (1034095) Date Published: 2/23/2011 Starting and stopping VMware Alive Enterprise services (1034903) Date Published: 2/23/2011 Adjusting VMware Alive Enterprise resource and metric limits (1033981) Date Published: 2/23/2011 Configuring Hyperic for Client Authentication in VMware Alive Enterprise (1034426) Date Published: 2/22/2011 Accessing the Alive Enterprise Application Overview widget fails (1034587) Date Published: 2/23/2011 Setting up email...01.04.2011 vCenter Operations vCenter Operations Posted by Ramin SayarVP Product Management & Marketing, Enterprise Management At VMware we understand it’s not enough just to build a dynamic, virtualized infrastructure – you also need to manage it. So we’ve been hard at work simplifying and transforming infrastructure management by building functionality such as dynamic workload balancing and high availability into the VMware vSphere platform. On March 8th, we took another big step on our journey to be the leading provider of infrastructure and management solutions for dynamic virtualized and cloud environments. We...12.01.2014 QNX Delivers Power of Choice to Automotive Industry with Broad Range of User Experiences at 2014 CES "Discover new acoustic experiences in the latest QNX technology concept cars; control infotainment and navigation services with ease, using a flexible, multi-modal user interface; try out new cloud services that will transform how consumers, automakers, and dealers interact with vehicles LAS VEGAS, 2014 International CES North Hall, Booth 536, January 7, 2014 QNX Software Systems Limited, a global leader in software platforms for in-car electronics, today is demonstrating how its latest innovations in infotainment, acoustics, and cloud technology offer a potent mix for creating new, user-centr...04.03.2011 Top 5 Planet V12N blog posts for week 9 Top 5 Planet V12N blog posts for week 9 You guys are making this harder and harder to pick just 5 posts. Loads of good posts this past week, I had a hard time locking down only 5 but I felt these were really good ones that should be highlighted for this week! Mike Laverick - My View 4.5 Guide is now FREE to download - Well, I think the blogpost title kind of says it all. As of today my View 4.5 Guide is now completely free to download. Why I have a decided to this. Well, for a couple of reasons. View 4.6 was released today – introducing new functionality. In particular the...02.11.2011 4 simple resource optimizations for VMware View 5 4 simple resource optimizations for VMware View 5 By default the VMware View PCoIP protocol dynamically optimizes for the best user experience for the given resource constraints. In the majority of environments, this is the desired approach. However, there can be times where individual users or group administrators are interested in different resource utilization policies and in past blogs and whitepapers we have discussed in detail how to configure PCoIP to optimize for constrained resource consumption. In this post, I just wanted to provide a concise summary of these recommendations by h...15.12.2015 QNX and AdasWorks Collaborate on Automated Driving Technology "Companies integrating software technologies to enable intelligent, multi-camera surround-view systems. Ottawa, Ontario and Budapest, Hungary December 10, 2015 QNX Software Systems Limited, a subsidiary of BlackBerry Limited, and AdasWorks, an innovative startup developing artificial intelligence-based software for automated driving, today announced a technology partnership focused on advanced driver assistance systems ADAS and autonomous vehicles. As part of the new initiative, the companies are porting several AdasWorks functions, including lane detection, moving-object detection, and objec...29.12.2015 Luxoft Teams Up with QNX on Automotive ADAS Technologies "Collaboration focused on advanced technologies, including road scene reconstruction and augmented navigation, which can enable semiautonomous driving.December 15, 2015 Luxoft Holding, Inc. NYSE:LXFT, a leading provider of software development services and innovative IT solutions to a global client base, and QNX Software Systems Limited, a subsidiary of BlackBerry Limited, today announced a new technology partnership focused on ADAS systems used by automotive original equipment manufacturers OEMs and Tier 1 suppliers. As part of the initiative, Luxoft will leverage its expertise in road-model...12.01.2016 QNX INTRODUCES HOLISTIC APPROACH TO MANAGING IN-CAR ACOUSTICS "New platform offers unified management of all acoustics in the car, enabling customers to reduce the cost, complexity, and time-to-production of audio signal-processing systems. Las Vegas, International CES 2016, LVCC North Hall, Booth 325 - January 6 - QNX Software Systems Limited, a subsidiary of BlackBerry Limited, today announced the new QNXreg; Acoustics Management Platform AMP, a comprehensive solution that allows automakers to enhance the audio and acoustic experience for drivers and passengers, while reducing system costs and complexity.Modern vehicles contain multiple acoustic and au...30.01.2017 Simple Menu launcher on KDE Store Quite a while ago already I wrote a launcher menu widget named Simple Menu . It's using the same backend I wrote for our bundled launchers, and it's a little bit like Application Dashboard scaled down into a small floating window, plus nifty horizontal pagination.