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)