Monday, January 09, 2006

The Grand-plan for KDE4...

...Or should I say "What KDE4 would look like if I were the one calling all the shots" (I'm not, I'm just an enthusiastic user).

I have stated bits and pieces of my "ideal KDE4" here and there, but I have no focused message what I would like to see in KDE4. This post is an attempt to fix that. Let's begin.

Applications vs. Content

We don't use applications for the sake of using applications. We have a clear purpose why we use them. We use Kate to write/edit text. We use Amarok to listen to music. We use Konqueror to manage files and to surf the web. And so forth. Yet, for some reason, just about ALL GUI's out there focus on the applications, and not on the content you use with those apps. And it's the content that we REALLY use, not the applications. Applications are just tools we use for those tasks. Yet, GUI's are about those tools, and not about the end-result.

How would I like to see this "content-centric" approach be reflected in KDE4? Here's some things:

- Replace the Kmenu (application-menu) with Content-menu. Instead of listing applications, Content-menu (C-menu for short) would list content. Kmenu categorises applications in to categories (Internet, Multimedia and so forth). C-menu would do that as well. There could be categories like "Music", "Video", "Documents", "Email", "Bookmarks" and so forth. All the users content would be categorised there, with a help of metadata. Music could be categorised by artist and by album, video could be categories by tv-show and by season and episode. And so forth. So, instead of expecting the user to first select an app to use, and then use that app to select the content he wants, the user would simply select the content, and the correct app would be loaded. The number of required steps would be dropped from 2 to 1.

- Implement something like my Desktop is The Application-plasmoid. Basically, instead of expecting the user to load Kontact in order to write email, he could simply type the address of the recipient right on the desktop, and he could type and send the message without leaving the desktop at all. Instead of firing up Konqueror to surf the web, the user could simply type an URL, and the contents of that URL would be displayed right on the desktop. There are many everyday things that could be carried out in this way. However, the full-blown apps would still be there.

- Besides filemanager, offer a content-manager as well. Note :Filemanager and content-manager could be a same application.

