safeguard custom commands from trailing whitespaces

This commit is contained in:
notiant
2026-04-20 01:16:40 +02:00
committed by GitHub
parent b8781aef49
commit 5f7d56d865
5 changed files with 22 additions and 23 deletions
+6 -6
View File
@@ -413,12 +413,12 @@ Item {
try {
const app = DesktopEntries.byId(appId);
if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix) {
if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix.trim() !== "") {
// Use custom launch prefix
const prefix = Settings.data.appLauncher.customLaunchPrefix.split(" ");
const prefix = Settings.data.appLauncher.customLaunchPrefix.trim().split(" ");
if (app.runInTerminal) {
const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = prefix.concat(terminal.concat(app.command));
Quickshell.execDetached(command);
} else {
@@ -426,9 +426,9 @@ Item {
Quickshell.execDetached(command);
}
} else {
if (app.runInTerminal) {
if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
Logger.d("Taskbar", "Executing terminal app manually: " + app.name);
const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = terminal.concat(app.command);
CompositorService.spawn(command);
} else if (app.command && app.command.length > 0) {
+6 -6
View File
@@ -145,11 +145,11 @@ Item {
return;
}
if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix) {
const prefix = Settings.data.appLauncher.customLaunchPrefix.split(" ");
if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix.trim() !== "") {
const prefix = Settings.data.appLauncher.customLaunchPrefix.trim().split(" ");
if (app.runInTerminal) {
const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = prefix.concat(terminal.concat(app.command));
Quickshell.execDetached(command);
} else {
@@ -157,9 +157,9 @@ Item {
Quickshell.execDetached(command);
}
} else {
if (app.runInTerminal) {
if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
Logger.d("Dock", "Executing terminal app manually: " + app.name);
const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = terminal.concat(app.command);
CompositorService.spawn(command);
} else if (app.command && app.command.length > 0) {
@@ -553,13 +553,13 @@ Item {
return;
}
if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix) {
if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix.trim() !== "") {
// Use custom launch prefix
const prefix = Settings.data.appLauncher.customLaunchPrefix.split(" ");
Logger.d("ApplicationsProvider", `Using custom launch prefix: ${Settings.data.appLauncher.customLaunchPrefix}`);
const prefix = Settings.data.appLauncher.customLaunchPrefix.trim().split(" ");
Logger.d("ApplicationsProvider", `Using custom launch prefix: ${Settings.data.appLauncher.customLaunchPrefix.trim()}`);
if (app.runInTerminal) {
const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = prefix.concat(terminal.concat(app.command));
Logger.d("ApplicationsProvider", `Executing command (with prefix and terminal): ${command.join(" ")}`);
Quickshell.execDetached(command);
@@ -569,9 +569,9 @@ Item {
Quickshell.execDetached(command);
}
} else {
if (app.runInTerminal) {
if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
Logger.d("ApplicationsProvider", "Executing terminal app manually: " + app.name);
const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = terminal.concat(app.command);
Logger.d("ApplicationsProvider", "Executing command (manual terminal): " + command.join(" "));
CompositorService.spawn(command);
@@ -385,12 +385,12 @@ Item {
var actions = [];
// Annotation tool for images
if (item.isImage && Settings.data.appLauncher.screenshotAnnotationTool !== "") {
if (item.isImage && Settings.data.appLauncher.screenshotAnnotationTool.trim() !== "") {
actions.push({
"icon": "pencil",
"tooltip": I18n.tr("tooltips.open-annotation-tool"),
"action": function () {
var tool = Settings.data.appLauncher.screenshotAnnotationTool;
var tool = Settings.data.appLauncher.screenshotAnnotationTool.trim();
Quickshell.execDetached(["sh", "-c", "cliphist decode " + item.clipboardId + " | " + tool]);
if (launcher)
launcher.close();
@@ -15,8 +15,7 @@ ColumnLayout {
description: I18n.tr("panels.launcher.settings-terminal-command-description")
Layout.fillWidth: true
text: Settings.data.appLauncher.terminalCommand
onTextChanged: {
Settings.data.appLauncher.terminalCommand = text;
onTextChanged: Settings.data.appLauncher.terminalCommand = text
}
}