Multi-level Appearance KCM
Open, NormalPublic

Description

Over the years, we have flattened the System Settings Appearance section and moved most pages to the top-level category:

However we still get feedback that people can't find things, and in particular people don't understand the relationship between Global Themes and other appearance-related settings. Also the System Settings Appearance section is now quite large, causing the sidebar to be very tall and making it harder for people to find anything because of the greater number of top-level categories. And we're limited in the number of things we can add as additional top-level categories without worsening this problem, which is a problem because we want to eventually add more things to the Appearance section (Application Launch Feedback, Splash Screen, Plymouth, the appearance section of the separated Desktop Effects KCM).

@davidedmundson and @mart and I were discussing ideas to alleviate this recently and came up with the idea of renaming the top-level Global Themes KCM to be "Appearance" and fully embedding all the other appearance-related KCMs inside it using the multi-page KCM API.

This would clearly communicate that the other appearance KCMs are children of a logical parent (e.g. Global Themes). It would also remove six items from the top level of navigation in System Settings, making it easier to find everything else. Finally, we would have more room to put other appearance-related settings that logically belong there without overloading the top level of navigation.

Here's what the VDG came up with today, and I implemented a prototype:

Clicking on any of the buttons in the column on the right would take the user to the appropriate KCM, shown as another page using the multi-page KCM API. The only technical blocker that I can find is that we need to make the multi-page KCM API allow pushing a whole KCM, not just a single file.

ngraham created this task.Dec 29 2019, 2:08 AM
ngraham triaged this task as Normal priority.

Apart from desiring having a 'Global Style' sub-KCM for only applying the Theme part of the Global Theme like how Desktop Layout is only applying the Layout part of the Global Theme, and the icon for 'Desktop Layout', this is pretty much perfect already for a Proof-of-Concept and in terms of its GUI design.

One suggestion: Align 'Customise' to the left of the icons

abetts added a subscriber: abetts.Dec 30 2019, 3:06 AM

I proposed a change to this structure long ago, I believe it might be good to consider and organize. Maybe also we can offer more than one way to find things as SySe is launched. For reference, here is what I made,

https://phabricator.kde.org/M112/417/

We don't want to do anything that will break searching - typing "colours" should still work as-is.

To a large extent it seems like we're reinventing something that already exists.

Effectively we just want to have one entry at level 2 and move everything into level 3 and then the searching still works.

The other key difference is that the KCM you open from level 2, doesn't appear at level 3 to indicate it's some sort of parent - but maybe we can find a less invasive way to visually hint that within the current architecture.

The other key difference is that the KCM you open from level 2, doesn't appear at level 3 to indicate it's some sort of parent - but maybe we can find a less invasive way to visually hint that within the current architecture.

That's basically the design goal here, yeah.

If we make a group called "Appearance" as the level 2 item, put all the appearance KCMs into it, and make Global Themes the top item so that it opens up when you click Appearance, then the problem is that the other KCMs in the Appearance category are not communicated to be children of the Global Themes KCM. That's what we're trying to do here.