我目前正在使用 Xubuntu 16.10 和 Xfwm4 窗口管理器。我将默认合成器换成了 Compton,以修复屏幕撕裂问题。这个方法很完美,但是 Compton 渲染 GTK3.20 应用程序的方式似乎存在一些问题。
由于某种原因,它会产生这种双重阴影效果。有人能告诉我如何修复这个问题吗,或者至少是什么原因造成的。
如果有帮助的话,这里是我的康普顿配置文件的链接:https://github.com/Lend27/linuxstuff/blob/master/compton.conf
答案1
我在 Ubuntu 安装中不使用 compton,但在 N22 上运行 Gallium 除外。问题据其他一些人报告,GTK3 应用程序似乎绘制了客户端窗口阴影,而康普顿则围绕这些阴影绘制自己的阴影。
针对此问题有两种不同的解决方法:
- 禁用客户端阴影。在上面链接的帖子中,用户发现了一些技巧,可以强制客户端自己不绘制任何阴影。当您将 compton 配置为绘制与客户端阴影在视觉上不同的阴影时,这在视觉上更加一致,就像在您的示例中一样。
- 另一个选项是禁用合成器阴影。将窗口名称或类添加到
shadow-exclude
compton.conf 中并重新加载。建议启动xwininfo -stats -wm
并单击相应的窗口以获取信息。编辑:"_GTK_FRAME_EXTENTS@:c"
根据shadow-exclude
康普顿文章在 Arch Wiki 上。
我在 16.10 VBox 客户机上无法运行 Compton,但在基于 16.04 的 N22 上一切运行正常:
我没有对我的康普顿配置做任何更改(我通过 chrx 安装了 Gallium)以下是一些可能有助于调查可能的解决方案的详细信息:
livewire@zc01:~$ apt-cache show quadrapassel | grep Version
Version: 1:3.18.0-1
livewire@zc01:~$ apt-file search compton.conf
compton-conf: /usr/share/compton-conf/compton.conf.example
ubuntustudio-default-settings: /etc/xdg/xdg-ubuntustudio/compton.conf
xubuntu-default-settings: /etc/xdg/xdg-xubuntu/compton.conf
livewire@zc01:~$ grep _GTK_FRAME_EXTENTS /etc/xdg/compton.conf
"_GTK_FRAME_EXTENTS@:c" # GTK+ 3 CSD windows https://github.com/chjj/compton/issues/189
livewire@zc01:~$ diff /etc/xdg/compton.conf /etc/xdg/xdg-xubuntu/compton.conf
18,19c18
< #glx-no-rebind-pixmap = true;
< glx-swap-buffer = 1;
---
> glx-no-rebind-pixmap = true;
21c20,22
< vsync = "opengl-swc";
---
> vsync = "opengl-swc";
>
>
43,45c44,46
< "class_g = 'Firefox' && argb",
< "class_g = 'Kodi'",
< "class_g = 'XScreenSaver'",
---
> "n:w:*Firefox*",
> "n:w:*Chrome*",
> "n:w:*Chromium*",
47a49
> "class_g ?= 'Xfce4-notifyd'",
54,60d55
< # Opacity
< menu-opacity = 1.0; # The opacity for menus. (default 1.0)
< inactive-opacity = 1.0; # Opacity of inactive windows. (0.1 - 1.0)
< frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0)
< inactive-opacity-override = true; # Inactive opacity set by 'inactive-opacity' overrides value of _NET_WM_OPACITY.
<
<
77,78c72
< dialog = { fade = true; shadow = true; opacity = 1.0; focus = true; };
< };
---
> };
\ No newline at end of file