Apps4For3
KDE4Apps for KDE 3
Status quo
Currently we don't use the KDE 4 native desktop files, but instead create a wrapper script for the binary and an adapted desktop file to be used in KDE 3 AND KDE 4.
Issues
For KDE 4 this causes quite some troubles, of which most (maybe even all) are caused by by the wrapper script. The most prominent issue is appearing all over the desktop when launching a KDE 4 appliction based on the desktop file (hence use the wrapper script) and not using the actual binary name (which would use the KDE 4 native binary) -> a desktopfile indicates that the application would give some kind of feedback, this is not the case for our scripts, so they cause a pointless dbus message telling the user, that the application didn't start even though it did. The probably most annoying appearance of this issue is in Dolphin -> when one clicks a file to launch a KDE 4 application (e.g. Kate) Dolphin will sometimes totally lock up until you close the app again, and then it will show an error message as stated above.
Example paths
KDE 3 desktop file (detected by 3 + 4)
- /usr/share/applications/kde/kate.desktop
KDE 443 desktop file (detected by 3 + 4 )
- /usr/share/applications/kde4-kate.desktop
KDE 4 desktop file (would, if it gets installed only be detected by KDE 4)
- /usr/lib/kde4/share/applications/kde4/kate.desktop
Solution
The most accurate solution for these issue(s) would be to have KDE 4 use it's own desktop files and store the wrapper desktop files in a seperate search path for KDE 3, so they don't get used in KDE 4 at all. At first thought a seperate path and a changed XDG variable would be a good possability, but this requires (yet another) patch to KDE 3, hence not good. Before freedesktop.org KDE has used it's own menu spec, where the menu files were stored in $KDEDIR/applnk, this path isn't used ever since we require all our packages to store the desktop file in the the XDG default path, still KDE 3 (and 4) is able to use desktop files stored in this directory, so we can just abuse applnk for our KDE 4 wrapper structure.
More paths
- We keep the KDE 3 stuff as it is
- /usr/share/applications/kde/kate.desktop
- We store the KDE 443 wrapper desktop file in the applnk directory
- /usr/applnk/kde4-kate.desktop
- We install the KDE 4 desktop file as well (to be used in KDE 4 only)
- /usr/lib/kde4/share/applications/kde4/kate.desktop
Downside
To be honest, there is one downside about this - the KDE 4 desktop file will always override it's KDE 3 predecessor (/usr/applications/kde) in a KDE 4 desktop session - why this is not changing all that much and actually brings an improvement to the current situation is described on the HaraldSitter/KdeFour/Apps3For4 page.
HaraldSitter/KdeFour/Apps4For3 (last edited 2008-08-06 16:24:51 by localhost)