diff --git a/core/internal/distros/debian.go b/core/internal/distros/debian.go index 74f4bf37..0a9e47b9 100644 --- a/core/internal/distros/debian.go +++ b/core/internal/distros/debian.go @@ -208,7 +208,7 @@ func (d *DebianDistribution) InstallPrerequisites(ctx context.Context, sudoPassw checkCmd := exec.CommandContext(ctx, "dpkg", "-l", "build-essential") if err := checkCmd.Run(); err != nil { - cmd := ExecSudoCommand(ctx, sudoPassword, "apt-get install -y build-essential") + cmd := ExecSudoCommand(ctx, sudoPassword, "DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential") if err := d.runWithProgress(cmd, progressChan, PhasePrerequisites, 0.08, 0.09); err != nil { return fmt.Errorf("failed to install build-essential: %w", err) } @@ -225,7 +225,7 @@ func (d *DebianDistribution) InstallPrerequisites(ctx context.Context, sudoPassw } devToolsCmd := ExecSudoCommand(ctx, sudoPassword, - "apt-get install -y curl wget git cmake ninja-build pkg-config libxcb-cursor-dev libglib2.0-dev libpolkit-agent-1-dev libjpeg-dev libpugixml-dev") + "DEBIAN_FRONTEND=noninteractive apt-get install -y curl wget git cmake ninja-build pkg-config libxcb-cursor-dev libglib2.0-dev libpolkit-agent-1-dev libjpeg-dev libpugixml-dev") if err := d.runWithProgress(devToolsCmd, progressChan, PhasePrerequisites, 0.10, 0.12); err != nil { return fmt.Errorf("failed to install development tools: %w", err) } @@ -616,7 +616,7 @@ func (d *DebianDistribution) installRust(ctx context.Context, sudoPassword strin CommandInfo: "sudo apt-get install rustup", } - rustupInstallCmd := ExecSudoCommand(ctx, sudoPassword, "apt-get install -y rustup") + rustupInstallCmd := ExecSudoCommand(ctx, sudoPassword, "DEBIAN_FRONTEND=noninteractive apt-get install -y rustup") if err := d.runWithProgress(rustupInstallCmd, progressChan, PhaseSystemPackages, 0.82, 0.83); err != nil { return fmt.Errorf("failed to install rustup: %w", err) } @@ -655,7 +655,7 @@ func (d *DebianDistribution) installGo(ctx context.Context, sudoPassword string, CommandInfo: "sudo apt-get install golang-go", } - installCmd := ExecSudoCommand(ctx, sudoPassword, "apt-get install -y golang-go") + installCmd := ExecSudoCommand(ctx, sudoPassword, "DEBIAN_FRONTEND=noninteractive apt-get install -y golang-go") return d.runWithProgress(installCmd, progressChan, PhaseSystemPackages, 0.87, 0.90) } diff --git a/quickshell/Modules/WallpaperBackground.qml b/quickshell/Modules/WallpaperBackground.qml index b0305888..b3a847c3 100644 --- a/quickshell/Modules/WallpaperBackground.qml +++ b/quickshell/Modules/WallpaperBackground.qml @@ -82,6 +82,7 @@ Variants { readonly property bool transitioning: transitionAnimation.running property bool effectActive: false property bool useNextForEffect: false + property string pendingWallpaper: "" function getFillMode(modeName) { switch (modeName) { @@ -162,12 +163,10 @@ Variants { return; if (!newPath || newPath.startsWith("#")) return; - if (root.transitioning) { - transitionAnimation.stop(); - root.transitionProgress = 0; - root.effectActive = false; - currentWallpaper.source = nextWallpaper.source; - nextWallpaper.source = ""; + + if (root.transitioning || root.effectActive) { + root.pendingWallpaper = newPath; + return; } if (!currentWallpaper.source) { @@ -488,24 +487,28 @@ Variants { currentWallpaper.source = nextWallpaper.source; } root.useNextForEffect = false; - Qt.callLater(() => { - nextWallpaper.source = ""; + nextWallpaper.source = ""; + root.transitionProgress = 0.0; + currentWallpaper.layer.enabled = false; + nextWallpaper.layer.enabled = false; + currentWallpaper.cache = true; + nextWallpaper.cache = false; + root.effectActive = false; + + if (root.pendingWallpaper) { + var pending = root.pendingWallpaper; + root.pendingWallpaper = ""; Qt.callLater(() => { - root.effectActive = false; - currentWallpaper.layer.enabled = false; - nextWallpaper.layer.enabled = false; - currentWallpaper.cache = true; - nextWallpaper.cache = false; - root.transitionProgress = 0.0; + root.changeWallpaper(pending, true); }); - }); + } } } MultiEffect { anchors.fill: parent - source: effectLoader.active ? effectLoader.item : (root.actualTransitionType === "none" ? currentWallpaper : null) - visible: CompositorService.isNiri && SettingsData.blurWallpaperOnOverview && NiriService.inOverview && source !== null + source: effectLoader.active ? effectLoader.item : currentWallpaper + visible: CompositorService.isNiri && SettingsData.blurWallpaperOnOverview && NiriService.inOverview && currentWallpaper.source !== "" blurEnabled: true blur: 0.8 blurMax: 75