diff --git a/Modules/Launcher/Plugins/ApplicationsPlugin.qml b/Modules/Launcher/Plugins/ApplicationsPlugin.qml index 9fb8cba9..043bc52b 100644 --- a/Modules/Launcher/Plugins/ApplicationsPlugin.qml +++ b/Modules/Launcher/Plugins/ApplicationsPlugin.qml @@ -203,15 +203,22 @@ Item { if (Settings.data.appLauncher.sortByMostUsed) recordUsage(app) if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix) { + // Use custom launch prefix const prefix = Settings.data.appLauncher.customLaunchPrefix.split(" ") if (app.runInTerminal) { - const command = prefix.concat([app.id + ".desktop"]) - Logger.d("ApplicationsPlugin", "Launching via custom prefix (with desktop id): " + command.join(" ")) + // For terminal apps, use the app command directly + const command = prefix.concat(app.command) + Quickshell.execDetached(command) + } else if (app.id) { + // For GUI apps, try to use the app name/executable name instead of desktop file + // This works better with commands like "niri msg action spawn --" + const appName = app.executableName || app.name.toLowerCase().replace(/\s+/g, '-') + const command = prefix.concat([appName]) Quickshell.execDetached(command) } else { + // Fallback to direct command execution const command = prefix.concat(app.command) - Logger.d("ApplicationsPlugin", "Launching via custom prefix (with command): " + command.join(" ")) Quickshell.execDetached(command) } } else if (Settings.data.appLauncher.useApp2Unit && app.id) {