yozoon / gnome-shell-extension-blyr

Apply a Blur Effect to GNOME Shell UI elements
https://extensions.gnome.org/extension/1251/blyr/
GNU General Public License v2.0
222 stars 18 forks source link

Blur on dock please! #8

Open Cookie74 opened 7 years ago

Cookie74 commented 7 years ago

I want request the blur effect on gnome dock ,like OS X ,when the bar is half transparent. image image

Cookie74 commented 7 years ago

Thank you very much

corebots commented 7 years ago

would be nice if this would also work with the dash-to-dock extension

SolarLiner commented 7 years ago

More generally, I'd love the possibility for GNOME to have translucent menus and dock. Like a 20% visibility on the blurred background behind whatever color your theme is using. The blue radius would need to be quite large to make it more or less uniform, but it'd be worth it IMHO.

Wissben commented 6 years ago

We need this so baldy :cry:

JohannesKahl commented 6 years ago

Hoping for this aswell, it would be so cool and would make transparent Gnome Shell themes really worth it

Feichtmeier commented 6 years ago

Hi there @yozoon We (new ubuntu theme developing community) are facing a problem (windows behind panel and or dock) with multimonitor settings and dash to dock / ubuntu dock (fork) and the top panel: https://github.com/ubuntu/gnome-shell-communitheme/issues/173 (this issue only describes the top panel but the same problem happens to the dock, too) screenshot from 2018-05-22 17-51-19 ![Uploading Screenshot from 2018-05-22 17-49-34.png…]()

So I'd like to ask you, would it be generally possible to provide the same blur effect to the panel and the dock in the normal mode (not dash overview)?

Best regards

yozoon commented 6 years ago

Hi @Feichtmeier , yes, theoretically it is possible to blur the background of the dock, but there are some major development challenges to be overcome before implementing this feature:

TL;DR: my implementation of the frosted glass effect is not actually blurring the background, but it's blurring an image of the background - which can currently only be done with static backgrounds. Ideally the compositor (mutter) should implement the background blur effect - but that's nothing I can change with my extension. My idea of a workaround would come with a huge performance trade-off.

Currently the blur effect works by copying the overview background actor and adding it to the overview group behind the actor the background is copied from. Afterwards the blur effect is applied only once to this new hidden-by-default actor. Everytime a the overview transition is started, the blurred background actor is revealed by fading out the actor in front of it. The blurring of the panel background is based on the same procedure, just without all the animation stuff. So this leads us to the problem of the dock background blur: the dock (as opposed to the overview screen and the panel (ideally)) doesn't have a purely statical background, because it is possible that some part of a window is moved below the dock. Now the problem is that - at least with the current implementation of the blur effect - the blurred background of the dock wouldn't be updated to include the part of the window which is below the dock - so it get's visually cut off - which wouldn't do any good to design consistency.

How can we solve this issue?: Ideally the compositor itself (mutter) should have a feature to blur a certain part of the screen before a specific window (the one we want to blur the background of) is drawn (e.g. we want to blur the background of the window on top of the window stack: at first we draw all the windows below this window, then we apply the blur and finally we continue drawing the top window) As this requires changes to parts of gnome shell which are out of reach of a shell extension we have to find another way of solving this. My idea was to screen grab the part of the desktop below the dock and use this image as the background of the dock. That way we can apply the blur effect to this image and make it seem as if the dock was just a pane of frosted glass. But to make the illusion convincing we mustn't have any noticeable lag of moving a window below the dock, updating the background of the dock and re-applying the blur effect - which seems quite unrealistic considering the fact that we are constantly capturing the screen, which, in my experience, is quite resource intensive. Additionally I don't even know if it is possible to capture a part of the desktop below another window/actor (maybe we can get some inspiration from Peek)

At the moment I unfortunately do not see any viable way of applying a background blur to the dock, even though I would love to have this feature on my desktop as well. But, as always, I am open to suggestions!

Feichtmeier commented 6 years ago

Thank you for the detailed explanation @yozoon The idea to cut the part of the background behind the dock and the panel and apply your frosted glass effect sounds very nice. For us it would be enough to have a static not dynamic piece of the wallpaper applied to both dock a and panel to overcome a) the "dark block of doom" consisting of the dark panel , the dark header and top bars and eventually plus dark menus and b) the multimonitor problem. Could this "cheat" be done by pure CSS in our shell theme file or would this need additional JS portions in an extension? Best regards

yozoon commented 6 years ago

Some part of this always has to be implemented in JS, because the CSS on GNOME currently ignores the 'blur' keyword (which works in browsers, but is not yet implemented in GTK/Clutter).

jcklpe commented 6 years ago

@yozoon I mention in another thread that this has been done in KDE recently. Let me link it here: https://www.reddit.com/r/kde/comments/7szqqk/i_implemented_a_new_blur_effect_in_kde_it/

The creator of the effect has some fairly extensive discussions in that thread. Maybe of use! :)

MaCroX95 commented 4 years ago

+1 for Blured dock! I really hate the way that transparent dock without blur looks, it would look much nicer and more professional if it could be themed as well.

HunGUard commented 4 years ago

Excuse me @yozoon , but is this usable to achieve the desired effect? https://developer.gnome.org/clutter/stable/ClutterBlurEffect.html

yozoon commented 4 years ago

@HunGUard no unfortunately the ClutterBlurEffect only has a blur very low blur intensity which cannot be changed, because it is baked into the GLSL shader they use. Starting with Gnome 3.36 a new blur effect was introduced which can be used very similarly to the aforementioned ClutterBlurEffect, but this new effect does have the option to change the blur intensity. This effect is already being used in the current version of the Blyr extension, and is the main factor contributing to the performance improvements. ShellBlurEffect source code: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/master/src/shell-blur-effect.c

hrdwrrsk commented 4 years ago

this new extension apparently implements blur effect on dash, but buggy and lacks background clipping so dash corners are getting blurred (with dash-to-dock) unless if you use "Force straight corners" or use "panel (fill screen) mode" instead

(apparently i can't screenshot because that extension crash my shell :\ ) I screenshot it using flameshot instead of gnome-screenshot

2020-06-23_08-00

zak39 commented 3 years ago

Thanks @hrdwrrsk !

It's work about me !

I am testing during few weeks :)

vinayvp commented 2 years ago

If you want only your dock to be blurred install this https://extensions.gnome.org/extension/3193/blur-my-shell/ , go to gnome tweaks/extensions/blur my shell/disable top panel and make the necessary changes you like.. and IT WORKSS