diff --git a/shell/dbus/org.kde.PlasmaShell.xml b/shell/dbus/org.kde.PlasmaShell.xml
--- a/shell/dbus/org.kde.PlasmaShell.xml
+++ b/shell/dbus/org.kde.PlasmaShell.xml
@@ -21,5 +21,7 @@
+
+
diff --git a/shell/shellcorona.h b/shell/shellcorona.h
--- a/shell/shellcorona.h
+++ b/shell/shellcorona.h
@@ -143,6 +143,7 @@
void loadKWinScriptInInteractiveConsole(const QString &script);
void toggleActivityManager();
void evaluateScript(const QString &string);
+ void activateLauncherMenu();
Plasma::Containment *addPanel(const QString &plugin);
diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp
--- a/shell/shellcorona.cpp
+++ b/shell/shellcorona.cpp
@@ -1635,6 +1635,22 @@
}
}
+
+void ShellCorona::activateLauncherMenu()
+{
+ for (auto it = m_panelViews.constBegin(), end = m_panelViews.constEnd(); it != end; ++it) {
+ const auto applets = it.key()->applets();
+ for (auto applet : applets) {
+ if (applet->pluginInfo().property("X-Plasma-Provides").toStringList().contains(QStringLiteral("org.kde.plasma.launchermenu"))) {
+ if (!applet->globalShortcut().isEmpty()) {
+ emit applet->activated();
+ return;
+ }
+ }
+ }
+ }
+}
+
// Desktop corona handler