Xfwm4 + Compton:gtk3 应用程序的问题

Xfwm4 + Compton:gtk3 应用程序的问题

我目前正在使用 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-excludecompton.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

相关内容