On Naming of KDE Applications

Lately I got involved in a longish discussion on IRC around application names and how to present them. A prominent spot is of course the K-Menu, but there are others: the title and task bar, the documentation, the about box, and various context menus (as in "Open with ....").

At some point in time, KDE used to only show application names, and some generic names for operations like "Find Files", "Run Command", etc. When we got more and more applications, those menus became very cryptic. This has to do with the way we picked application names. Essentially we created executable names by abbreviating what the program was supposed to do, and then added the k prefix. Then we took the executable name, upper-cased the first letter of every part, and so deducted the application name. A typical but not uncommon example is "KRegExpEditor".

Since users were not too comfortable with names that looked like C++ classes, we added the concept of a generic name, in our UI referred to as description. For the K-Menu today, we offer the user three choices: "Name", "Name (Description)", and "Description (Name)".

To pick a real example, you can choose between "KWifiManager", "KWifiManager (Wireless Lan Manager)", or "Wireless Lan Manager (KWifiManager)".

SuSE goes further. They have a menu system that shows only the description as long as only one application of its kind is installed. The moment you install a second application, this description turns into a submenu which contains the "Name (Description)" entry shown before.

Example: normally you have an entry "Chat" under "Internet". If you click on it, it will run kopete. If you don't like kopete as IRC client, you install ksirc as well. This turns "Chat" into a submenu with two entries "IRC client (KSirc)" and "Instant Messenger (Kopete)".

So what's the problem?

I see two problems with our current approach. First, the menus are not very readable. Second, the generic names prevent us from picking really good descriptive names. Have a look at the following two screenshots to see what I mean:

Generic names are not a solution, they are are a hack around bad application names. Ironically they also make good looking, descriptive names look bad, because those are likely to duplicate elements of the generic name, thus when presented together with the generic name, the menu item looks even worse. And when you launch an application with the generic name only, how do you recognize the window in the taskbar (it shows the name), or talk about the application, or look it up in the documentation? And when you install a different set of applications (e.g. because you want to try out the other desktop), you have several applications with the same name. Under Multimedia/CD/DVD Burning you will get two applications that claim to do the job, none of which is marked to be the KDE application. The only hint is the "(k3b)" suffix.

For those interested in further reading, here's a discussion on the the use of generic names from last year

and an interesting response dubbed "Generic Names Considered Harmful"

So what's the solution?

The initial problem was bad names. We tried to solve it by introducing generic names that potentially apply to many applications. What if we fix the root of the evil instead and give our applications good descriptive names? This is something all application maintainers have to contribute to, we can't just have someone going through the repository and renaming things.

What's a good descriptive name? A combination of the name and the function of an application. Why is this supposed to be better than "Description (Name)"? Because it will be shown and used everywhere where the application is referred to, it's better readable (no parentheses), and it avoids the duplication between description and name that we see so often nowadays.

Here are some examples, they might not be perfect, but they can give you an idea:

Web Browser (Konqueror) => Konqueror Web Browser
PalmPilot Tool (KPilot) => KDE Palm Pilot Tool
Popup Notes (KNotes) => KDE Popup Notes
HTML Image Map Editor (KImageMapEditor) => KDE Image Map Editor
IRC Client (KSirc) => KDE IRC Client
Instant Messenger (Kopete) => Kopete Instant Messenger
KDevelop => KDevelop IDE
CVS Fontend (Cervisia) => Cervisia CVS Frontend
Personal Information Manager (Kontact) => Kontact Personal Information Suite
CD/DVD Burning (K3b) => K3B CD/DVD Burning
Sound Mixer (KMix) => KDE Sound Mixer

and so on.

We would end up with many KDE-prefixed names, and that's OK. If you show those applications inside Gnome or XFCE, you probably want to see what is a KDE application and what is not. In KDE itself, we don't have to show the KDE prefix, we could just drop it, or indicate it with an icon or the kind of icon that the application gets. If we happen to have more than one application that fights for the same "KDE Foo" name, we will have means to solve that conflict, like we solve other conflicts in the KDE community. Judging from going briefly through the list of applications we have today, there won't be too many conflicts.


Please, let us get rid of parentheses in menus, and please give your KDE applications descriptive names.

Blog Topics: