gtk.css - 如何添加模糊背景效果?

gtk.css - 如何添加模糊背景效果?

如何在主题中添加模糊玻璃效果?(CSS3 在blur(1px);许多浏览器上支持高斯模糊)

当我降低不透明度时,我得到了如下结果:

无模糊效果的终端背景和面板

但我想要像这样的模糊效果:

具有模糊效果的 Finder 面板

此外,为了理解模糊效果:

在此处输入图片描述

谢谢!

答案1

我最近也在想这个问题,据我所知,我不相信 gtkcss 目前支持过滤器。

我想到的方法是通过 glsl 着色器为杂乱(mutter)actor 添加着色器效果。

我设法让它工作起来,产生了很好的模糊效果,我使用的示例是一个名为 GNOME 扩展布莱尔

我的项目的 glsl 文件和代码可以在这里找到这里, 以供参考。

你可以在代码中调用 glsl 并将其应用到演员身上,例如

    var shaderEffectVer = new Clutter.ShaderEffect(Clutter.ShaderType.FRAGMENT_SHADER);
    var wallpaper_actor = new GtkClutter.Actor ();

    shaderEffectVer.set_shader_source("shader.glsl"));
    shaderEffectVer.set_uniform_value("dir", 1.0);
    shaderEffectVer.set_uniform_value("width", g_width);
    shaderEffectVer.set_uniform_value("height", g_height);
    shaderEffectVer.set_uniform_value("radius", 10.0);
    shaderEffectVer.set_uniform_value("brightness", 0.98);
    wallpaper_actor.add_effect_with_name("blur",shaderEffectVer);

希望对您有帮助

答案2

我知道这已经很老套了——但我觉得我至少应该简短地回答一下。

至于想要 CSS 子集能够使用“background-filter”:

浏览器能做什么和操作系统能做什么是完全不同的事情。有些操作系统支持原生的模糊功能,有些则不支持。非 Web 提供的 CSS(如 pango 和 gtk 等)通常是子集CSS。这发生了很大变化,因此可能已经不再是这种情况了。

基本上,如果您想要模糊背景,您将需要一个合成器来实现,但可能需要进行一些设置。我认为 Compton 有这个功能,但正如我所说,这需要一些设置,并且不是您可以随便塞进主题的东西。

你也可以看看 Compiz/Fusion(他们现在也是其中之一),它非常酷,而且我记得你可以在那里做一些花哨的事情,比如模糊等等。另外,上次我尝试的时候它比 KWin 更快更小,所以就是这样。不过,如果你必须追求绝对的效率,那么你应该坚持使用 Compton。

如果你只是想模糊终端

如今,市场上有一大堆黑客工具可以实现这一点。较新的管理器现在已内置此功能,因此无需费力。Windows 用户可能需要等待更长时间。Mac 和 Linux 用户现在已经拥有此功能。

相关内容