Use the correct app_id when pre-authorizing remote-desktop portal access. The portal's isAppMegaAuthorized() looks up the caller's specific app_id in the PermissionStore. An empty string only matches apps the portal cannot identify; it is not a wildcard. Since the input handler is launched via KIO::CommandLauncherJob with a desktopName, the portal resolves it to the desktop file ID, so the empty-string entry never matches. --- a/inputhandler/xdgremotedesktopsystem.cpp +++ b/inputhandler/xdgremotedesktopsystem.cpp @@ -66,7 +67,7 @@ QDBusReply reply = permissionStore.call(QStringLiteral("SetPermission"), QStringLiteral("kde-authorized"), // table true, // create table if not exists QStringLiteral("remote-desktop"), // id - QLatin1String(""), // app (empty for host applications) + QStringLiteral("org.kde.plasma.bigscreen.inputhandler"), QStringList{QStringLiteral("yes")}); // permissions