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

emi*_*dar 6 themes unity gtk css

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

当我删除不透明度时,我得到这样的结果:

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

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

具有模糊效果的 Finder 面板

另外为了理解模糊效果:

在此处输入图片说明

谢谢!

小智 0

我最近也想知道这一点,据我了解,我不相信 gtkcss 目前支持过滤器。

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

我设法让它产生良好的模糊效果,我正在处理的示例是一个名为blyr的 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);
Run Code Online (Sandbox Code Playgroud)

希望对您有帮助


osi*_*hra 0

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

至于希望 CSS 的子集能够使用“background-filter”:

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

基本上,如果你想要模糊的背景,你将需要一个合成器来做到这一点,但可能需要一些设置才能做到这一点。我认为康普顿有这种能力,但正如我所说,这需要一些努力,而不是你可以塞进主题的东西。

您还可以查看 Compiz/Fusion(它们现在是其中之一),它非常酷,而且 IIRC 您可以在那里做一些带有模糊甚至更多功能的奇特的事情。另外,它比我上次尝试的 KWin 更快、更小,所以就是这样。不过,如果你必须拥有绝对的效率,你可能应该坚持使用康普顿。

如果您只是想模糊终端

如今有一大堆黑客工具可以实现这一目标。新的经理现在已经内置了这个功能,所以毫不费力。Windows 用户可能需要等待更长时间。Mac 和 Linux 用户现在已经有了这个。