IMPORTANT: VFolder-based KDE menus

Waldo Bastian bastian at
Fri Feb 28 00:16:55 GMT 2003

If you release an application from CVS HEAD for KDE 3.1 or older, make 
sure that any .desktop files that are supposed to appear in the KDE 
menu are being installed somewhere under $(kde_appsdir) and not under 
the newly introduced $(xdg_appsdir). That might mean that you have to 
revert the commit where I changed it to use $(xdg_appsdir). 
You can also drop me a mail and I will revert it for you.

You do not need to revert any changes to the .desktop files themselves, 
only the change is important.

(End of the important part)

Introduction of VFolder-based KDE menus

I'm happy to announce the introduction of the VFolder based KDE menu in CVS 
HEAD. For a long time the KDE menu structure was determined by the directory 
structure under the $KDEDIR/share/applnk directory. The VFolder based KDE 
menu introduces a new concept: .desktop files now describe themselves by 
including a number of categories that are applicable to the application, the 
KDE menu is then build by filling sub-menus with .desktop entries whose 
categories meet certain criteria.

A full description/specification of this process can be found on


The advantages of this new concept are the following:
* Uses less directories which makes it easier to autodetect changes.
* Makes it easy to replace the KDE menu with a complete custom menu.
* Allows for an easier menu-editing implementation.

Another important aspect is that this spec will be implemented by GNOME and 
hopefully others as well. This will bring the additional benefits of:
* Single method for ISVs/independent developers to install their application
in start menu, regardless of desktop environment.
* (User) changes to menu-structure can be preserved when switching desktop 
* Allows distributors to define a single menu-structure regardless of
desktop environment.

Backwards compatibility

Greate care has been given to preserve full backwards compatibility with 
existing installations.

Things you need to know

As KDE developer you need to know a few things:

- Your .desktop file should contain a "Categories=" entry describing you app. 
This entry should contain at least "Qt" and "KDE". For a list of standard 
categories see the specification on For KDE we will most 
likely add a few KDE specific categories. One of those categories is the
X-KDE-More category, which indicates that the application is not of primary 
importance. If you are unable to find appropriate categories for your 
application, please post to this list.

- If your application is going to be released for use with KDE 3.2 or newer 
only, it is adviced that you install your menu .desktop file to $xdg_appsdir 
instead of $kde_appsdir/Some/Submenu. Typically it is enough to add 
xdg_apps_DATA = yourdesktopfile.desktop

You mustn't do this if your application is supposed to be used with KDE 3.1 
or older, because these versions of KDE will not look in $xdg_appsdir. 

Make sure that your doesn't redefine "datadir". $xdg_appsdir is
expressed in terms of $datadir, redefining $datadir will break it.

Things you need to know II

- KMenuEdit still needs updating. It will most likely not work now.
- Make errors involving xdg_apps_DATA or xdg_appsdir can be resolved by 
updating your admin directory and rerunning make -f Makefile.cvs; ./configure
- Please report any problems that you experience to me. There are without 
doubt many bugs left that still need fixing.

bastian at -=|[ SuSE, The Linux Desktop Experts ]|=- bastian at

More information about the kde-core-devel mailing list