GithubHelp home page GithubHelp logo

yshui / picom Goto Github PK

View Code? Open in Web Editor NEW
4.0K 53.0 582.0 6.9 MB

A lightweight compositor for X11

License: Other

Python 2.13% Shell 1.47% GLSL 0.06% C 95.33% Meson 0.78% Nix 0.23%
compositor xorg linux compton x11 xcompmgr xcb

picom's People

Contributors

9ary avatar absolutelynothelix avatar airlied avatar alarixnia avatar chjj avatar danakj avatar gijsbers avatar jauler avatar jbeich avatar jhcloos avatar jialeens avatar keith-packard avatar ktprograms avatar kwand avatar lenivaya avatar liskin avatar monsterovich avatar nwnk avatar omar-polo avatar orbea avatar psychon avatar quequotion avatar richardgv avatar subnut avatar tatokis avatar tilman2 avatar tryone144 avatar unixparadigm avatar xecycle avatar yshui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

picom's Issues

[Q] exlucde nitrogen from compton

While starting and it's setting desktop wallpaper, without no issue but with compton wallpaper splash in background before setting picture.

Like pixels been saved in between moving.

clear-shadow is removed as an option, and is always enabled now

Platform

Arch Linux, Kernel: 4.18.16-arch1-1-ARCH x86_64

GPU, drivers, and screen setup

NVIDIA GM204 [GeForce GTX 970] driver: nvidia v: 410.66

Environment

Openbox 3.6.1

Compton version

v2/v3

Issue

Removing this option has an unpleasant side effect.

Compton configuration snippet:

# Firefox dropdown menus: proper shadow just without clear-shadow
clear-shadow = false;

Expected behavior (v2)

clear-shadow-false

Current Behavior (v3)

clear-shadow-true
A workaround is possible…

wintypes:
{
 dropdown_menu = { shadow = false; };
};

... but I'd be pleased if we got the clear-shadow option back.

compton.desktop reported to be broken?

Platform

ArcoLinux Xfce

Compton version

v2.0

Steps of reproduction

// If you can reliably reproduce this bug, please describe the quickest way to do so
// This information will greatly help us diagnosing and fixing the issue.

You can right menu click on the whiskermenu (once installed) and open menulibre to open/change the menu.
Out all applications only Compton.desktop is reported to be... you see the images.
compton-error
compton-errors1
compton-errors-2
compton-errors-3

I have tried to fiddle around with the .desktop file. Somewhere it must be missing something to show up on this report of menulibre.
Not urgent but annoying.

terminal flicking when opened

Platform

archlinux latest

GPU, drivers, and screen setup

intel

Compton version

latest from aur compton-git 2:Next.r3.g9654d0b_2018.10.04-1

Compton configuration:

--backend glx

Steps of reproduction

I just want to disable compton on urxvt or exterm for example, completely.

Ctrl-C cause screen to freeze up

The sigint_handler calls exit(), which calls some exit hooks. The NVIDIA driver registers some exit hooks that calls Xlib functions. Some of the Xlib functions are not reentrant, so if you press Ctrl-C at an unfortunate timing, it will cause compton to freeze.

Solution is to use an ev_async.

Leave images in spaces when moving window using sxhkd

Platform

newest archlinux system, up-to-date

GPU, drivers, and screen setup

intel hd630

Compton version

compton --version:
v3-rc1-3-gf84336a

Compton configuration:

I tested with:

compton --config /dev/null --backend glx &

Steps of reproduction

setup sxhkd with wmv and you will see images saved in background of spaces that the window is just moved out, like not respond of windows xp when you moving not responding window using mouse.

Expected behavior

Robust when moving windows, no leave images in spaces after moving windows.

Current Behavior

Other details

Noticeable lag when opening/closing windows

Compton configuration:

--config /dev/null --backend glx

Steps of reproduction

  1. Start compton
  2. Go to Firefox
  3. Start to play some video on webpage
  4. Right click to open popup menu
  5. Click to close popup menu

Expected behavior

Video play smoothly

Current Behavior

There is a noticeable frame loss when the popup menu opens/closes

Disable shadow in i3wm tab mode

Platform

Ubuntu 18.04

Compton version

git-v2-7-g038b07e-2018-09-30

Expected behavior

I want to disable compton shadow in i3wm tab mode

y

Current Behavior

x

windows lag behind mouse cursor when being dragged

Platform

Arch Linux

GPU, drivers, and screen setup

Intel UHD Graphics 620, two monitors configured side-by-side with xrandr

Compton version

v2.0

Steps of reproduction

  1. drag a window
  2. noticable window lag

Expected behavior

windows should follow mouse cursor without too much lag

Screen becomes empty

Thank you for your great work. Please let me know if I can help by providing any additional information or performing tests.

Platform

Linux arch 4.18.16-1-ck-skylake #1 SMP PREEMPT Sat Oct 20 08:37:58 EDT 2018 x86_64 GNU/Linux

GPU, drivers, and screen setup

130 chris@arch ~/dotfiles/compton (git)-[master] % glxinfo | grep -i vendor                  
server glx vendor string: SGI
client glx vendor string: Mesa Project and SGI
    Vendor: Intel Open Source Technology Center (0x8086)
OpenGL vendor string: Intel Open Source Technology Center

chris@arch ~/dotfiles/compton (git)-[master] % lspci -k | grep -EA3 'VGA|3D|Display'     :(
lspci: Unable to load libkmod resources: error -12
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
        DeviceName: Onboard IGD
        Subsystem: Hewlett-Packard Company HD Graphics 530
        Kernel driver in use: i915

Environment

XFCE4

Compton version

v3 and v3-rc2-16-g06d8792

Compton configuration:

Default configuration and /etc/xdg/compton.conf.example
Tried any combination of options

Steps of reproduction

  1. compton --config /dev/null

Expected behavior

Windows to be visible

Current Behavior

Screen becomes empty

Other details

https://youtu.be/WrTd4yi8FcA

I remember having this problem on your fork a long while ago, then it was fixed for a while, now it is back again.

Excluding transparent autoscroll cursor in Firefox automatically?

With shadow = true, Compton draws a shadow below the transparent autoscroll cursor of Firefox, which looks really ugly. This not just because it is undesired, it's also because the shadow is a perfect square, while the cursor has the shape of a circle.

This can be easily worked around by using shadow-exclude = "class_g = 'Firefox' && argb" or shadow-exclude = "class_g = 'Nightly' && argb".

I just wonder if there is a way to exclude the cursor automatically?
Though I really like that Compton by default always draws shadows. kwin_x11 lacks them for GTK UIs, which is way more annoying than excluding some elements.

--shadow-exclude-reg no longer works

Platform

Arch Linux x86_64

GPU, drivers, and screen setup

NVidia GTX 1060, nvidia 410.57, single monitor, openbox + tint2

Compton version

git-vNext-10-ge58de49-2018-10-02

Compton configuration:

# Shadow
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 16;
shadow-offset-x = -24;
shadow-offset-y = -24;
shadow-opacity = 0.5;
shadow-exclude = [
	"class_g = 'Conky'",
	"class_g ?= 'xfce-notifyd'",
	"_GTK_FRAME_EXTENTS@:c"
];
shadow-exclude-reg = "x20+0+0";

# Opacity
alpha-step = 0.06;

# Blur
blur-background = true;
blur-kern = "15,15,0.256376,0.307108,0.357801,0.405442,0.446840,0.478973,0.499352,0.506336,0.499352,0.478973,0.446840,0.405442,0.357801,0.307108,0.256376,0.307108,0.367879,0.428604,0.485672,0.535261,0.573753,0.598165,0.606531,0.598165,0.573753,0.535261,0.485672,0.428604,0.367879,0.307108,0.357801,0.428604,0.499352,0.565840,0.623615,0.668461,0.696902,0.706648,0.696902,0.668461,0.623615,0.565840,0.499352,0.428604,0.357801,0.405442,0.485672,0.565840,0.641180,0.706648,0.757465,0.789693,0.800737,0.789693,0.757465,0.706648,0.641180,0.565840,0.485672,0.405442,0.446840,0.535261,0.623615,0.706648,0.778801,0.834806,0.870325,0.882497,0.870325,0.834806,0.778801,0.706648,0.623615,0.535261,0.446840,0.478973,0.573753,0.668461,0.757465,0.834806,0.894839,0.932912,0.945959,0.932912,0.894839,0.834806,0.757465,0.668461,0.573753,0.478973,0.499352,0.598165,0.696902,0.789693,0.870325,0.932912,0.972604,0.986207,0.972604,0.932912,0.870325,0.789693,0.696902,0.598165,0.499352,0.506336,0.606531,0.706648,0.800737,0.882497,0.945959,0.986207,0.986207,0.945959,0.882497,0.800737,0.706648,0.606531,0.506336,0.499352,0.598165,0.696902,0.789693,0.870325,0.932912,0.972604,0.986207,0.972604,0.932912,0.870325,0.789693,0.696902,0.598165,0.499352,0.478973,0.573753,0.668461,0.757465,0.834806,0.894839,0.932912,0.945959,0.932912,0.894839,0.834806,0.757465,0.668461,0.573753,0.478973,0.446840,0.535261,0.623615,0.706648,0.778801,0.834806,0.870325,0.882497,0.870325,0.834806,0.778801,0.706648,0.623615,0.535261,0.446840,0.405442,0.485672,0.565840,0.641180,0.706648,0.757465,0.789693,0.800737,0.789693,0.757465,0.706648,0.641180,0.565840,0.485672,0.405442,0.357801,0.428604,0.499352,0.565840,0.623615,0.668461,0.696902,0.706648,0.696902,0.668461,0.623615,0.565840,0.499352,0.428604,0.357801,0.307108,0.367879,0.428604,0.485672,0.535261,0.573753,0.598165,0.606531,0.598165,0.573753,0.535261,0.485672,0.428604,0.367879,0.307108,0.256376,0.307108,0.357801,0.405442,0.446840,0.478973,0.499352,0.506336,0.499352,0.478973,0.446840,0.405442,0.357801,0.307108,0.256376";
blur-background-exclude = [
	"window_type = 'dock'",
	"window_type = 'desktop'",
	"_GTK_FRAME_EXTENTS@:c",
	"class_g = 'slop'",
];
resize-damage = 7;

# Fading
fading = true;
fade-in-step = 0.08;
fade-out-step = 0.08;
no-fading-destroyed-argb = true;

# Other
backend = "glx";
vsync = "opengl-swc";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
paint-on-overlay = true;
unredir-if-possible = true;
unredir-if-possible-delay = 1000;
detect-transient = true;
detect-client-leader = true;

# GLX
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
glx-swap-method = "copy";
glx-use-gpushader4 = true;
xrender-sync = true;
xrender-sync-fence = true;

# Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; };
};

Expected behavior

Shadows don't draw over the 20 top pixels of the screen (where my tint2 is)

Current Behavior

Shadows still draw there (note: that's a shadow, my tint2 is flat shaded).
2018-10-03-144601

Other details

If I kill and restart compton, things work correctly, at least until I iconify and restore windows.

Steam wine systray menu doesn't show up with compon enabled

~ >>> inxi -bM [1]
System: Host: mjb Kernel: 4.19.2-1-MANJARO x86_64 bits: 64 Desktop: KDE Plasma 5.14.3 Distro: Manjaro Linux
Machine: Type: Desktop System: Gigabyte product: N/A v: N/A serial:
Mobo: Gigabyte model: B150M-D3H DDR3-CF v: x.x serial: UEFI: American Megatrends v: F6
date: 03/14/2016
CPU: Quad Core: Intel Core i5-6400 type: MCP speed: 3302 MHz min/max: 800/3300 MHz
Graphics: Device-1: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X] driver: amdgpu v: kernel
Display: x11 server: X.Org 1.20.3 driver: amdgpu unloaded: modesetting resolution: 1920x1080~60Hz
OpenGL: renderer: Radeon RX 580 Series (POLARIS10 DRM 3.27.0 4.19.2-1-MANJARO LLVM 7.0.0)
v: 4.5 Mesa 19.0.0-devel (git-7e9fc11ff8)
Network: Device-1: Intel Ethernet I219-V driver: e1000e
Drives: Local Storage: total: 1.59 TiB used: 86.70 GiB (5.3%)
Info: Processes: 199 Uptime: 34m Memory: 15.60 GiB used: 1.31 GiB (8.4%) Shell: zsh inxi: 3.0.27

Compton version

v4-rc1-14-gf834cf2

Compton configuration:

--backend=glx --vsync=opengl

Steps of reproduction

  1. Open Steam under wine on Plasma with compton running
  2. Click or right-click the systray icon to open Steam menu.

Expected behavior

Menu is showed correctly, as it does with no compositor or in other DEs.

Current Behavior

Nothing happens.

Other details

It happens only on Plasma for some reason, not in xfce or gnome. When compton is on, the icon itself goes from ugly (black background) to beautiful but it stops working and if you close steam without exiting it stays on systray forever until you kill wine.

Shadow on bars

Shadow of fullscreen window is drawn over docks and bars. This is unlikely what the user wants.

feature request: Implement an option to ignore certain overlay windows when screen is not redirected

unredir-if-possible shows brief flickering when switching compositing on and off. This is harmless when exiting or entering to a fullscreen window e.g. via alt + tab.

But when an overlay of the desktop environment is shown while in fullscreen, e.g. KDE Plasma volume slider evoked via a keyboard button, the brief flickering is very obvious and ugly.

The user may find it's the lesser evil to lose transparency functionality in such situations instead of having to experience flicker. For such reasons, please implement an option to turn off transparency functionality so that compositing remains turned off when an overlay element is rendered on top off a fullscreen window with unredir-if-possible = yes .

If the user wants to retain transparency functionality for fullscreen windows, they can also use unredir-if-possible-exclude, which is better anyway as it prevents stutter when the overlay appears.

Remove redundant CMake files

Since CMake has been tossed, we can remove these files:

From e35f9555cf75e09dd594b9e708a3e461cf0897e4 Mon Sep 17 00:00:00 2001
From: Stephen Gregoratto <[email protected]>
Date: Sat, 15 Dec 2018 02:58:10 +1100
Subject: [PATCH] Remove unused CMake files

---
 man/CMakeLists.txt  | 46 ---------------------------------------------
 tests/cmake-test.sh | 36 -----------------------------------
 2 files changed, 82 deletions(-)
 delete mode 100644 man/CMakeLists.txt
 delete mode 100755 tests/cmake-test.sh

diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt
deleted file mode 100644
index 76bb603..0000000
--- a/man/CMakeLists.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-option(NEW_DOC "Build new man pages and HTML documentation" ON)
-
-# == Build documentation ==
-# Stolen from https://issues.apache.org/jira/secure/attachment/12455612/AVRO-470.patch
-if (NEW_DOC)
-	set (MAN_SRC
-		compton.1.asciidoc
-		compton-trans.1.asciidoc
-	)
-
-	find_program(ASCIIDOC_EXEC asciidoc)
-	find_program(ASCIIDOC_A2X_EXEC a2x)
-	if (ASCIIDOC_EXEC AND ASCIIDOC_A2X_EXEC)
-		foreach(_file ${MAN_SRC})
-			# get_filename_component() does not handle ".1.asciidoc"
-			# correctly
-			string(REPLACE ".asciidoc" "" _file_we "${_file}")
-			set(_file_path "${CMAKE_CURRENT_SOURCE_DIR}/${_file}")
-			set(_html_out "${_file_we}.html")
-			set(_man_out "${_file_we}")
-			add_custom_target(compton_man_${_file_we} ALL
-				COMMAND ${ASCIIDOC_A2X_EXEC} --format manpage
-					"${_file_path}"
-				DEPENDS "${_file_path}"
-			)
-			add_custom_command(
-				OUTPUT "${_html_out}"
-				COMMAND ${ASCIIDOC_EXEC} -o "${_html_out}" "${_file_path}"
-				DEPENDS "${_file_path}"
-			)
-			add_custom_target(compton_html_${_file_we} ALL
-				DEPENDS "${_html_out}"
-			)
-		endforeach(_file)
-	else(ASCIIDOC_EXEC AND ASCIIDOC_A2X_EXEC)
-		message(WARNING "asciidoc/a2x not found. New man pages and HTML documentation will not be built.")
-	endif(ASCIIDOC_EXEC AND ASCIIDOC_A2X_EXEC)
-endif(NEW_DOC)
-
-# == Install ==
-include(GNUInstallDirs)
-
-install(FILES
-	"compton.1"
-	"compton-trans.1"
-	DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" COMPONENT doc)
diff --git a/tests/cmake-test.sh b/tests/cmake-test.sh
deleted file mode 100755
index fedcb46..0000000
--- a/tests/cmake-test.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-# Test script for CMake build
-
-BASE_DIR=$(dirname "$0")/..
-. "${BASE_DIR}/functions.sh"
-
-BUILD_DIR="build"
-
-cmake_prepare() {
-  [ ! -e "CMakeLists.txt" ] && ln -s {_,}CMakeLists.txt
-}
-
-cmake_build() {
-  einfo Building compton with cmake $@
-
-  [ -e "${BUILD_DIR}" ] && rm -r "${BUILD_DIR}"
-  mkdir "${BUILD_DIR}" && cd "${BUILD_DIR}" || die
-  cmake ${@} .. || die
-  make VERBOSE=1 -B || die
-  cd -
-
-  einfo Build completed successfully
-}
-
-show_build_help_msg() {
-  "${BUILD_DIR}/compton" -h | less
-}
-
-main() {
-  cmake_prepare
-  cmake_build "${@}"
-  # show_build_help_msg
-}
-
-main "${@}"
-- 
2.20.0

Flickering trails when dragging windows

Platform

Arch Linux x86_64

GPU, drivers, and screen setup

NVidia GTX 1060, nvidia 410.57, single monitor.

Compton version

git-v1-103-gaa2098e-2018-10-13

Compton configuration:

# Shadow
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 16;
shadow-offset-x = -24;
shadow-offset-y = -24;
shadow-opacity = 0.5;
shadow-exclude = [
	"class_g = 'Conky'",
	"class_g ?= 'xfce-notifyd'",
	"_GTK_FRAME_EXTENTS@:c"
];
shadow-exclude-reg = "x20+0+0";

# Opacity
alpha-step = 0.06;

# Blur
blur-background = true;
blur-kern = "15,15,0.256376,0.307108,0.357801,0.405442,0.446840,0.478973,0.499352,0.506336,0.499352,0.478973,0.446840,0.405442,0.357801,0.307108,0.256376,0.307108,0.367879,0.428604,0.485672,0.535261,0.573753,0.598165,0.606531,0.598165,0.573753,0.535261,0.485672,0.428604,0.367879,0.307108,0.357801,0.428604,0.499352,0.565840,0.623615,0.668461,0.696902,0.706648,0.696902,0.668461,0.623615,0.565840,0.499352,0.428604,0.357801,0.405442,0.485672,0.565840,0.641180,0.706648,0.757465,0.789693,0.800737,0.789693,0.757465,0.706648,0.641180,0.565840,0.485672,0.405442,0.446840,0.535261,0.623615,0.706648,0.778801,0.834806,0.870325,0.882497,0.870325,0.834806,0.778801,0.706648,0.623615,0.535261,0.446840,0.478973,0.573753,0.668461,0.757465,0.834806,0.894839,0.932912,0.945959,0.932912,0.894839,0.834806,0.757465,0.668461,0.573753,0.478973,0.499352,0.598165,0.696902,0.789693,0.870325,0.932912,0.972604,0.986207,0.972604,0.932912,0.870325,0.789693,0.696902,0.598165,0.499352,0.506336,0.606531,0.706648,0.800737,0.882497,0.945959,0.986207,0.986207,0.945959,0.882497,0.800737,0.706648,0.606531,0.506336,0.499352,0.598165,0.696902,0.789693,0.870325,0.932912,0.972604,0.986207,0.972604,0.932912,0.870325,0.789693,0.696902,0.598165,0.499352,0.478973,0.573753,0.668461,0.757465,0.834806,0.894839,0.932912,0.945959,0.932912,0.894839,0.834806,0.757465,0.668461,0.573753,0.478973,0.446840,0.535261,0.623615,0.706648,0.778801,0.834806,0.870325,0.882497,0.870325,0.834806,0.778801,0.706648,0.623615,0.535261,0.446840,0.405442,0.485672,0.565840,0.641180,0.706648,0.757465,0.789693,0.800737,0.789693,0.757465,0.706648,0.641180,0.565840,0.485672,0.405442,0.357801,0.428604,0.499352,0.565840,0.623615,0.668461,0.696902,0.706648,0.696902,0.668461,0.623615,0.565840,0.499352,0.428604,0.357801,0.307108,0.367879,0.428604,0.485672,0.535261,0.573753,0.598165,0.606531,0.598165,0.573753,0.535261,0.485672,0.428604,0.367879,0.307108,0.256376,0.307108,0.357801,0.405442,0.446840,0.478973,0.499352,0.506336,0.499352,0.478973,0.446840,0.405442,0.357801,0.307108,0.256376";
blur-background-exclude = [
	"window_type = 'dock'",
	"window_type = 'desktop'",
	"_GTK_FRAME_EXTENTS@:c",
	"class_g = 'slop'",
];
resize-damage = 7;

# Fading
fading = true;
fade-in-step = 0.08;
fade-out-step = 0.08;
no-fading-destroyed-argb = true;

# Other
backend = "glx";
vsync = "opengl-swc";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
paint-on-overlay = true;
unredir-if-possible = true;
unredir-if-possible-delay = 1000;
detect-transient = true;
detect-client-leader = true;

# GLX
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
glx-swap-method = "copy";
glx-use-gpushader4 = true;
xrender-sync = true;
xrender-sync-fence = true;

# Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; };
};

Steps of reproduction

  1. Build from any commit since aa2098e
  2. Drag a window around

Expected behavior

No artifacts or trails on window dragging

Current Behavior

Window leaves a flickering trail of afterimages which clears itself after being dragged for a while, then starts again

Other details

I've nailed the problem down to that one commit after a bisect, I'm not familiar with this project's code so I don't know why this has started happening and how it could be fixed.

Error on compilation

Platform

Kubuntu Desktop 18.04 amd64

Expected behavior

After installing all the dependencies, it would take a little bit and compile fine

Current Behavior

It spits out the this error

Fluxbox submenus missing.

Platform

Archlinux 4.18.16-arch1-1-ARCH

GPU, drivers, and screen setup

NVIDIA GTX1050Ti NVIDIA Driver Version:410.66

Environment

Fluxbox

Compton version

v3-rc2-18-gc0d7f9d

Compton configuration:

# Shadow
shadow = true;					# Enabled client-side shadows on windows.
no-dock-shadow = true;				# Avoid drawing shadows on dock/panel windows.
no-dnd-shadow = true;				# Don't draw shadows on DND windows.
						# window. Fix some weirdness with ARGB windows.
shadow-radius = 7;				# The blur radius for shadows. (default 12)
shadow-offset-x = -7;				# The left offset for shadows. (default -15)
shadow-offset-y = -7;				# The top offset for shadows. (default -15)
# shadow-opacity = 0.7;				# The translucency for shadows. (default .75)
# shadow-red = 0.0;				# Red color value of shadow. (0.0 - 1.0, defaults to 0)
# shadow-green = 0.0;				# Green color value of shadow. (0.0 - 1.0, defaults to 0)
# shadow-blue = 0.0;				# Blue color value of shadow. (0.0 - 1.0, defaults to 0)
shadow-exclude = [ "n:e:Notification" ];	# Exclude conditions for shadows.
# shadow-exclude = "n:e:Notification";
shadow-ignore-shaped = true;			# Avoid drawing shadow on all shaped windows
						# (see also: --detect-rounded-corners)

# Opacity
menu-opacity = 1.0;				# The opacity for menus. (default 1.0)
inactive-opacity = 1.0;				# Default opacity of inactive windows. (0.0 - 1.0)
# active-opacity = 0.8;				# Default opacity for active windows. (0.0 - 1.0)
frame-opacity = 0.9;				# Opacity of window titlebars and borders. (0.1 - 1.0)
# inactive-opacity-override = true;		# Let inactive opacity set by 'inactive-opacity' overrides
						# value of _NET_WM_OPACITY. Bad choice.
alpha-step = 0.06;				# XRender backend: Step size for alpha pictures. Increasing
						# it may result in less X resource usage,
						# Yet fading may look bad.
#inactive-dim = 0.2;				# Dim inactive windows. (0.0 - 1.0)
# inactive-dim-fixed = true;			# Do not let dimness adjust based on window opacity.
blur-background = true;				# Blur background of transparent windows.
						# Bad performance with X Render backend.
						# GLX backend is preferred.
blur-background-frame = true;			# Blur background of opaque windows with transparent
						# frames as well.
blur-background-fixed = false;			# Do not let blur radius adjust based on window opacity.
blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
						# Exclude conditions for background blur.

# Fading
fading = false;			# Fade windows during opacity changes.
# fade-delta = 30;		# The time between steps in a fade in milliseconds. (default 10).
fade-in-step = 0.03;		# Opacity change between steps while fading in. (default 0.028).
fade-out-step = 0.03;		# Opacity change between steps while fading out. (default 0.03).
# no-fading-openclose = true;	# Avoid fade windows in/out when opening/closing.
fade-exclude = [ ];		# Exclude conditions for fading.

# Other
backend = "glx"		# Backend to use: "xrender" or "glx". GLX backend is typically
			# much faster but depends on a sane driver.
mark-wmwin-focused = true;	# Try to detect WM windows and mark them as active.
mark-ovredir-focused = true;	# Mark all non-WM but override-redirect windows active (e.g. menus).
use-ewmh-active-win = false;	# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
				# instead of using FocusIn/Out events. Usually more reliable but
				# depends on a EWMH-compliant WM.
detect-rounded-corners = true;	# Detect rounded corners and treat them as rectangular when --shadow-ignore- shaped is on.
detect-client-opacity = true;	# Detect _NET_WM_OPACITY on client windows, useful for window
				# managers not passing _NET_WM_OPACITY of client windows to frame
				# windows.
refresh-rate = 0;		# For --sw-opti: Specify refresh rate of the screen. 0 for auto.
vsync = "opengl";		# "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc" 
				# See man page for more details.
dbe = false;			# Enable DBE painting mode. Rarely needed.
paint-on-overlay = true;	# Painting on X Composite overlay window. Recommended.
sw-opti = false;		# Limit compton to repaint at most once every 1 / refresh_rate.
				# Incompatible with certain VSync methods.