- Make the content the focal point of the application. Instead of wasting lots of space for toolbars, menubars, frames and the like, focus on the content. Take a look at the Konqueror-mockups here (EDIT: kde-artists is in a transitional-phase right now, so that link doesn't work). As you see, the windows titlebar has been merged with the menubar. That means that a bit of screen-space has been saved, with no real drawbacks when it comes to functionality. Yes, resolutions are going up. But that's not a valid excuse to waste space on the screen.

Busyness vs. Serenity

I want the GUI to be serene right from the start. What do I mean by this?

- No blinking and flashing icons. Why do we have blinking icons in the splash-screen? Why not make the process of starting KDE a nice and smooth process, with fade-ins and fade-outs, and with NO flashing icons.

- No popups. Things that pop up are bad karma, mmmkay? And that includes stuff like dialog-boxes. Instead of dialog-boxes, we should try to figure out ways to present that information in a different manner. what about having an area in the desktop that has a purpose of displaying such information to the user, instead of presenting the user with a disruptive window that pops up? Such popups make me think that the computer is shouting at me "hey! I'm the computer and I demand your attention NOW! That thing you were doing 5 seconds ago? Stop it, because I need your attention over here!".

- Why do we have all those frames and borders in the GUI right now? Take a look at the content-area in Konqueror for example. Why has it been framed? It's just another distracting UI-element that simply doesn't serve any kind of purpose. When designing the UI and the individual UI-elements, the developers should ask themselves "what purpose does this serve? Why do we need this here?". If the developer can't come up with a decent answer, the element in question should be dropped, period. Less is more.

Make the core rock-solid

The title is a bit misleading, but still. Instead of having dozens of average apps, have only a handful of apps, and make sure that those apps are the best-of-breed. Kind of apps that people WANT to use them, that users would choose them over any alternative. Instead of shipping tons of stuff that may or may not work properly, focus on handful of core apps and make sure that they absolutely, positively kick ass. What apps would I include in "core-KDE"?

- File/Content-manager. This obviously means Konqueror (or it's successor)- Web-browser. Again: Konqueror.- PIM. Currently this is handled by Kmail/Kontact- Text-editor. Currently this is handled by Kate. Note: I said "Text-editor", not "Text-editor[b]s[/b]"- Video-playback. An app meant to play back video. Codeine is a good candidate- Music-playback. Juk or Amarok would serve us well.- CD/DVD-burning. K3B currently. Although I would like to see 100% transparent CD-burning inside Konqueror- Terminal. Yes, even with our fancy GUI's, we still need a terminal. Currently this is handled by Konsole, but I have fallen in love with Yakuake recently.- Viewer-application. Okular, for example.- IM. Currently, Kopete handles this

That's ten apps (more, if you count Kontact as separate apps). And IMO, that's enough (I'm not including stuff like config-tools, klipper or system guard here). Those apps lets ordinary users get their jobs done, while not overloading the system. Do we need more? Really?

But what about all the other stuff? KStars? Kdevelop? Quanta? Games? Edutainment? They would still be available. They could have independent release-schedules (like Koffice does today), but they wouldn't ship with default KDE. This would enable KDE to have the same collection of great apps, while keeping the core-KDE lean 'n mean, and above all, manageable. And the users would be absolutely certain that when they get new KDE on their machine, they would get absolutely best-of-breed apps with it. It would make KDE-releases easier since there would be less apps to keep an eye on. And it would improve the impression on KDE when 100% of the stuff that ships with KDE are quaranteed to be absolutely kick-ass. Note: this is not meant as a hint that some of the "non-Core" stuff sucks. Rather, it's easier to make sure that dozen or so apps kick ass than to make sure that three dozen apps kick ass. I think that this change would mean that the quality of the "core-KDE" would go up. And the "non-Core"-apps would benefit when they wouldn't have to be tied to KDE's release-schedules.

I can't help but feel that there are quite a few of obscure (or not so obscure) apps inside KDE that receive very little attention, and they just move from one version to other, with little or no improvements made to them.

Yes yes, I know the counterargument: "The user could simply choose to install handful of apps instead of lots of apps". Well, that means two things basically:

- That the user knows what each app does and he has enough information to choose between them

- That the user has to spend time and energy pruning away the apps he doesn't need.

There's another counter-argument as well: "The distributor could choose the apps for him". Why place that burden on the distributor?

Please, make it not suck

There are many things in KDE that suck currently. I love KDE and use it every day, but I'm not afraid to admit that fact. Yes, we all want KDE4 to kick ass and take names, but before that, let's make sure that it doesn't suck. What am I talking about? Simple: Make sure the little things work. By this I mean stuff like window-sizes, visual glitches and the like.

Window-sizes mean cases where the default size of the window is too small to display the default content of the window in question. If the window simply displays so much information that it can't be displayed without scrolling around, developers should REALLY think about adjusting the UI!

Other example of this are those cases where the window doesn't really display that much information, but for some reason the default size of the window is too small to show that information. One example of this is the dialog-box you get when you compress some files in Konqueror. You get a window that SHOULD say "Compressing" in the titlebar, but for some reason the window was made so small that it only says "Compr....". There is no real reason to make the window so small, so I guess it was simply a design-oversight. But, these kinds of things should not happen.

What about those "visual glitches"? Example: Last weekend I discovered the joys of transparent Kicker. I set up my Kicker the way I wanted it to be. But I noticed that as I highlighted the quick-launch buttons I had in the Kicker with the cursor, they occasionally flashed the original (non-transparent) background behind the icons. Things like that should not happen. If they do happen, the feature in question should not be implemented. Handful of features that are rock-solid is better than assload of features that work so-so.

Related to transparent Kicker: The text in the taskbar is black by default. How do I change the color to be something a bit more readable (on my machine, black text on transparent Kicker is a bit hard to read)? I did find the place to change the color of the fonts, but I was afraid that that would change the color of the fonts everywhere, and I only wanted to change the color on the taskbar.

Another example: KDE finally got a cool-looking rubberband. Instead of simply painting the outlines of the rubberband, it's actually a transparent box (I don't know how to explain it, so here is an example from GNOME). But, for some reason, on my machine that cool-looking rubberband is slow as molasses! It stutters and it crawls. Using it is not enjoyable. Now, I don't know that is that an issue with my machine, issue with Kubuntu on issue with KDE. But if it's an issue with KDE, then think that such feature should not have been implemented untill it works properly. If it's a Kubuntu-issue, then it's (almost) equally as sad, since Kubuntu is supposed to be a "polished" distro.

These are all small things that should be working out of the box. But for some reason, they are not. It's very easy to have some big plans, and then forget to make sure that the little things work properly. But it's those little things that the users bumb in to all the time. And usually those little things are pretty yeasy to fix. How long does it take to change the default size of a window in KDE? 10 seconds?

In short: polish, polish, polish and a bit more polish. And when you think you have polished enough, take another look at the desktop, and do so with a critical eye. Assume from the start that "this thing sucks". Try to justify the existence of certain UI-elements and gizmos. If you can't do it, drop it.

1 Comments:

the last problems you mention, about the rubberband and the resizing of windows, both are more issues with your videodriver settings. for example, with nvidia, having the option 'render' 'true' is crucial.

also, the rubberband patch is NOT official from KDE. i don't remember who wrote it, but its used by most distributions for KDE.