diff --git a/runners/services/servicerunner.cpp b/runners/services/servicerunner.cpp --- a/runners/services/servicerunner.cpp +++ b/runners/services/servicerunner.cpp @@ -294,7 +294,11 @@ qCDebug(RUNNER_SERVICES) << service->name() << "is this relevant:" << relevance; match.setRelevance(relevance); if (service->serviceTypes().contains(QLatin1String("KCModule"))) { - match.setMatchCategory(i18n("System Settings")); + if (service->parentApp() == QStringLiteral("kinfocenter")) { + match.setMatchCategory(i18n("System Information")); + } else { + match.setMatchCategory(i18n("System Settings")); + } } matches << match; } @@ -458,6 +462,17 @@ const QString actionName = QUrlQuery(dataUrl).queryItemValue(QStringLiteral("action")); if (actionName.isEmpty()) { + // We want to load kcms directly with systemsettings, + // but we can't completely replace kcmshell with systemsettings + // as we need to be able to load kcms without plasma and we can't + // implement all kcmshell features into systemsettings + if (service->serviceTypes().contains(QLatin1String("KCModule"))) { + if (service->parentApp() == QStringLiteral("kinfocenter")) { + service->setExec(QStringLiteral("kinfocenter ") + service->desktopEntryName()); + } else { + service->setExec(QStringLiteral("systemsettings5 ") + service->desktopEntryName()); + } + } job = new KIO::ApplicationLauncherJob(service); } else { const auto actions = service->actions();