How Configurable Should a Desktop User Interface be?
The Original Yama writes "In the world of user interface design there are two main schools of thought. The former maintains that the environment must be flexible and configurable enough to adjust to a user's needs. The latter takes the opposite perspective, arguing that many of today's user interfaces have become bloated and overloaded with features, and consequently have become difficult to maintain and use. KDE developer Mosfet shows how the KDE Project has managed to bridge the gap between the 'highly configurable' and 'less is more' camps."
The primary goal all OS vendors, should be to make a quick and responsive interface that is easy enough for anyone to get what they need done (No I do not need my desktop background to be an active web page).
There is no shortage of 3rd party utilities to modify a your desktop to your liking. Keep everything modular and people can add what they need when they need it.
"today's user interfaces have become bloated and overloaded with features"
Did the phrase "OS X" pop into anyone's head when they read that line? I sincerely hope that we've reached a turning point in UIs, and that people start thinking about efficiency and speed instead of bouncing transparent smoothed faded noisy two-toned etc. etc. junk.
(disclaimer: I'm not a Linux user at all, but neither am I a Windows fanboy, so this is totally an outsider's perspective)
I disagree. I think one of Linux' weak points is that it doesn't offer any real *alternative* when it comes to the GUI.
I think Linux needs some sort of wildly different GUI, perhaps not even based on the WIMP metaphore. Those people who are trying to make their GUIs exactly like Windows are missing the point: Why bother changing if you're getting exactly the same thing?
As for the question at hand: I think configuration options should really be limited to colours and fonts. Once you start doing things like rearranging buttons, or changing their glyphs, then the learning curve starts to get steeper for new users.
Mabster
Take a typical install program for Windows: you have three options:
- minimal
- typical
- custom
Minimal and Typical can configure many features of the product with a simple click. If you want total control, choose Custom.
Or, have your installer let the user choose Minimal or Typical, then customize from there.
Why can't this same type of system be used to configure a desktop UI?
Your options could be:
- Simple, lightweight
- Middle of the road
- Lots of eye candy, bloated
- Masochist
I'm not a KDE user, so I'm not actually saying that KDE is doing it wrong. But GNOME 2 is doing it right.
First, you design things so that they just work the way most users expect. You run tests to make sure you have it right.
Next, you make preferences dialogs with the most common options in them. You do let users configure things, but you make sure you don't have ten million options to sort through to find the one you want.
Next, you make an "experts" configuration interface; it could be config files, but in GNOME 2 it is GConf. (GConf looks a lot like the Windows registry, but it isn't fragile and centralized, and at its heart it's actually config files.)
Last, you make the system modular so that the really dedicated can swap out a module if they want something really different. If you don't like Havoc Pennington's way of looking at things, you can run Sawfish instead of Metacity. If you don't like Nautilus, you can run Gnome Commander or many other file managers.
Back when I was running GNOME 1.x, I actually hated the excessive number of options. I could actually maximize a window just horizontally, just vertically, or maximize both! Now with GNOME 2, all I can do is maximize both... but that's all I ever wanted in the first place.
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
This is just about the biggest hot topic in the world isnt it? here is my bit...
A UI has *lots* to tweak. pointers, buttons, windows. color, highlights, and now with 3d shading and drop shadows and etc etc..
Thing is most people dont change these things. Those who do usually go with 'sets/skins' and many of them are horrid evil monsters of the abyss.
Thing is do you really want to be able to configure all that stuff? With x-windowsyou can get in there and tweak everything. Thats all well and good. but who is gonna put a generic 'grandma' front end on that? And even if you have a nice screen to fiddle all the bits, will grandma even know what half the things are? Then you have the flip side of having almost nothing user configurable out of the box (Aqua). You can go 3rd party to go in there and chage the stuff, but then we are back the horrible skinning thing (as has been said elsewhere in this thread.
So the big question is how much is enough? How much is too much? Should anyone really waste the time letting people tweak everything? Does a compay that tries to make a coherent look and feel let people go and throw off the UI elements when they chose a 96 pt font for their "ok" button?
Mind you this is going to just get more fuzzy when the UI starts using vector 2d and 3d, and even more animated objects in the UI. Just wait untilyour head explodes when you see the pink hello kitty desktop of doom.
By what standards? Your own? If it is to your own standards, then by all means, be happy you have the choice of _not_ running KDE at all :)
I think Daniel is on to something. I've used both desktop environments, and yes, I loved Gnome 1.4, and I hate Gnome 2. Why? Because it gets in the way with how I want my desktop to work. KDE provides the mechanisms to tweak how you want your environment to work. It's the first thing I did when I started KDE for the first time. After that, I never touched the UI configuration because it was _just_ right_ for me.
Also, my family here uses KDE and they never complained how it worked. They are used to macs, so I set KPersonalizer to use the Mac-like defaults. No problem at all, they were right at home.
And as for confusing options, well, tend to go explore in Kcontrol and change colors/icons whatever themselves, and they never had to call me over _once_. So the whole point is moot, for me, and my direct environment (a.k.a. family that use my systems).
I like KDE's flexibility. You hate "complexity". It all boils down to preference.
While I'm typing anyway, I might share an anecdote. At an internetcafe where I do some freelance work I set up some KDE kiosk-mode terminals (KDE 3.1), as a test to see if people would use them instead of the defacto policied-shut winders box. I set some up, with some nice apps (Kopete, Konqueror, Moz, Phoenix, kvirc, java stuff, flash plugins etc etc.), planted some icons on the desktop to start them, slapped a nice style on it, put some nice looking icon sets in there, and just let it sit to be used. They've been sitting in the shop for a few days now, running happily.
To my surprise, the customers liked the KDE boxes. Actually, they fight over who gets to use them! And of course there's the added bones of less headaches. The winders machines tend to clutter up so much at the end of the day, I need to zap them all and put a ghost image back for the next day. Never once was that needed with KDE.
It's just so cool how you can take _out_ KDE's flexibility of you need it. Does GNOME have a Kiosk framework like KDE's?
I play around with lots of replacement shells on windows, and different window managers for xfree. With using multiple guis on multiple platforms all day, I'll share my thoughts.
:)
The major problem with most guis, is speed. I want my data fast, I want to work fast. Heres some common problems I see.
1. Cut & Paste. I tend to use shift-insert/ctrl-insert more often than ctrl-x/c/v. Application tend to support which method the developer wants. Right mouse cut/paste/select all handy in windows, should be in more unix guis.
2. Taskbar, when having 20-30 applications open, i want quick access. Binding keys is ok for quick launch, but give me task bar, task list, or some other task type folder is really useful. Nice icons, animation is neat, but dont slow down my system, or get in the way.
3. Alt-tab. Pesky little windows key combo seems to be ingrained in my head. I love to alt-tab back to the last application. I know shift normally mean go backwards, but 3 key combos i tend to ignore.
4. Anti Aliased fonts. When you see them, its hard to go back to non-aliased fonts. Like seeing HDTV, its that much of a difference. BTW, terminal font is for terminals, I like the look of VGA font for my terms. Clear, easy to read, and a standard. Ansi VGA for terms only. (Linux console works, even use it on all my ssh programs.) Guess too much old school thinking ingrained in me, OS2 had the perfect font in its command shell.
5. Mouse, 5 buttons. For games or applications, having a button there makes a task quicker. (I know its not UI, but its input related..)
6. Pixel Snap. IceWM has it, and found a handy program for windows (allsnap) that does it. Make it easy to have multiple terminal windows open, and I dont have to align by hand.
7. Virtual Windows, neat idea, but I find myself wanting to see my apps on the screen. So I tile, and keep sections open that i need to see, most common, excel spreadsheets with datafill while i have open ssh working.
So having my little pics, it narrows my choices of which gui's I use. Mostly, Im sticking with WinXP with cygwin/putty for now. On the unix side, icewm or kde. Nice icewm is only 600K and does most of what I want. Blackbox can be configured with most of my choices also.
I think the biggest problem now is consistency, and these developers are working hard at adding options to fix that. And its only going to get Better.
The problem is that Windows and windows programs were not designed to be skinned. Linux desktops were designed from the ground up for skinning. As a result, they pay careful attention to the color style of the skin. For example, Qt has a class that defines the color properties of a theme so applications can take the theme into account. Also, I have a feeling that KDE themes are much more powerful than external themes because they have access to the internals of the GUI, and can insert specific code to patch certain behaviors (through the Qt polish()/unpolish() mechanism). I run KDE almost all the time, and pretty much every KDE theme looks perfectly native, from .NET to Liquid (two *very* different styles).
A deep unwavering belief is a sure sign you're missing something...
Seriously, if any of you griping about KDE's interface haven't tried KDE 3.1, you owe it to yourself to try it. Phenomenal...
Waiting for KDE 3.2. KMail will actually have a useful spell checker, which will apparently be available for use in everything KDE, including Konqueror forms (like what I'm using to write this).
The Linux kernel is ready. KDE is almost ready. Then, all we'll need will be apps developers to produce stuff which doesn't feel/look/act/work like bad Windows shareware. (Integration, developers, integration! I need OpenOffice Impress to seamlessly handle videos, and Calc to do a polynomial regression!) Then Linux will actually be ready for the desktop and I'll be able to take that damned page off my site.
Fire and Meat. Yummy.
First, let me say that I hate the direction GNOME is moving. It's just plain not as configurable as KDE, and what configurability their is, is buried in a rather opaque registry.
Second, I think the larger problem is not so much configurability, but complexity. It's not a matter of how many options are there, but how those options are presented. The main problem with human beings is not that they can't deal with large amounts of data, but that they can only deal with small pieces of a large data set at a given time.
This problem encompasses not just configuration, but all desktop GUIs (even OS X). The Windows/Menus/Icons/Pointer is just too complex. There are too many widgets, too many places to access functionality, too many places to display information. For those of you on Windows (I feel your pain) fire up Windows Media Player. The interface is a nightmare. It's even hard for me to use! There are at least six different locations where controls are located. Information is displayed in multiple locations. It's just a mess. Then fire up Word. There are dozens of icons that have absolutely no recognizable meaning. The problem reaches critical mass in a program like AutoCad (I'm an engineering major, so I have a vested interest in seeing this UI mess disposed of as soon as possible!) Dozens of icons, all similar looking. Context menus that have no relation to the object being clicked on. Weird interactions between the command-line, menus, and context menus.
This interface complexity hinders not only ease of use, but efficiency. Think of what happens when your PC starts using the swap file. It spends all it's time trashing the hard drive instead of doing real work. When a user is confronted with all the gidgets in modern UIs, their thought process and efficiency slows to a crawl.
To ease the interface mess, we need to rethink how humans interact with the GUI. A next-gen GUI would have the following features:
1) Little to no "widgetry" visible on-screen. The user should be able to concentrate on what he's working on, rather than be distracted by UI information. Think "vi" vs "MS Word."
2) One point of access to functionality. Like "vi's" command line or Houdini's keyboard-menus.
3) Succinct context menus. Context menus should have no more than a half a dozen entries, and should only function as shortcuts for functionality accessible from the "common access point."
4) No more windows. Overlapping windows are just confusing and require too much user intervention. A next gen GUI should be based on a full-screen application mechanism. For the relatively few times when more than one application needs to be visible at the same time, mechanisms need to be provided to facillitate this. This is an example of optimizing for the common case.
5) More use of tabs. Tabs are a surprisingly easy mechanism for users to pick up. Note that all the navigation menus on the web are a version of the essential "tab view" concept.
6) Larger UI elements. Since the UI would only show the elements absolutely necessary at the moment, UI elements could be large, which greatly speeds up pattern recognition in the human brain.
7) More use of color. Humans are remarkably sensitive to color coding, but for some odd reason, current GUIs only use color for asthetic purposes.
8) More use of text. The human brain is a language processing machine. Current GUIs rely far too much on metaphors and other elements that require user training, instead of just plainly telling users what's going on. Take menu entries. Instead of being short and cryptic, they should be detailed and explanatory. Who cares if that makes the menu bigger. Are you looking at something else while you're reading the menu?
9) Seperation of "background" tasks from "foreground" tasks. KDE is doing a great job of this with it's notification bar programs for noatun and kopete.
10) More powerful application management. The user shouldn't have to manually manage applications. Some intelligence should be applied to keep running applications easily accessible. For example, when I'm doing research papers, the "taskbar" concept just plain can't handle the explosion of application windows.
11) Global workflow enhancers. Many of the workflow enhancers found in high-end applications like Maya and Photoshop, like info-bars, undo-histories, etc, could easily be applied to applications in general. A consistent set of workflow enhancers would greatly help efficiency, while reducing the burden on application developers to write these systems.
The overall point of this concept is to streamline the computer/human interface. It reduces the dependence on metaphors, which is hard for users to inderstand, and allows them to interact more directly. An implementation of this concept probably would not be intuitive. (BTW, intuitiveness is a sham. Nothing is intuitive, except the three built-in human actions, sucking, grasping, and cuddling.) It would require a modicum of user training. But with the large numbers of locations where user training is available, such as workplaces and schools, along with the rising number of computer-educated sons/daughters/grandchildren/friends/etc, such training should be acessible. Most importantly, teh features of the system are such that a minimum number of concepts are required to understand the whole system. Once those concepts are understood, the user can proceed without further intervention.
A deep unwavering belief is a sure sign you're missing something...
Yes, keep it like Aqua.
The big Desktops out there Windows, Classic Mac, Aqua, KDE, Gnome - of them the only two IMHO that aren't configurable to the point a user gets in trouble are Classic Mac and Aqua.
Classic Mac is a little too static, I much prefer Aqua to anything else.
It's open to tweaking if the inner geek wants to tweak it, but for the normal user/student/professional it's just right. A user can fart around with things in the Dock to the point where they think they are really making themselves a custom computer and they don't crap up the desktop with icons.
They can't stretch out the Dock and make it take up the screen like one can with the Start bar in Windows, nor can they accidently click and move the mouse and have the bar magically go to a side or the top.
Apple did some...dumb things with Aqua as Jef Rankin has pointed out, but for the most part it's the least shitty Desktop out there.
Come on, guys, it's nice that Gnome and KDE bring a Windows/Macintosh-like desktop to Linux--lots of Windows refugees will be reasonably happy about that. It's also nice that some egregious usability problems, present in earlier desktops, have been fixed. But let's not pretend that there is anything fundamental being done here other than decent software engineering and avoidance of basic usability blunders.
To do substantially better, we will have to jettison the current straight-jacket of separate C/C++ applications and move to entirely new software architectures. And then, the distinction between "configurability" and "programming", between "user" and "programmer" will pretty much disappear.
Since when does "flexible and configurable" have to be "bloated and difficult to use"?
Here's a hint: Stop tossing us unnecessary crap like network configuration tools for Desktop Environment A, B, and C. Stop giving us "wizards".
I keep seeing the argument that we need to make all of this easy enough for your grandparents to use, usually citing Windows as a basis for comparison.
Bzzt. Keep friggin' dreaming. My grandparents and my aunt both use Windows, and they still can't figure even half of it out. It doesn't matter what version; people who aren't tuned in to computers are either going to get it or they won't. No amount of helping them along or gentle pushes is going to change that. If someone has the drive to learn, they will. Our job, as users and developers, is to try and keep things flexible and useable with a minimum number of casualties. So what if my 86 year old grandfather isn't using Linux? Concentrate on the people who've converted from Windows seeking a better alternative. Worry about your existing and long-time users. If you alienate these people, you've lost already, and by that time, your grandparents won't give a shit and neither will anyone else.
Some of you are probably thinking, "Yeah, right on!" Here's where i'll probably piss you off, if I haven't already (though I have a feeling many of you already think i'm rambling about nothing).
Desktops need to be attractive, at least to an extent. My thought is, if i'm going to be staring at something for hours on end, I don't want it to look like a remnant of a black plague victim. It doesn't have to look like some kind of weird coloring book gone awry (*cough*longhorn*cough), but it does have to look nice enough that i'm not gouging my eyes out. And really, is this so difficult to do without bogging down system resources? Think about it.
To keep things minimal but customizable, allow the user to change the colors, fonts, background, window borders; the basics, so to speak. Allow the use of gradients so things are a little easier on the eyes, and allow anti-aliasing control. A small bit of code will take care of transparency control for the applications menu, and the file manager and taskbar can be left to third-party applications and/or plugins. If you want to attract the more "non-geek" audience, offer up a package that has all of that stuff pre-built in as a bundle, so they don't have to do any footwork hunting for new capabilities.
And for chrissakes, stop with the ugly application interfaces. IRIX, Solaris, etc. are a good example of what i'm talking about, but there are *many* on Linux/BSD/etc. A lot of people could take a nod from some of the apps out there for QNX. Nice looking, but very clean, well-laid out, and uncluttered. In particular, I like phirc, but even if you don't like that specific look, I think it gets across what i'm talking about, if only a little. Better still, stop offering applications that are tied to ONE desktop. This whole "applications for Gnome" and "applications for KDE" thing is bullshit.
We've already got most of this with window managers like Blackbox, Fluxbox, Waimea, etc. In some cases, things are only halfway where they should be (in my eyes, anyway), in others, they fall very short. However, I still have to ask myself, with almost every desktop i've used, "what the hell was the developer thinking?"
I ask this even more with 99% of the applications i've used.
So perhaps the question shouldn't be about desktops being bloated so much as software in general, and the design problems that consistently plague them? Just a thought.
Personally, I couldn't stand GNOME 1.4. I didn't even give 2.0 a fair chance. But as soon as 2.2 came out I decided I'd give it a shot, and it's simply here to stay. I think the greatest feature is that there are no useless features. It's not the speed or flexibility that sucked me in, it's that everything "just works."
And I'm a computer geek. It's just that when I look at the default KDE desktop and the default GNOME desktop, I wonder to myself that anybody besides the "I use linux because I'm l33t" people actually says KDE is easy to use.
A more concrete example: Open up a Nautilus window and right-click on an icon of a folder. You'll see around 15 menu options, with spacing in sane places. Open up Konqueror and do the same, for the same folder. On my KDE installation, I get 25 options. "Open with Gwenview?" what the heck is that? Why would this show up on every folder?
Simply put, GNOME lets me do what I want, faster. If KDE has twice the configurability, it won't be able to let me do things as quickly. I agree that some people prefer configurability and some prefer simplicity (read: usability). So I choose GNOME. Don't try and convince me I made the wrong choice.
What I would like is the ability to place all my UI tweaks in a file so that when I install the OS on a new system I can just say "apply the UI tweaks in this file" and be done with it.