unredir-if-possible = false;	# Unredirect all windows if a full-screen opaque window is
				# detected, to maximize performance for full-screen windows.
focus-exclude = [ ];		# A list of conditions of windows that should always be considered
				# focused.
detect-transient = true;	# Use WM_TRANSIENT_FOR to group windows, and consider windows in
				# the same group focused at the same time.
detect-client-leader = true;	# Use WM_CLIENT_LEADER to group windows.
invert-color-include = [ ];	# Conditions for windows to be painted with inverted color.

# GLX backend			# GLX backend fine-tune options. See man page for more info.
glx-no-stencil = true;		# Recommended.
glx-copy-from-front = false;	# Useful with --glx-swap-method,
#glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
glx-no-rebind-pixmap = true;	# Recommended if it works.	
glx-swap-method = "undefined";	# See man page.

# Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; };
  # fade: Fade the particular type of windows.
  # shadow: Give those windows shadow
  # opacity: Default opacity for the type of windows.
  # focus: Whether to always consider windows of this type focused.
};

Steps of reproduction

  1. Place line compton & in ./fluxbox/startup
  2. After boot open fluxbox menu (right click)

Expected behavior

Opens menu with submenus.

Current Behavior

Shows only root menu and most of submenus collapsed (not all). Looks like size of submenu windows is zero.

Other details

Compton v2 works just fine.
If i kill compton and restart it manually, all works fine.

Build compton without asciidoc

Platform

Ubuntu 18.04

Compton version

Master build

Steps of reproduction

asciidoc has a lot require packages (800+ mb). So I went to install via apt-get --no-install-recommends install asciidoc for smaller packages. The log from ninja-build

