KDE Applications/Cross Platform Issues

From KDE Community Wiki

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.

Semantic Search

Apps shouldn't assume Baloo is available or running on any other platform and should gracefully degrade features. We may need abstraction for native search engines?

KIO

Should not be installed or relied upon on non-Linux platforms.

Icon Sets

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

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

Spelling dictionaries face the same issues and potential solutions as Translations, but are less commonly used.

System Settings

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 (Gnome, etc) and platforms (Windows, Mac). 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.

Update Notification

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.

Icons on buttons

We should automatically default to the native platform preference.