From 368536f6981a6b13d1400f3d3ce1be168137124d Mon Sep 17 00:00:00 2001 From: purian23 Date: Wed, 18 Mar 2026 17:43:49 -0400 Subject: [PATCH] fix(WallpaperBlur):Restore Blur on Overview mode on niri --- quickshell/Modules/WallpaperBackground.qml | 29 ++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/quickshell/Modules/WallpaperBackground.qml b/quickshell/Modules/WallpaperBackground.qml index bc30737e..1f181840 100644 --- a/quickshell/Modules/WallpaperBackground.qml +++ b/quickshell/Modules/WallpaperBackground.qml @@ -84,9 +84,11 @@ Variants { readonly property bool transitioning: transitionAnimation.running property bool effectActive: false property bool _renderSettling: true + property bool _overviewBlurSettling: false property bool useNextForEffect: false property string pendingWallpaper: "" property string _deferredSource: "" + readonly property bool overviewBlurActive: CompositorService.isNiri && SettingsData.blurWallpaperOnOverview && NiriService.inOverview && currentWallpaper.source !== "" Connections { target: currentWallpaper @@ -120,6 +122,22 @@ Variants { } } + Connections { + target: NiriService + function onInOverviewChanged() { + root._overviewBlurSettling = true; + overviewBlurSettleTimer.restart(); + } + } + + Connections { + target: SettingsData + function onBlurWallpaperOnOverviewChanged() { + root._overviewBlurSettling = true; + overviewBlurSettleTimer.restart(); + } + } + Connections { target: CompositorService function onRandrDataReady() { @@ -139,6 +157,12 @@ Variants { onTriggered: root._renderSettling = false } + Timer { + id: overviewBlurSettleTimer + interval: 150 + onTriggered: root._overviewBlurSettling = false + } + function getFillMode(modeName) { switch (modeName) { case "Stretch": @@ -164,7 +188,7 @@ Variants { Component.onCompleted: { if (typeof wallpaperWindow.updatesEnabled !== "undefined") - wallpaperWindow.updatesEnabled = Qt.binding(() => root.effectActive || root._renderSettling || currentWallpaper.status === Image.Loading || nextWallpaper.status === Image.Loading); + wallpaperWindow.updatesEnabled = Qt.binding(() => root.effectActive || root._renderSettling || root.overviewBlurActive || root._overviewBlurSettling || currentWallpaper.status === Image.Loading || nextWallpaper.status === Image.Loading); if (!source) { root._renderSettling = false; @@ -573,8 +597,9 @@ Variants { } Loader { + id: overviewBlurLoader anchors.fill: parent - active: CompositorService.isNiri && SettingsData.blurWallpaperOnOverview && NiriService.inOverview && currentWallpaper.source !== "" + active: root.overviewBlurActive sourceComponent: MultiEffect { anchors.fill: parent