[1/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/win.c.o' -MF 'src/compton@exe/win.c.o.d' -o 'src/compton@exe/win.c.o' -c ../src/win.c
[2/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/x.c.o' -MF 'src/compton@exe/x.c.o.d' -o 'src/compton@exe/x.c.o' -c ../src/x.c
[3/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/config.c.o' -MF 'src/compton@exe/config.c.o.d' -o 'src/compton@exe/config.c.o' -c ../src/config.c
[4/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/c2.c.o' -MF 'src/compton@exe/c2.c.o.d' -o 'src/compton@exe/c2.c.o' -c ../src/c2.c
[5/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/config_libconfig.c.o' -MF 'src/compton@exe/config_libconfig.c.o.d' -o 'src/compton@exe/config_libconfig.c.o' -c ../src/config_libconfig.c
[6/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/opengl.c.o' -MF 'src/compton@exe/opengl.c.o.d' -o 'src/compton@exe/opengl.c.o' -c ../src/opengl.c
[7/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/compton.c.o' -MF 'src/compton@exe/compton.c.o.d' -o 'src/compton@exe/compton.c.o' -c ../src/compton.c
[8/11] /usr/bin/a2x --format manpage ../man/compton-trans.1.asciidoc -D /home/dikiaap/.local/src/compton/build/man
FAILED: man/compton-trans.1
/usr/bin/a2x --format manpage ../man/compton-trans.1.asciidoc -D /home/dikiaap/.local/src/compton/build/man
a2x: ERROR: "xmllint" --nonet --noout --valid "/home/dikiaap/.local/src/compton/build/man/compton-trans.1.xml" returned non-zero exit status 4
[9/11] cc  -Isrc/compton@exe -Isrc -I../src -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -std=c11 '-DCOMPTON_VERSION="v3"' -DNDEBUG -D_GNU_SOURCE -Wall -Wextra -Wno-unused-parameter -Wnonnull -Wshadow -DCONFIG_XSYNC -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DCONFIG_DBUS -MD -MQ 'src/compton@exe/dbus.c.o' -MF 'src/compton@exe/dbus.c.o.d' -o 'src/compton@exe/dbus.c.o' -c ../src/dbus.c
[10/11] /usr/bin/a2x --format manpage ../man/compton.1.asciidoc -D /home/dikiaap/.local/src/compton/build/man
FAILED: man/compton.1
/usr/bin/a2x --format manpage ../man/compton.1.asciidoc -D /home/dikiaap/.local/src/compton/build/man
a2x: ERROR: "xmllint" --nonet --noout --valid "/home/dikiaap/.local/src/compton/build/man/compton.1.xml" returned non-zero exit status 4
ninja: build stopped: subcommand failed.

Opacity-rule doesn't work

// The template below is for reporting bugs. For feature requests and others, feel free to delete irrelevant entries.

Platform

Arch Linux

GPU, drivers, and screen setup

Intel, don't know, two monitors configured side-by-side with xrandr

Environment

Openbox

Compton version

// You can run compton --version to get that
v3-rc2-18-gc0d7f9d

Compton configuration:

// Paste your configuration here
# Shadows
# -------
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 7;
shadow-offset-x = -8;
shadow-offset-y = -4;
shadow-opacity = 0.7;
shadow-exclude = [
    "! name~=''",
    "name = 'Notification'",
    "name = 'xfce4-notifyd'",
    "name *= 'VLC'",
    "name *= 'albert'",
    "name *= 'compton'",
    "name *= 'Chromium'",
    "name *= 'Chrome'",
    "class_g = 'Conky'",
    "class_g ?= 'Notify-osd'",
    "class_g ?= 'Xfce4-notifyd'",
    "class_g ?= 'Xfce4-power-manager'"
];

# Opacity
# -------
menu-opacity = 0.9;
frame-opacity = 0.9;
inactive-opacity = 0.9;
active-opacity = 1.0;
#inactive-opacity-override = true;
opacity-rule = [ 
	"100:name *?= 'vlc'",
	"100:class_g *= 'Xfce4-terminal'", 
	"100:class_g *= 'gthumb'" 
];

# Other
# -----
paint-on-overlay = true;

# Window type settings
# --------------------
wintypes:
{
    tooltip =
    {
        shadow = false;
        opacity = 0.95;
        focus = true;
    };
};

Steps of reproduction

// If you can reliably reproduce this bug, please describe the quickest way to do so
// This information will greatly help us diagnosing and fixing the issue.

Expected behavior

inactive-opacity doesn't apply on certain apps' windows

Current Behavior

Every inactive windows are applied transparent.

Other details

// If your problem is visual, you are encouraged to record a short video when the problem occurs and link to it here.

urxvt very slow after d7cff56cad779ee30769ec6b1a78ebb0c23281b8

Hi,

The commit d7cff56 seems to have introduced a regression: urxvt font drawing becomes very slow. More specifically, urxvt with the font 7x13 and window size of about 1920x2160 takes about 300-500ms to draw its contents with mc running in it.

Platform

Arch Linux (x64)

GPU, drivers, and screen setup

RX Vega 64, AMDGPU drivers (Linux 4.18.7)

Visual Artifacts on certain gtk window

Platform

Archlinux

GPU, drivers, and screen setup

GPU, drivers, and screen setup: i915 (intel i5-4210U CPU @ 1.70GHz)
modsettings
i3 on xorg(xorg-server 1.20.1-1), mesa 18.2.2-1

Compton version

v3-rc1-3-gf84336a ( compton-git 2:566_Next.1.gf84336a_2018.10.16-1 )

Compton configuration:

N/A

Current Behavior

On Floating mode in i3 windows xp like Visual Artifacts can be seen in certain windows while moving.

Preview

https://ptpb.pw/YjfZ (Bad audio warning)

GTK window on KDE doesnt update when focus is lost

Platform

Manjaro Linux x86_64 unstable

GPU, drivers, and screen setup

AMD RX 580 with latest mesa-git

Environment

KDE Plasma with Compton as compositor

Compton version

git-master and git-next have the issue
v2.0-2 (from official manjaro repo) doesn't

Compton configuration:

Tried switching every config possible and bug still triggers, even with default everything

Steps of reproduction

Open any GTK application under KDE Plasma, then open any other window that covers it. If you switch back to GTK app it's window stay partly blank/unrefreshed until you move it.

Other details

https://www.youtube.com/watch?v=trB5aqFAMOM&feature=youtu.be - video of reproduction
I don't show in the video, but if I hover the cursor slowly over the taskbar, wait the thumbnail to appear and then click again to switch the bug doesn't trigger at all.

Poor performance when vsync is enabled

Platform

Arch Linux

GPU, drivers, and screen setup

Radeon RX580, amdgpu

Environment

i3-git

Compton version

Latest -git (v3-rc2-3-ga47f112 as of this writing)

Compton configuration:

backend = "glx"
paint-on-overlay = true
unredir-if-possible = true
glx-no-stencil = true
glx-no-rebind-pixmap = true
glx-swap-method = "copy"

opacity-rule = [
    "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];

Testing

The following vsync modes were tested, with GALLIUM_HUD=fps to have real numbers to compare:

  • opengl-swc/opengl-mswc: massive stutter when dragging windows even though the HUD reads 60 fps. These are enabled by default with mesa and libdrm, so the rest requires vblank_mode=0 in the environment to prevent that from interfering.
  • No vsync at all: nearly 1000 fps when dragging windows, perfectly smooth but obviously tears all over the screen.
  • opengl or drm: smooth, (almost) no tearing, slight dips when switching workspaces.
  • opengl-oml: fails to vsync.

Flickering and rendering issues; non-functional (Nouveau)

Platform

Arch Linux (4.18.16-arch1-1-ARCH)

GPU, drivers, and screen setup

  • NVidia GTX 670,
  • xf86-video-nouveau and mesa (OpenGL)
  • Two monitors configured side-by-side with xrandr

Environment

  • i3-wm

Compton version

v3-rc2-18-gc0d7f9d

Compton configuration:

Default

Steps of reproduction

  1. Start compton

Expected behaviour

composite manager runs and provides compositing

Current Behaviour

Severe rendering issues; rapid flickering; window frequently disappears (see video)

Other details

Link to video (Google Drive - download if stream doesn't work) of behaviour: compton_issue.mp4
The program vlc is running in the active window as an example.

Message is printed repeatedly: 'delayed_draw_callback(): 0.000000'

Hi,

I'm maintaining the compton package for Arch Linux, and someone reported this bug: https://bugs.archlinux.org/task/60647

I have a Nvidia card and am using the Nouveau driver and i3wm. compton-2.0-2 runs well on my system.

When running compton 3.0-1 in an X session (i3wm), the screen flickers erratically and the system is unusable.

The following message is printed repeatedly: 'delayed_draw_callback(): 0.000000'

Additional Information:

  • Kernel: 4.18.16-arch1-1-ARCH
  • Package Version: 3.0-1
  • Steps to reproduce: Start compton

Feature request:

Could the delayed_draw_callback() messages be less verbose, or silenced?

The default Arch Linux configuration for compton does not trigger the message, but many people will upgrade compton and continue to use their old configuration which does trigger this behavior.

crash because of failed refresh rate detection after screen blanking with 144Hz monitor

Platform

Arch Linux kernel 4.19.2

GPU, drivers, and screen setup

Radeon RX 560 driving two monitors configured in xconf (main running on 144Hz and other on 60Hz).
xf86-video-amdgpu 18.1.0-1 and mesa 18.2.5-1
Output of glxinfo -B:

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: Radeon RX 560 Series (POLARIS11, DRM 3.27.0, 4.19.2-ck1-custom2, LLVM 7.0.0) (0x67ff)
    Version: 18.2.5
    Accelerated: yes
    Video memory: 4096MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 4.4
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 3926 MB, largest block: 3926 MB
    VBO free aux. memory - total: 4091 MB, largest block: 4091 MB
    Texture free memory - total: 3926 MB, largest block: 3926 MB
    Texture free aux. memory - total: 4091 MB, largest block: 4091 MB
    Renderbuffer free memory - total: 3926 MB, largest block: 3926 MB
    Renderbuffer free aux. memory - total: 4091 MB, largest block: 4091 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 4096 MB
    Total available memory: 8192 MB
    Currently available dedicated video memory: 3926 MB
OpenGL vendor string: X.Org
OpenGL renderer string: Radeon RX 560 Series (POLARIS11, DRM 3.27.0, 4.19.2-ck1-custom2, LLVM 7.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.2.5
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.4 (Compatibility Profile) Mesa 18.2.5
OpenGL shading language version string: 4.40
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 18.2.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

I'm running i3-gaps with a polybar instance

Compton version

compton v4
Output of compton --diagnostics:

**Version:** v4

### Extensions:

* Name Pixmap: Yes
* Shape: Yes
* XRandR: Yes
* Present: Present

### Misc:

* Use Overlay: Yes

Compton configuration:

#################################
#
# Backend
#
#################################

# Backend to use: "xrender" or "glx".
# GLX backend is typically much faster but depends on a sane driver.
backend = "xrender";

#################################
#
# GLX backend
#
#################################

### glx-no-stencil = true; ###

# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
# but a 20% increase when only 1/4 is.
# My tests on nouveau show terrible slowdown.
# Useful with --glx-swap-method, as well.
### glx-copy-from-front = false; ###

# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
# May break VSync and is not available on some drivers.
# Overrides --glx-copy-from-front.
# glx-use-copysubbuffermesa = true;

# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# Recommended if it works.
# glx-no-rebind-pixmap = true;


# GLX backend: GLX buffer swap method we assume.
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
# undefined is the slowest and the safest, and the default value.
# copy is fastest, but may fail on some drivers,
# 2-6 are gradually slower but safer (6 is still faster than 0).
# Usually, double buffer means 2, triple buffer means 3.
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
# Useless with --glx-use-copysubbuffermesa.
# Partially breaks --resize-damage.
# Defaults to undefined.
### glx-swap-method = "undefined"; ###

#################################
#
# Shadows
#
#################################

# Enabled client-side shadows on windows.
shadow = true;
# Don't draw shadows on DND windows.
no-dnd-shadow = true;
# Avoid drawing shadows on dock/panel windows.
no-dock-shadow = true;
# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.
clear-shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 5;
# The left offset for shadows. (default -15)
shadow-offset-x = -5;
# The top offset for shadows. (default -15)
shadow-offset-y = -5;
# The translucency for shadows. (default .75)
shadow-opacity = 0.5;

# Set if you want different colour shadows
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;

# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
shadow-exclude = [
    "! name~=''",
    "name = 'Notification'",
    "name = 'Plank'",
    "name = 'Docky'",
    "name = 'Kupfer'",
    "name = 'xfce4-notifyd'",
    "name *= 'VLC'",
    "name *= 'compton'",
    "name *= 'Chromium'",
    "name *= 'Chrome'",
    "class_g = 'Conky'",
    "class_g = 'Kupfer'",
    "class_g = 'Synapse'",
    "class_g ?= 'Notify-osd'",
    "class_g ?= 'Cairo-dock'",
    "class_g ?= 'Xfce4-notifyd'",
    "class_g ?= 'Xfce4-power-manager'",
    "_GTK_FRAME_EXTENTS@:c"
];
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
shadow-ignore-shaped = false;

#################################
#
# Opacity
#
#################################

menu-opacity = 1;
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
alpha-step = 0.06;

# Dim inactive windows. (0.0 - 1.0)
# inactive-dim = 0.2;
# Do not let dimness adjust based on window opacity.
# inactive-dim-fixed = true;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
# blur-background = true;
# Blur background of opaque windows with transparent frames as well.
# blur-background-frame = true;
# Do not let blur radius adjust based on window opacity.
blur-background-fixed = false;
blur-background-exclude = [
    "window_type = 'dock'",
    "window_type = 'desktop'"
];

#################################
#
# Fading
#
#################################

# Fade windows during opacity changes.
fading = true;
# The time between steps in a fade in milliseconds. (default 10).
fade-delta = 4;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.03;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.03;
# Fade windows in/out when opening/closing
# no-fading-openclose = true;

# Specify a list of conditions of windows that should not be faded.
fade-exclude = [ ];

#################################
#
# Other
#
#################################

# Try to detect WM windows and mark them as active.
mark-wmwin-focused = true;
# Mark all non-WM but override-redirect windows active (e.g. menus).
mark-ovredir-focused = true;
# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
# Usually more reliable but depends on a EWMH-compliant WM.
use-ewmh-active-win = true;
# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
detect-rounded-corners = true;

# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
# This prevents opacity being ignored for some apps.
# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
detect-client-opacity = true;

# Specify refresh rate of the screen.
# If not specified or 0, compton will try detecting this with X RandR extension.
refresh-rate = 0;

# Set VSync method. VSync methods currently available:
# none: No VSync
# drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers.
# opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers.
# opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers.
# opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental.
# opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use.
# (Note some VSync methods may not be enabled at compile time.)
vsync = "opengl-swc";

# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
# Reported to have no effect, though.
dbe = false;
# Painting on X Composite overlay window. Recommended.
paint-on-overlay = true;

# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
# unless you wish to specify a lower refresh rate than the actual value.
sw-opti = true;

# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
# Known to cause flickering when redirecting/unredirecting windows.
# paint-on-overlay may make the flickering less obvious.
unredir-if-possible = true;

# Specify a list of conditions of windows that should always be considered focused.
focus-exclude = [ ];

# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
detect-transient = true;
# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
detect-client-leader = true;

#################################
#
# Window type settings
#
#################################

wintypes:
{
    tooltip =
    {
        # fade: Fade the particular type of windows.
        fade = true;
        # shadow: Give those windows shadow
        shadow = false;
        # opacity: Default opacity for the type of windows.
        opacity = 0.85;
        # focus: Whether to always consider windows of this type focused.
        focus = true;
    };
};

Steps of reproduction

  1. Be idle until the monitors blank
  2. Wake up the system (e.g. move the mouse)

Expected behavior

Compton should continue operation like before

Current Behavior

Compton crashes because of the 144Hz monitor

Details

Console log:

ev_screen_change_notify(): Refresh rate detection failed, --sw-opti disabled.Floating point exception (core dumped)

Tearing when back from sleep/screensaver

Platform

Archlinux - latest

GPU, drivers, and screen setup

intel - hd630

Environment

just X and minimal wrapper to call X

Compton version

v4-rc1-14-gf834cf2

Compton configuration:

Really doesn't matter.

Steps of reproduction

  1. put pc to sleep or let it fall into screensaver mode (black screen), I use slcock to lock screen
  2. press any key to bring it back
  3. check xorg.log will see some pauses like below:
[   281.243] (II) systemd-logind: got pause for 13:66
[   281.243] (II) systemd-logind: got pause for 13:64
[   281.243] (II) systemd-logind: got pause for 13:72
[   281.243] (II) systemd-logind: got pause for 13:65
[   281.243] (II) systemd-logind: got pause for 13:73
  1. now every X apps has slow response on and start tearing - means like compton has never started, but in background it is actually running: ps aux | grep compton
    Note: base on my test, mostly when you got pause you have the issue but sometime put X in sleep and wake it up doesn't have this issue, so it has random element.

Expected behavior

compton can also be woke up in an consistent way.

Current Behavior

sometime and somehow put X into sleep mode also make we losing compton function.

Other details

I use KMS mode, no intel kernel options when booting, no fastboot, also disabled fastboot in bios.
I use silent boot options in kernels - but I don't think these options bring problem.

I haven't tested to kill compton and manually re-call it when issue happens.

I start compton in .xinitrc: compton --config $HOME/.config/compton.conf &>/dev/null 2>&1 &

[Discussion] Getting rid of GLX

I've noticed your notes on trying out Vulkan and EGL. Here are my personal findings on the matter.

The DRI3 extension can export X Pixmaps as kernel dma-buf objects. This is very useful, as you can use a pair of extensions in EGL and Vulkan to import those objects and use them for texturing.
This is the same mechanism that is used by PRIME for multi-GPU systems (eg integrated + discrete graphics) to share buffers between devices, and by Wayland for both multi-GPU support and compositing.

Unfortunately NVIDIA's proprietary driver does not support dma-buf (for licensing reasons), so DRI3 is not available either on that driver. They do support another, standard, EGL_KHR_stream extension which is completely different. I don't know if that can be used to export X11 Pixmaps in the same way.
All relevant DRM-based (i915/i965, radeon/amdgpu, nouveau) drivers support dma-buf and DRI3. It's not clear whether they support EGL_KHR_stream.
This is a problem for Wayland compositors as well, as it requires a lot of duplicate effort to support both extensions, and most of them have decided not to support the proprietary driver at all.

Things apparently look a little better for Vulkan, but I'm not entirely sure if that helps us at all on X.

Relevant extensions:

  • EGL_EXT_image_dma_buf_import / EGL_EXT_image_dma_buf_import_modifiers
  • VK_EXT_external_memory_dma_buf / VK_EXT_image_drm_format_modifier

Using XCB event processing is incompatible with GLX on DRI2

Platform

Arch Linux

GPU, drivers, and screen setup

Intel graphics (Skylake), modesetting driver, mesa 18.2.4

name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel Open Source Technology Center (0x8086)
Device: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) (0x1916)
Version: 18.2.4
Accelerated: yes
Video memory: 3072MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.5
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.2.4
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 18.2.4
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 18.2.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

XFCE

Compton version

Version: v4-rc1-6-gb18d46b

Extensions:

  • Name Pixmap: Yes
  • Shape: Yes
  • XRandR: Yes
  • Present: Present

Misc:

  • Use Overlay: Yes

Compton configuration:

backend = "glx";
vsync = "opengl-swc";
detect-client-opacity = true;
paint-on-overlay = true;

Steps of reproduction

  1. Start compton

Expected behavior

Screen does not flicker horribly

Current Behavior

Screen flickers horribly

Other details

Bisected:

# bad: [403d170f326e7d11d73bd89c687ee312f715c8f6] Merge branch 'next'
# good: [316eac0613bf342ff91cc645a6c3c80e6b9083fb] GitHub: Add an issue template
git bisect start 'master' '316eac0613bf342ff91cc645a6c3c80e6b9083fb'
# bad: [18022181ee8f198146fe26479cf56af382af015d] Make sure to clear the rectangles
git bisect bad 18022181ee8f198146fe26479cf56af382af015d
# bad: [209b751b2524ce7eb93fa3c50aebe823ddf800ab] Port more stuff to xcb
git bisect bad 209b751b2524ce7eb93fa3c50aebe823ddf800ab
# good: [cac8094ce12cd40706fb48f9ab35354d9ee7c48f] Update manpage
git bisect good cac8094ce12cd40706fb48f9ab35354d9ee7c48f
# good: [c37c6c41edd3008f1cf0c663688ae058f6b65deb] Fix Makefile dependency
git bisect good c37c6c41edd3008f1cf0c663688ae058f6b65deb
# good: [2adfdfa897a43dbd1466e172eca6e0b7783328fe] Clear prototypes
git bisect good 2adfdfa897a43dbd1466e172eca6e0b7783328fe
# good: [967d9f32eaadb64961ec6638cc478ca3403b0329] Workaround for what seems to be a race in Xserver
git bisect good 967d9f32eaadb64961ec6638cc478ca3403b0329
# bad: [7af815a0aaaffc02e114e1d0adccb5f87dcc3548] Proper fix for screen freeze
git bisect bad 7af815a0aaaffc02e114e1d0adccb5f87dcc3548
# skip: [43f3744fea075e5fdc6e01a0e66a00b15833cddb] Revert "Workaround for what seems to be a race in Xserver"
git bisect skip 43f3744fea075e5fdc6e01a0e66a00b15833cddb
# only skipped commits left to test
# possible first bad commit: [7af815a0aaaffc02e114e1d0adccb5f87dcc3548] Proper fix for screen freeze
# possible first bad commit: [43f3744fea075e5fdc6e01a0e66a00b15833cddb] Revert "Workaround for what seems to be a race in Xserver"

MATE+Compton badly move Gnome apps with keyboard shortcuts

I submitted a bug at mate-desktop/marco#414, but it may be related to compton, so I'll leave this here.

Platform

Arch Linux x86_64

GPU, drivers, and screen setup

Intel HD Graphics 630, i915 driver, one monitor

Compton version

v2.0

Compton configuration:

$  grep -vE '^\s*(#|$)' /etc/xdg/compton.conf
backend = "glx";
glx-no-stencil = true;
glx-copy-from-front = false;
glx-swap-method = "undefined";
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 5;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-opacity = 0.5;
shadow-exclude = [
    "! name~=''",
    "name = 'Notification'",
    "name = 'Plank'",
    "name = 'Docky'",
    "name = 'Kupfer'",
    "name = 'xfce4-notifyd'",
    "name *= 'VLC'",
    "name *= 'compton'",
    "name *= 'Chromium'",
    "name *= 'Chrome'",
    "class_g = 'Conky'",
    "class_g = 'Kupfer'",
    "class_g = 'Synapse'",
    "class_g ?= 'Notify-osd'",
    "class_g ?= 'Cairo-dock'",
    "class_g ?= 'Xfce4-notifyd'",
    "class_g ?= 'Xfce4-power-manager'",
    "_GTK_FRAME_EXTENTS@:c"
];
shadow-ignore-shaped = false;
menu-opacity = 1;
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
alpha-step = 0.06;
blur-background-fixed = false;
blur-background-exclude = [
    "window_type = 'dock'",
    "window_type = 'desktop'"
];
fading = true;
fade-delta = 4;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-exclude = [ ];
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = "opengl-swc";
dbe = false;
paint-on-overlay = true;
sw-opti = true;
unredir-if-possible = true;
focus-exclude = [ ];
detect-transient = true;
detect-client-leader = true;
wintypes:
{
    tooltip =
    {
        fade = true;
        shadow = false;
        opacity = 0.85;
        focus = true;
    };
};

Steps of reproduction

  1. install MATE 1.20
  2. check mate-desktop issue above

Expected behavior

check mate-desktop issue above

Current Behavior

check mate-desktop issue above

Ask chjj to be the new maintainer of compton

Hi @yshui,
As your fork seems to be really active and fixes a lot of bugs and performance issues that compton has, did you have asked @chjj to be the new maintainer of compton?

If you want to continue to maintain compton in the near future, it would be really beneficial for the community, as his repo has more users than yours.

Thanks a lot for your work!

Performance decrease from arch 2.0 -> 3.0 packages in vbox

I use arch in a virtualbox VM on my work laptop. With the chjj official repo, I can not get 3D acceleration working, and leave compton disabled at any resolution past 1920x1200 due to very low performance. But starting with compton-2.0-1-x86_64.pkg.tar.xz acceleration started working, and my CPU usage dropped way down to 8% at 2560x1600 and no visual keyboard lag.

But with compton 3.0-1-x86_64.pkg.tar.xz and newer, the CPU usage increased and there is noticeable keyboard lag when typing (and ~16-25% CPU usage reported by top, so a bit more than double),.

I can reproduce this also with head of your branch, but I have not yet started git-bisecting this to try and narrow it down, but will as time allows.

Platform

Arch Linux as a Virtual Box guest

GPU, drivers, and screen setup

Virtualbox running at 250x1600, mesa 18.2.4, and glxinfo -B:

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: VMware, Inc. (0xffffffff)
    Device: llvmpipe (LLVM 7.0, 256 bits) (0xffffffff)
    Version: 18.2.4
    Accelerated: no
    Video memory: 16039MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 7.0, 256 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.2.4
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.1 Mesa 18.2.4
OpenGL shading language version string: 1.40
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.2.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

Environment

Plasma + i3-gaps

Compton configuration:

backend = "glx";
vsync = "none";
glx-copy-from-front = false;
glx-swap-method = "1";
glx-no-stencil = true;
glx-no-rebind-pixmap = false;
dbe = false;
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];

mark-wmwin-focused = true;
mark-ovredir-focused = true;
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-rounded-corners = false;
detect-client-opacity = true;
refresh-rate = 0;

wintypes :
{
  dock :
  {
    opacity = 1.0;
    shadlow = false;
  };
  tooltip :
  {
    fade = true;
    shadow = false;
    opacity = 0.95;
    focus = true;
  };
  menu :
  {
    fade = true;
    shadow = false;
  };
  dropdown_menu :
  {
    shadow = false;
  };
  popup_menu :
  {
    shadow = false;
  };
  utility :
  {
    shadow = false;
  };
};

opacity-rule = [
    "95:class_g = 'yakuake'",
    "95:class_g = 'konsole'",
    "95:class_g = 'Terminator'",
    "95:class_g = 'dolphin'",
];
menu-opacity = 0.95;
inactive-opacity = 1.0;
active-opacity = 1.0;
frame-opacity = 1.0;
inactive-opacity-override = false;

shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
shadow-radius = 16;
shadow-offset-x = -24;
shadow-offset-y = -22;
shadow-opacity = 1;
shadow-red = 0.0;
shadow-green = 0.0;
shadow-blue = 0.0;
shadow-exclude = "!I3_FLOATING_WINDOW@:c";
alpha-step = 0.06;
inactive-dim = 0.0;

blur-kern = "3x3box";
blur-background = true;
blur-background-frame = true;
blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];

fading = false;
fade-in-step = 0.05;
fade-out-step = 0.05;
fade-exclude = [ ];
no-fading-openclose = false;

Add new XDG config location

While now config detection can read ~/.compton.conf and ~/.config/compton.conf, adding ~/.config/compton/compton.conf to the order list is very helpful for some users who prefer to put config in a ~/.config/$x folder.

frame opacity setting not working in openbox

frame opacity setting not working in openbox
(other opacity settings seems to be ok ..ie inactive, menu etc)

Platform

Arch (Obarun)

GPU, drivers, and screen setup

NVIDIA Corporation GT218 [GeForce 210]
nvidia-340xx 340.107-43 and mesa 18.2.5-1

glxinfo -B                                   
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 1024 MB
    Total available memory: 1024 MB
    Currently available dedicated video memory: 958 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 210/PCIe/SSE2
OpenGL core profile version string: 3.3.0 NVIDIA 340.107
OpenGL core profile shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
[  1603.543313 ] error  152 XCB_DAMAGE_BAD_DAMAGE request  143 minor    2 serial   9005: "152"

OpenGL version string: 3.3.0 NVIDIA 340.107
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)

Environment

openbox

Compton version

compton --diagnostics
Version: v4

Extensions:

  • Name Pixmap: Yes
  • Shape: Yes
  • XRandR: Yes
  • Present: Present

Misc:

  • Use Overlay: Yes

Compton configuration:

# Shadow
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
#clear-shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
# shadow-opacity = 0.7;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-exclude = [
	"name = 'Notification'",
	"class_g = 'Conky'",
	"class_g ?= 'Notify-osd'",
	"class_g = 'Cairo-clock'",
	"_GTK_FRAME_EXTENTS@:c",
	"class_g = 'Firefox' && argb"
];
# shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;

# Opacity
menu-opacity = 0.8;
#inactive-opacity = 0.8;
# active-opacity = 0.8;
frame-opacity = 0.7;
inactive-opacity-override = false;
alpha-step = 0.06;
# inactive-dim = 0.2;
# inactive-dim-fixed = true;
# blur-background = true;
# blur-background-frame = true;
blur-kern = "3x3box";
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
# blur-background-fixed = true;
blur-background-exclude = [
	"window_type = 'dock'",
	"window_type = 'desktop'",
	"_GTK_FRAME_EXTENTS@:c"
];
# opacity-rule = [ "80:class_g = 'URxvt'" ];

# Fading
fading = true;
# fade-delta = 30;
fade-in-step = 0.03;
fade-out-step = 0.03;
# no-fading-openclose = true;
# no-fading-destroyed-argb = true;
fade-exclude = [ ];

# Other
backend = "xrender";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
# use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = "none";
dbe = false;
#paint-on-overlay = true;
# sw-opti = true;
# unredir-if-possible = true;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
# resize-damage = 1;

# GLX backend
# glx-no-stencil = true;
# glx-no-rebind-pixmap = true;
glx-swap-method = "undefined";
# glx-use-gpushader4 = true;
# xrender-sync = true;
# xrender-sync-fence = true;

# Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; };
};

Steps of reproduction

// If you can reliably reproduce this bug, please describe the quickest way to do so
// This information will greatly help us diagnosing and fixing the issue.

1.set "frame-opacity = 0.7;" in compton.conf
2.run compton --config /path/to/compton.conf

Expected behavior

window frame (title bar) should be semi-transparent

Current Behavior

it's not

Very bad performance and lag in VirtualBox

Platform

archlinux in virtualbox

GPU, drivers, and screen setup

vboxvideo

Environment

openbox and mate

Compton version

v3 with additional commits
https://git.archlinux.org/svntogit/community.git/commit/trunk?h=packages/compton&id=611a4d7d3012745b7243df25e1036f0e50ec7f78
and latest git

Compton configuration:

# running with empty config file

Steps of reproduction

Login to a desktop environment and start compton &

Expected behavior

no lag, no performance issues

Current Behavior

the whole desktop gets almost unusable with a really bad lag.

Other details

I´m using archlinux and the problem started with version 3.0-2 which cherrypicked a commit from github. The latest git version still has the issue. Downgrading the package to 3.0-1 solves it.

According to the changes made it must be related to changes before that point.

Fading doesn't affect window decorators.

Platform

Fedora 29

GPU, drivers, and screen setup

Graphics:
Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics
driver: i915 v: kernel
Display: x11 server: Fedora Project X.org 1.20.3 driver: modesetting
unloaded: fbdev,vesa resolution: 1920x1080~60Hz
OpenGL: renderer: Mesa DRI Intel Haswell Desktop v: 4.5 Mesa 18.2.4

Environment

XFCE 4.12

Compton version

Latest. Compiled from next branch.

Compton configuration:

# Shadow
shadow = true;
shadow-opacity = 0.5;
shadow-radius = 5;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-exclude = [
 "n:e:Notification",
 "n:e:Docky",
 "g:e:Synapse",
 "g:e:Conky",
 "n:w:*Firefox*",
 "n:w:*Chromium*",
 "n:w:*dockbarx*",
 "class_g ?= 'Cairo-dock'",
 "class_g ?= 'Xfce4-notifyd'",
 "class_g ?= 'Xfce4-power-manager'",
 "class_g ?= 'Notify-osd'",
 "_GTK_FRAME_EXTENTS@:c"
];
no-dock-shadow = true;
no-dnd-shadow = true; 

# Fading
fading = true;
# fade-delta = 30;
fade-in-step = 0.15;
fade-out-step = 0.15;
# no-fading-openclose = true;
# no-fading-destroyed-argb = true;
fade-exclude = [ ];

# Other
backend = "glx";
vsync = "opengl";

# OpenGL
glx-no-stencil = true;
glx-swap-method = "-1";
# xrender-sync = true;
# xrender-sync-fence = true;

# Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.90; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.95; }
  dropdown_menu = { opacity = 0.95; }
};

Steps of reproduction

With fading enabled start, close or minimize, unminimize windows (borders will always appear before actual window content)

Expected behavior

All window content nicely fading either in or out.

Current Behavior

Window decorator isn't affected by fading.

`--sw-opti` is broken when used together with `--benchmark`

Use these two together without any --vsync, and with a low --refresh-rate can cause screen to be updated more frequent than the refresh-rate.

In swopti_handle_timeout, the timeout calculation is flawed. It can't handle the case when it's called with little time in between. Because SWOPTI_TOLERANCE makes it think those two calls are in the same refresh slot.

Removal of xrender-sync-fence causing screen to not update on input

Platform

Arch Linux

GPU, drivers, and screen setup

Nvidia GTX 1080 ti, nvidia-drivers 410.66, mesa 18.2.4-1

 —— glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 11264 MB
    Total available memory: 11264 MB
    Currently available dedicated video memory: 10118 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1080 Ti/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 410.66
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 410.66
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 410.66
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

AwesomeWM

Compton version

—— compton --version
v3-rc2-18-gc0d7f9d

Compton configuration:

#
# Backend
#

backend = "glx";
glx-no-stencil = true;
glx-swap-method = "copy";
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;

#
# Fading
#

fading = true;
fade-delta = 4;
fade-in-step = 0.02;
fade-out-step = 0.02;
fade-exclude = [];

#
# Shadows
#

shadow = true;
no-dnd-shadow = true;
clear-shadow = true;
shadow-radius = 15;
shadow-offset-x = -15;
shadow-offset-y = -15;
shadow-opacity = 0.95;
shadow-exclude = [
  "_GTK_FRAME_EXTENTS@:c",
  "class_g = 'Bspwm' && class_i = 'presel_feedback'"
];

#
# Opacity
#

opacity-rule = [
  "50:class_g = 'Bspwm' && class_i = 'presel_feedback'"
];

#
# Other
#

paint-on-overlay = true;
unredir-if-possible = true;

#
# Window type
#

wintypes: {
  tooltip = {
    fade = true;
    shadow = false;
    opacity = 0.85;
  };
};

Steps of reproduction

  1. Start compton
  2. move between lines in vim and notice that the screen will stop updating

Expected behavior

The screen is always updated on input

Current Behavior

The screen isn't updated when it should be

Other details

This issue didn't start happening until these options were removed:

xrender-sync-fence = true;
xrender-sync = true;

per this commit.

Backround Wallpaper flickers when changing windows between workspaces

Platform

Arch Linux amd64
i3-gaps 4.15

GPU, drivers, and screen setup

Intel HD Graphics 5500
mode-setting driver, but it's the same with xf86-video-intel
one 1920x1080 monitor

Compton version

v2.0

Compton configuration:

Default one that comes with Arch except no-fading-openclose = true

backend = "glx";
glx-no-stencil = true;
glx-copy-from-front = false;
glx-swap-method = "undefined";
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 5;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-opacity = 0.5;
shadow-exclude = [
"! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'compton'",
"name *= 'Chromium'",
"name *= 'Chrome'",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'",
"_GTK_FRAME_EXTENTS@:c"
];
shadow-ignore-shaped = false;

menu-opacity = 1;
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
alpha-step = 0.06;

blur-background-fixed = false;
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'"
];

fading = true;
fade-delta = 4;
fade-in-step = 0.03;
fade-out-step = 0.03;
no-fading-openclose = true;

fade-exclude = [ ];
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;

detect-client-opacity = true;

refresh-rate = 0;

vsync = "opengl-swc";
dbe = false;
paint-on-overlay = true;
sw-opti = true;
unredir-if-possible = true;
focus-exclude = [ ];
detect-transient = true;
detect-client-leader = true;

wintypes:
{
tooltip =
{
fade = true;
shadow = false;
opacity = 0.85;
focus = true;
};
};

Steps of reproduction

  1. Enable smart_borders in i3 (or disable borders all together), so there is no borders when single app in workspace is open
  2. Open Chromium as only app in workspace
  3. Open any other app in other worspace
  4. Switch between workspaces

Expected behavior

No artifacts

Current Behavior

Background flashes for a bit when switching to Chromium, sometimes is more, sometime is less noticable, but if you switch back and forth you will notice

Other details

It doesn't happen with compton disabled, or I can't notice it.
Also it does not happen when there are even 1px border around window.
Disabling hardware acceleration in Chromium also seems to solve it.

It's very strage that 1px border solves it, what's the difference?, can I simulate same rendering for borderless windows without having to add border?

Visual artifacts when using blur with use-damage

GPU, drivers, and screen setup

NVIDIA GTX 1060, driver version: 410.73

Compton version

git-v0.1_beta2-87-g316eac0-2017-04-30

Compton configuration:

backend = "xrender";
blur-background = true;
clear-shadow = true;

Steps of reproduction

Start compton, place a transparent window on top of another window that updates frequently

Expected behavior

No artifacts

Current Behavior

Artifacts, see attached clip

Other details

This bug is caused by incorrect handling of pixels at the edge of damage area in compton's blur code.

blur_artifacts.zip

Lag in glx backend

Platform

ArchLinux

GPU, drivers, and screen setup

GTX 1060, single monitor

Compton version

v1-57-g97cd342

Compton configuration:

Reproducible with /dev/null

Steps of reproduction

  1. Start compton --config /dev/null --backend glx
  2. Move a transparent window around

Current Behavior

Xorg CPU usage shots up, and there is visible lag.

Other details

Xrender doesn't seem to have the lag, although Xorg is still using a lot of CPU in Xrender backend.

Discussion of technical config settings

At first: Thanks a lot for maintaining Compton, yshui. I don't know what I would do without it with free drivers and an Xorg session.

glx-no-rebind-pixmap It doesn't do any harm for me with proprietary Nvidia drivers and Mesa (RadeonSI). It doesn't increase performance in my benchmarks either. Perhaps it's only measurable with really slow GPUs? Safe to activate it by default, though?

vsync My opinion would be to make opengl the default setting since it shows lower input latency than the other modes with Mesa drivers (apart from DRM, which is currently not activated by default when compiling). Sometimes people tend to force other vsync modes on top of compositing (like that forcecompositionpipeline mess with Nvidia), but I don't see why an application shouldn't care for vsync on its own, assuming driver bugs aren't normal. And it's plausible to assume that a compositor should enable vsync by default.

glx-swap-methodI notice that setting it to buffer-age helps my GPU driver to stick to lower clocks to save power, contrary to any other possible value. I've also never encountered any problem with it and also other compositors use it by default. I always wonder why so many people don't have it in their configs. Perhaps because its description is a bit misleading?

paint-on-overlay Is said to help against flickering with unredir-if-possible and doesn't seem to cause any issues?

unredir-if-possible Gnome-Mutter automatically turns off compositing for fullscreen windows for best performance. However, it also offers applications to block turning off compositing in fullscreen, which Compton does not. If it's enabled by default, I think it would be a good idea to also exclude at least browsers by default too via unredir-if-possible-exclude to maintain transparency features etc.

Flickering and rendering issues (intel)

Platform

Archlinux 4.18.16-arch1-1-ARCH

GPU, drivers, and screen setup

Intel HD 5500, xf86-video-intel 1:2.99.917+853+g0932a6b3-1, mesa 18.2.3-1

Environment

qtile-python3

Compton version

v3-rc2-18-gc0d7f9d

Compton configuration:

backend = "glx";
glx-no-stencil = true;
glx-copy-from-front = false;
glx-use-copysubbuffermesa = false;
glx-no-rebind-pixmap = false;
glx-swap-method = "undefined";

shadow = false;
no-dnd-shadow = false;
no-dock-shadow = true;
clear-shadow = true;
shadow-radius = 0;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-opacity = 0;
shadow-exclude = [
    "! name~=''",
    "name = 'Notification'",
    "name = 'Plank'",
    "name = 'Docky'",
    "name = 'Kupfer'",
    "name = 'xfce4-notifyd'",
    "name *= 'VLC'",
    "name *= 'compton'",
    "name *= 'Chromium'",
    "name *= 'Chrome'",
    "class_g = 'Conky'",
    "class_g = 'Kupfer'",
    "class_g = 'Synapse'",
    "class_g ?= 'Notify-osd'",
    "class_g ?= 'Cairo-dock'",
    "class_g ?= 'Xfce4-notifyd'",
    "class_g ?= 'Xfce4-power-manager'",
    "_GTK_FRAME_EXTENTS@:c"
];
shadow-ignore-shaped = false;

menu-opacity = 1;
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
alpha-step = 0.06;
blur-background-fixed = false;
blur-background-exclude = [
    "window_type = 'dock'",
    "window_type = 'desktop'"
];

fading = true;
fade-delta = 5
fade-in-step = 0.05;
fade-out-step = 0.05;
fade-exclude = [ ];

mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;

vsync = "opengl";
dbe = false;
paint-on-overlay = true;
sw-opti = false;
unredir-if-possible = false;
focus-exclude = [ ];
detect-transient = true;
detect-client-leader = true;

wintypes:
{
    tooltip =
    {
        fade = true;
        shadow = false;
        opacity = 0.85;
        focus = true;
    };
};

Steps of reproduction

  1. Run compton v3 with my config

Expected behavior

Compton fades windows in and out and does vsyncing

Current Behavior

The screen flickers and parts of windows are not redrawn.

Other details

Here is a video showing the artifacts. v2 worked fine for me with this config.

Possible duplicate of #33 but that issue specifically mentioned nouveau so I thought I'd open a new one.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.