aunetx / blur-my-shell

Extension that adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview
https://extensions.gnome.org/extension/3193/blur-my-shell/
GNU General Public License v3.0
1.58k stars 88 forks source link

Top Bar Blur Flicker #673

Open KUPOinyourWINDOW opened 1 month ago

KUPOinyourWINDOW commented 1 month ago

In Fedora 41 beta, Gnome 47 I'm experiencing a consistant flicker of the blur effect (both static AND dynamic) when opening and closing quite a large amount of app including even Gnome Files. The top panel blur effect flickers for a quick second where the top panel loses its blur and then gains it back again once the flicker is over.

Calosis commented 1 month ago

Can confirm this issue when opening applications. Will attempt to find the issue later today.

aunetx commented 1 month ago

Hello, I think this issue was introduced while fixing the "panel blur breaking up on startup with multiple monitors" bug, which I fixed using a different signal to refresh the blur (I think it is workarea-changed but I'm not sure).

The upside is that the blur is refreshed when the panel could change position, so it's good for the original issue, but the workarea also seems to change when opening and closing apps.

So I think I will either need to find another signal to connect to instead, or connect to this signal when there are multiple monitors, and the old one when there is only one monitor... But that requires some logic as both signals are inherently linked to monitors connection/disconnection.

KUPOinyourWINDOW commented 1 month ago

As a temp workaround Version 65 doesn't have this issue so if you don't rely on multi-monitors then that appears to be the way to go, just make sure you change the reported version to 67 so don't get auto-updated right away

JockeTF commented 1 month ago

This happens for me as well, mostly when opening the first or closing the last window on a workspace.

neuromorph commented 1 month ago

Hello @aunetx ,

I think this issue was introduced while fixing the "panel blur breaking up on startup with multiple monitors" bug

I am not sure what exactly was this bug so not sure if that will still work. Can you share a link or someone could test if they faced it before.

The upside is that the blur is refreshed when the panel could change position, so it's good for the original issue, but the workarea also seems to change when opening and closing apps.

Correct, the work area will change with change in panel or apps. I believe the original issue is only to do with Panel position and size. With that assumption I thought we can connect to PanelBox ['notify::size', 'notify::position'] signals. I then noticed that those are already being connected to update_size() and I wonder that maybe enough instead of full reset(). However, I have shifted the call to update_size after making all the connections so that there isn't any gap between setting size and connecting. If this helps for the earlier issue then workareas-changed is not needed so I have commented it.

If someone wants to try out, you can replace your local panel.js under BMS components dir with the one attached here (after unzip). Then logout and log back in for changes to reflect. It should stop the flicker though also test for the multi-monitor issue if you are aware of it.

panel.zip

JockeTF commented 1 month ago

I can confirm that these changes stop the flickering. But, when changing monitors part of the panel is missing its blur again. Switching to the overview and back fixes the blur. I do prefer this over the flickering.

neuromorph commented 1 month ago

Hey @JockeTF

What do you mean by 'changing monitors ', as in steps to reproduce that part? I am not up to speed with that issue so more details will help. I thought it was only an issue at startup.

Thanks!

JockeTF commented 1 month ago

→ @neuromorph

before

after

If I change my display scaling to 125%, switch to the overview and back, then switch back display scaling to 100%. For me, the right part of the panel goes completely transparent until I switch to the overview and back again.

neuromorph commented 1 month ago

If I change my display scaling to 125%, switch to the overview and back, then switch back display scaling to 100%. For me, the right part of the panel goes completely transparent until I switch to the overview and back again.

This seems like a different issue. It happens on a single monitor as well. Basically, the blur is not getting updated when the Display Scale is changed. Its good that the update can be forced by toggling the Overview. Similar update will need to be connected to the notify::scale-factor signal on the ThemeContext. Lets wait for Aurelien to shed more light on it and also on the original multi-monitor issue so they can be handled accordingly.

KUPOinyourWINDOW commented 1 month ago

Hello @aunetx ,

I think this issue was introduced while fixing the "panel blur breaking up on startup with multiple monitors" bug

I am not sure what exactly was this bug so not sure if that will still work. Can you share a link or someone could test if they faced it before.

The upside is that the blur is refreshed when the panel could change position, so it's good for the original issue, but the workarea also seems to change when opening and closing apps.

Correct, the work area will change with change in panel or apps. I believe the original issue is only to do with Panel position and size. With that assumption I thought we can connect to PanelBox ['notify::size', 'notify::position'] signals. I then noticed that those are already being connected to update_size() and I wonder that maybe enough instead of full reset(). However, I have shifted the call to update_size after making all the connections so that there isn't any gap between setting size and connecting. If this helps for the earlier issue then workareas-changed is not needed so I have commented it.

If someone wants to try out, you can replace your local panel.js under BMS components dir with the one attached here (after unzip). Then logout and log back in for changes to reflect. It should stop the flicker though also test for the multi-monitor issue if you are aware of it.

panel.zip

I can confirm that this has fixed the flickering so far, but can't speak to how it affects multiple monitors or fractional scaling.

neuromorph commented 1 month ago

OK, I have another update. This should fix both flicker and fractional scaling issues. It likely also helps with the multi-monitor issue as far as I can tell. But since I am not sure on that issue, that part needs to be confirmed by someone who knows and can test for it.

There are two files panel.js and overview.js in the attached zip that you will need to replace under components dir.

Aurelien, about the overview.js: When monitoring log for the scaling issue, I noticed overview was throwing an error. Basically, the overview_background_group was not getting removed from Main.layoutManager.overviewGroup during cleanup and so it was complaining about prev parent in update_backgrounds(). I have added a fix for that.

panel_overview.zip

alisson3000br commented 2 days ago

I've been using Ubuntu for over a year, and last week, I decided to try Fedora. However, I switched back to Ubuntu in less than two days. It’s truly the best distro, and I found it clearly faster also.

KUPOinyourWINDOW commented 2 days ago

I've been using Ubuntu for over a year, and last week, I decided to try Fedora. However, I switched back to Ubuntu in less than two days. It’s truly the best distro, and I found it clearly faster also.

I don't know why you think a bug report for a gnome extension is the best place for you to justify to yourself your distribution of choice, but please don't. We're happy for you, but this is a place to get issues fixed. Reddit or twitter is what you're looking for.