mirror of
https://github.com/zoriya/noctalia-shell.git
synced 2026-08-15 18:43:59 +00:00
feat(launcher): add configurable terminal command
The terminal command for launching applications was previously hardcoded to 'kitty', causing issues for users without it installed. This change introduces a new setting, 'appLauncher.terminalCommand', allowing users to specify their preferred terminal emulator. The default value is set to 'xterm -e'. The implementation includes: - Defining the setting in 'Commons/Settings.qml'. - Adding a text input in the launcher settings tab. - Updating the application plugin to use the new setting.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"settings": {
|
||||
"general": {
|
||||
"title": "General",
|
||||
|
||||
|
||||
"profile": {
|
||||
"section": {
|
||||
"label": "Profile",
|
||||
@@ -307,6 +307,10 @@
|
||||
"use-app2unit": {
|
||||
"label": "Use App2Unit to launch applications",
|
||||
"description": "Uses an alternative launch method to better manage app processes and prevent issues."
|
||||
},
|
||||
"terminal-command": {
|
||||
"label": "Terminal command",
|
||||
"description": "Command to launch a terminal. E.g., 'kitty -e' or 'gnome-terminal --'."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1073,7 +1077,7 @@
|
||||
"enter-width-pixels": "Enter width in pixels",
|
||||
"enter-command": "Enter command to execute (app or custom script)",
|
||||
"command-example": "echo \"Hello World\"",
|
||||
|
||||
|
||||
"search-wallpapers": "Type to filter wallpapers...",
|
||||
"search-launcher": "Search entries... or use > for commands",
|
||||
"search": "Search...",
|
||||
@@ -1174,7 +1178,7 @@
|
||||
"lock-subtitle": "Lock your session",
|
||||
"end-subtitle": "End your session",
|
||||
"lock": "Lock",
|
||||
"suspend": "Suspend",
|
||||
"suspend": "Suspend",
|
||||
"reboot": "Reboot",
|
||||
"logout": "Logout",
|
||||
"shutdown": "Shutdown"
|
||||
@@ -1291,7 +1295,7 @@
|
||||
},
|
||||
"weather": {
|
||||
"clear-sky": "Clear sky",
|
||||
"mainly-clear": "Mainly clear",
|
||||
"mainly-clear": "Mainly clear",
|
||||
"partly-cloudy": "Partly cloudy",
|
||||
"overcast": "Overcast",
|
||||
"fog": "Fog",
|
||||
@@ -1301,7 +1305,7 @@
|
||||
"thunderstorm": "Thunderstorm",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
|
||||
|
||||
"authentication": {
|
||||
"failed": "Authentication failed",
|
||||
"error": "Authentication error"
|
||||
|
||||
@@ -109,7 +109,8 @@
|
||||
"backgroundOpacity": 1,
|
||||
"pinnedExecs": [],
|
||||
"useApp2Unit": false,
|
||||
"sortByMostUsed": true
|
||||
"sortByMostUsed": true,
|
||||
"terminalCommand": "xterm -e"
|
||||
},
|
||||
"dock": {
|
||||
"autoHide": false,
|
||||
|
||||
@@ -225,6 +225,7 @@ Singleton {
|
||||
property list<string> pinnedExecs: []
|
||||
property bool useApp2Unit: false
|
||||
property bool sortByMostUsed: true
|
||||
property string terminalCommand: "xterm -e"
|
||||
}
|
||||
|
||||
// dock
|
||||
|
||||
@@ -142,7 +142,8 @@ Item {
|
||||
if (app.runInTerminal) {
|
||||
// If app.execute() fails for terminal apps, we handle it manually.
|
||||
Logger.log("ApplicationsPlugin", "Executing terminal app manually: " + app.name)
|
||||
const command = ["kitty", "-e"].concat(app.command)
|
||||
const terminal = Settings.data.appLauncher.terminalCommand.split(" ")
|
||||
const command = terminal.concat(app.command)
|
||||
Quickshell.execDetached(command)
|
||||
} else if (app.execute) {
|
||||
// Default execution for GUI apps
|
||||
|
||||
@@ -99,6 +99,16 @@ ColumnLayout {
|
||||
onToggled: checked => Settings.data.appLauncher.useApp2Unit = checked
|
||||
}
|
||||
|
||||
NTextInput {
|
||||
label: I18n.tr("settings.launcher.settings.terminal-command.label")
|
||||
description: I18n.tr("settings.launcher.settings.terminal-command.description")
|
||||
Layout.fillWidth: true
|
||||
text: Settings.data.appLauncher.terminalCommand
|
||||
onEditingFinished: {
|
||||
Settings.data.appLauncher.terminalCommand = text
|
||||
}
|
||||
}
|
||||
|
||||
NDivider {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: Style.marginXL * scaling
|
||||
|
||||
Reference in New Issue
Block a user