Xfwm4 + Compton: Problems with gtk3 applications
I don't use compton on my Ubuntu installs except on my N22 where I run Gallium. The issue that has been reported by a few others appears to be that the GTK3 applications draw client side window shadows and compton draws its own around these.
There are two different workarounds for this problem:
- Disable client side shadows. In the thread linked above users found some hacks to force the clients to not draw any shadows themselves. This is more visually consistent when you have configured compton to draw shadows that are visually distinct from the client side ones, like in your example.
- Another option is to disable the compositor shadows. Add the window name or class to
shadow-exclude
in your compton.conf and reload it. It's suggested to launchxwininfo -stats -wm
and click on the respective window to get the information. Edit: This appears to be an issue with your custom configuration which is missing"_GTK_FRAME_EXTENTS@:c"
inshadow-exclude
, according to the compton article on the Arch Wiki.
I had no luck on my 16.10 VBox guest getting compton to run and on my N22 based on 16.04 everything runs fine:
I didn't make any changes to my compton config (I installed Gallium through chrx) here are some details that may be helpful investigating possible solutions:
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