1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-03 20:32:07 -04:00

launcher: add option to launch apps on dGPU by default

fixes #2027
This commit is contained in:
bbedward
2026-03-19 13:28:48 -04:00
parent 7f8b260560
commit 19c786c0be
2 changed files with 22 additions and 5 deletions

View File

@@ -41,6 +41,7 @@ FocusScope {
editCommentField.text = existing?.comment || "";
editEnvVarsField.text = existing?.envVars || "";
editExtraFlagsField.text = existing?.extraFlags || "";
editDgpuToggle.checked = existing?.launchOnDgpu || false;
editMode = true;
Qt.callLater(() => editNameField.forceActiveFocus());
}
@@ -64,6 +65,8 @@ FocusScope {
override.envVars = editEnvVarsField.text.trim();
if (editExtraFlagsField.text.trim())
override.extraFlags = editExtraFlagsField.text.trim();
if (editDgpuToggle.checked)
override.launchOnDgpu = true;
SessionData.setAppOverride(editAppId, override);
closeEditMode();
}
@@ -232,7 +235,7 @@ FocusScope {
return;
case Qt.Key_Backtab:
if (hasCtrl && actionPanel.expanded) {
const reverse = true
const reverse = true;
actionPanel.expanded ? actionPanel.cycleAction(reverse) : actionPanel.show();
return;
}
@@ -578,7 +581,6 @@ FocusScope {
}
}
}
}
Item {
@@ -971,6 +973,15 @@ FocusScope {
keyNavigationBacktab: editEnvVarsField
}
}
DankToggle {
id: editDgpuToggle
width: parent.width
text: I18n.tr("Launch on dGPU by default")
visible: SessionService.nvidiaCommand.length > 0
checked: false
onToggled: checked => editDgpuToggle.checked = checked
}
}
}

View File

@@ -211,12 +211,14 @@ Singleton {
function launchDesktopEntry(desktopEntry, useNvidia) {
let cmd = desktopEntry.command;
if (useNvidia && nvidiaCommand)
cmd = [nvidiaCommand].concat(cmd);
const appId = desktopEntry.id || desktopEntry.execString || desktopEntry.exec || "";
const override = SessionData.getAppOverride(appId);
const dgpu = useNvidia || (override?.launchOnDgpu && nvidiaCommand);
if (dgpu && nvidiaCommand)
cmd = [nvidiaCommand].concat(cmd);
if (override?.extraFlags) {
const extraArgs = override.extraFlags.trim().split(/\s+/).filter(arg => arg.length > 0);
cmd = cmd.concat(extraArgs);
@@ -265,7 +267,11 @@ Singleton {
function launchDesktopAction(desktopEntry, action, useNvidia) {
let cmd = action.command;
if (useNvidia && nvidiaCommand)
const appId = desktopEntry.id || desktopEntry.execString || desktopEntry.exec || "";
const override = SessionData.getAppOverride(appId);
const dgpu = useNvidia || (override?.launchOnDgpu && nvidiaCommand);
if (dgpu && nvidiaCommand)
cmd = [nvidiaCommand].concat(cmd);
const userPrefix = SettingsData.launchPrefix?.trim() || "";