KDE Applications/Cross Platform Issues
This page summarises issues with running KDE applications on non-Linux platforms and proposed solutions.
On Linux we have package mangers to install many extras that applications require, or have daemons running to provide services. We cannot rely on these existing on other platforms
DBUS, Systemd and Other Daemons
Installing and running non-native daemons and services is often difficult on other platforms and may require elevated privileges. Applications should avoid directly accessing such daemons and instead use shared abstraction APIs.
The full FDO standard icon themes are far to large to ship with every download, especially Oxygen. Apps may need to reduce the icons included in their packages to just those icons they need. A common tool is probably needed to determine this.
Translation files are normally installed via the package manager. On other platforms they must either all be included in the initial install (unnecessary bloat), be available as an extra installer download (not very user friendly), downloaded dynamically by the installer, or made available via GHNS.
Spelling dictionaries face the same issues and potential solutions as Translations, but are less commonly used.
A number of shared libraries and services may need configuring by the user. On Plasma we have System Settings to access the required KCMs, but this is not recommended for other desktops and platforms. Any extra KCMs needed by an application must be included in their own config dialog or made accessible via a separate menu item. This should be a run-time determination based on whether the app is running under Plasma or not. A common way for doing this should be determined.
We need at minimum a mechanism to notify Apps on non-Linux platforms that an update is available for download. Some platforms may offer a native option for updates depending on how the apps were distributed in the first place. An advanced option may be to have a KDE updater, like Apple, Adobe and Google have for Windows.
TODO: Investigate what options Qt offers.