diff --git a/quickshell/Modules/DankBar/DankBarContent.qml b/quickshell/Modules/DankBar/DankBarContent.qml index a2e88862..0c977bf7 100644 --- a/quickshell/Modules/DankBar/DankBarContent.qml +++ b/quickshell/Modules/DankBar/DankBarContent.qml @@ -1438,12 +1438,21 @@ Item { parentScreen: barWindow.screen onClicked: { systemUpdateLoader.active = true; + if (!systemUpdateLoader.item) + return; + const popout = systemUpdateLoader.item; const effectiveBarConfig = topBarContent.barConfig; const barPosition = barWindow.axis?.edge === "left" ? 2 : (barWindow.axis?.edge === "right" ? 3 : (barWindow.axis?.edge === "top" ? 0 : 1)); - if (systemUpdateLoader.item && systemUpdateLoader.item.setBarContext) { - systemUpdateLoader.item.setBarContext(barPosition, effectiveBarConfig?.bottomGap ?? 0); + if (popout.setBarContext) { + popout.setBarContext(barPosition, effectiveBarConfig?.bottomGap ?? 0); } - systemUpdateLoader.item?.toggle(); + if (popout.setTriggerPosition) { + const globalPos = visualContent.mapToItem(null, 0, 0); + const currentScreen = parentScreen || Screen; + const pos = SettingsData.getPopupTriggerPosition(globalPos, currentScreen, barWindow.effectiveBarThickness, visualWidth, effectiveBarConfig?.spacing ?? 4, barPosition, effectiveBarConfig); + popout.setTriggerPosition(pos.x, pos.y, pos.width, section, currentScreen, barPosition, barWindow.effectiveBarThickness, effectiveBarConfig?.spacing ?? 4, effectiveBarConfig); + } + PopoutManager.requestPopout(popout, undefined, "systemUpdate"); } } } diff --git a/quickshell/Services/SystemUpdateService.qml b/quickshell/Services/SystemUpdateService.qml index 2416d567..53ca7ade 100644 --- a/quickshell/Services/SystemUpdateService.qml +++ b/quickshell/Services/SystemUpdateService.qml @@ -231,7 +231,10 @@ Singleton { return; isChecking = true; hasError = false; - if (updChecker.length > 0) { + if (pkgManager === "paru" || pkgManager === "yay") { + const repoCmd = updChecker.length > 0 ? updChecker : `${pkgManager} -Qu`; + updateChecker.command = ["sh", "-c", `(${repoCmd} 2>/dev/null; ${pkgManager} -Qua 2>/dev/null) || true`]; + } else if (updChecker.length > 0) { updateChecker.command = [updChecker].concat(updateCheckerParams[updChecker].listUpdatesSettings.params); } else { updateChecker.command = [pkgManager].concat(packageManagerParams[pkgManager].listUpdatesSettings.params);