[plasma/plasma-workspace] /: Use TerminalService instead of TerminalApplication for default terminal
Nicolas Fella <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit a4a79fa1b4265a4a59562d3786cede405f7eae9c by Nicolas Fella.
Committed on 10/08/2026 at 21:46.
Pushed by nicolasfella into branch 'master'.
Use TerminalService instead of TerminalApplication for default terminal
TerminalService is based on the desktop file name, so it can take into account apps shipped as Flatpak
M +4 -2 libtaskmanager/tasktools.cpp
M +4 -2 shell/scripting/scriptengine_v1.cpp
https://invent.kde.org/plasma/plasma-workspace/-/commit/a4a79fa1b4265a4a59562d3786cede405f7eae9c
diff --git a/libtaskmanager/tasktools.cpp b/libtaskmanager/tasktools.cpp
index c14a9d693a..0b09a1c00c 100644
--- a/libtaskmanager/tasktools.cpp
+++ b/libtaskmanager/tasktools.cpp
@@ -496,8 +496,10 @@ QString defaultApplication(const QUrl &url)
return service ? service->storageId() : DefaultService::legacyBrowserExec();
} else if (application.compare(QLatin1String("terminal"), Qt::CaseInsensitive) == 0) {
KConfigGroup confGroup(KSharedConfig::openConfig(), u"General"_s);
-
- return confGroup.readPathEntry("TerminalApplication", KService::serviceByStorageId(QStringLiteral("konsole")) ? QStringLiteral("konsole") : QString());
+ const auto service = KService::serviceByStorageId(confGroup.readEntry("TerminalService", QStringLiteral("org.kde.konsole.desktop")));
+ if (service) {
+ return service->storageId();
+ }
} else if (application.compare(QLatin1String("filemanager"), Qt::CaseInsensitive) == 0) {
KService::Ptr service = KApplicationTrader::preferredService(QStringLiteral("inode/directory"));
diff --git a/shell/scripting/scriptengine_v1.cpp b/shell/scripting/scriptengine_v1.cpp
index 55a97100ab..e6d9bc88cc 100644
--- a/shell/scripting/scriptengine_v1.cpp
+++ b/shell/scripting/scriptengine_v1.cpp
@@ -647,8 +647,10 @@ QJSValue ScriptEngine::V1::defaultApplication(const QString &application, bool s
return onlyExec(DefaultService::legacyBrowserExec());
} else if (matches(application, QLatin1String("terminal"))) {
KConfigGroup confGroup(KSharedConfig::openConfig(), u"General"_s);
- return onlyExec(confGroup.readPathEntry("TerminalApplication", QStringLiteral("konsole")));
-
+ const auto service = KService::serviceByStorageId(confGroup.readEntry("TerminalService", QStringLiteral("org.kde.konsole.desktop")));
+ if (service) {
+ return storageId ? service->storageId() : onlyExec(service->exec());
+ }
} else if (matches(application, QLatin1String("filemanager"))) {
KService::Ptr service = KApplicationTrader::preferredService(QStringLiteral("inode/directory"));
if (service) {