[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-usability
Subject:    kcontrol reorganization (was: UI enhancements)
From:       Daniele Pighin <daniele () dcs ! it>
Date:       2003-01-26 10:26:54
[Download RAW message or body]

Hi everybody,

kde has a strength, which is its being higly modular and customizable; a 
strength that can, on the other hand, be an issue for all those users who are 
not used to so many options to tweak around.

We have therefore to find a solution to allow both average users to have fewer 
options and advanced users to exploit all the features of this system.
We also want average users to be eventually able to access more sofisticated 
controls, when they need or want to.

Moreover, there is a major issue: kde is no longer a mere desktop manager, it 
is rather becoming a system shell, a whole, complex layer of software that 
release after release covers more and more aspects of the system's 
management. Hence, the need for a solution that let us put more and more 
configuration options in (as always more will be needed, as modules and 
pieces of software are integrated into kde) without warrying the user who 
doesn't need this options.

This of mine is a proposal I would love you to discuss, especially to know how 
far is this from being realizable, or also useful.

When you fire up kcontrol you have a left-pane which is a tabbed view: 
actually it holds "index", "search", "guide".
Now what I suggest is to make the "index" tab a tabbed view itself, holding a 
number of tabs representing different levels of abstraction for configuration 
options.

Im'm going to explain this with a couple of examples.
Suppose we want to provide 3 levels (the choose of the number and the name of 
the levels would be a matter of study for the usability guys), and call them 
"basic", "advanced", "power user": we would have something like this:

 _______   ________   _______
| index | | search | | guide |
|       _______________________________
| _______   _________   __________     |
|| basic | |advanced | |power user|    |
||       _____________________________ |
||                                    ||


For example, suppose the user has to configure the fonts of his desktop.

In the "basic" tab he can find only this options:
- select fixed width font
- select variable width font
- select base font size
and that's all.
Once the user has selected the fonts he wants and the base size, all other 
fonts of the system are automatically handled by kcontrol.

In the "advanced" tab he would find the very same interface you have now, that 
will let you select fonts with a higher degree of control.

In the "power user" tab you would find tweaks for, say, set the angle of the 
drop shadow of the text (if available), the blur value, font effects, new 
fonts installation etc...

The higher level of abstraction would use default values for all the things 
they can't configure, as it is supposed that if they do not need to hack 
these values they are satisfied with what they have. The guys in the 
usability team should decide what values are the best for the average user, 
and these values should be kde presets.

Another example would be theme-handling.
In the "basic" tab you can choose your theme, which is a combo of windec, 
widget style, iconset, effects and color scheme.
In the "advanced" tab you can individually set these properties, to create new 
combinations, and in the "power user" tab you can do more subtle adjustments.

Moreover, I would definitely reorganize the modules in kcontrol, as they are 
quite scattered. You have too many high-level voices.
I would like to have just 3 higher-level entries (also here, the names are 
just provided to convay the idea):
- look, feel and behaviour (interface related modules)
- services (network, lisa, samba ....)
- system (peripherals, hardware..)
and the modules would be organized within these categories.

The combination of these 2 features (tabbed user level and reorganized module 
hierarcy) would allow users to seamlessly browse between the different 
levels, if needed.

For example, say that I'm configuring my fonts in the basic tab ("basic->look, 
feel and behaviour->fonts"). If I want more options I move to the advanced 
tab, and I find myself in the proper module ("advanced->look, feel and 
behaviour->fonts").

This solution would:
- be scalable
- allow for the proliferation of configuration options, which is going to 
happen as kde gets bigger and more complex
- allow for users to chose a level of complexity that fits their needs
- avoid the need for those nasty "advanced" buttons.
- force us to write more coherent and well-organized modules for kcontrol
- many more, I think :)

To make the user experience even better, the interface could adopt some 
improvements; such as:

- a tab is deactivated if it holds no options (say you have only basic and 
advanced controls, but no power user ones; the "power user" tab would be 
shaded and disabled)
- a warning pops up when a user moves away from the basic tab, saying that 
tweaking those commands is not necessary and that he should only if he know 
what he is doing. We could have this message disable by the usual "don't 
bother me again" checkbox
- kcontrol should remember the state of the last access and recover it on 
startup; that is, if a user was warking on "power user -> look, feel and 
behaviour->fonts" when he last closed kcontrol, he should be prompted with 
the very same module when runnin it again.

So, this is it.
I hope you'll join the discussion and comment on this issue.
Please, CC to daniele@dcs.it as I won't get your email otherwise.

Thanks

Daniele
_______________________________________________
kde-usability mailing list
kde-usability@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-usability
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic