From acd82589e29eac02a99cab0ed8e43128c9876539 Mon Sep 17 00:00:00 2001 From: bbedward Date: Fri, 7 Aug 2026 18:56:59 -0400 Subject: [PATCH] fix(displays): auto-select restores named profiles matching the connected output set fixes #3012 port 1.5 (cherry picked from commit f16bdda969d1d374bb7e78ff3c2cea76e1fe3060) --- .../DisplayConfig/DisplayConfigState.qml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/quickshell/Modules/Settings/DisplayConfig/DisplayConfigState.qml b/quickshell/Modules/Settings/DisplayConfig/DisplayConfigState.qml index 0c8945b39..a39de1d83 100644 --- a/quickshell/Modules/Settings/DisplayConfig/DisplayConfigState.qml +++ b/quickshell/Modules/Settings/DisplayConfig/DisplayConfigState.qml @@ -302,17 +302,22 @@ Singleton { function findConfigEntryByFingerprint(data, outputIdentifiers, autoOnly) { const targetKey = outputSetFingerprint(outputIdentifiers); const configs = data.configurations || []; + let firstUnnamed = null; for (let i = 0; i < configs.length; i++) { - if (configFingerprint(configs[i]) === targetKey) { - if (autoOnly && configs[i].name) - continue; + if (configFingerprint(configs[i]) !== targetKey) + continue; + if (configs[i].name && !autoOnly) return { entry: configs[i], index: i }; - } + if (!configs[i].name && !firstUnnamed) + firstUnnamed = { + entry: configs[i], + index: i + }; } - return null; + return firstUnnamed; } function getProfileMonitorInclusion(profileId) { @@ -751,7 +756,7 @@ Singleton { return; readMonitorsJson(data => { - const match = findConfigEntryByFingerprint(data, currentOutputSet, true); + const match = findConfigEntryByFingerprint(data, currentOutputSet, false); if (match) { if (configEntryMatchesLiveLayout(match.entry)) { SettingsData.setActiveDisplayProfile(CompositorService.compositor, match.entry.id);