Giter Club home page Giter Club logo

picom's People

Contributors

9ary avatar airlied avatar asparagii avatar chjj avatar danakj avatar jauler avatar jbeich avatar jhcloos avatar jonaburg avatar keith-packard avatar kelleyk avatar koraynilay avatar liskin avatar mark-t avatar nejsan avatar nkeor avatar nwnk avatar orbea avatar patricol avatar proro485 avatar psychon avatar quequotion avatar richardgv avatar smlx 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

picom's Issues

fading and animation issue

I use bspwm in arch and everything works fine, but fading and animations don't work when opening new windows, changing workspaces using the default config

Mason can't find Pkg-config

Platform

Manjaro Linux x86_64

GPU, drivers, and screen setup

NVIDIA Quadro T2000 Mobile / Max-Q only one screen the : the one of my laptop (Dell Precision 5540), resolution 1920x1090.

Environment

WM: awesome

Steps of reproduction

yay -S picom-jonaburg-git

OR

git clone https://github.com/jonaburg/picom
cd picom
meson --buildtype=release . build
ninja -C build
# To install the binaries in /usr/local/bin (optional)
sudo ninja -C build install

Expected behavior

Installing picom

Current Behavior

Crashs while installing

Stack trace

The Meson build system
Version: 0.56.0
Source dir: /home/dagal/.cache/yay/picom-jonaburg-git/src/picom
Build dir: /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build
Build type: native build
Project name: picom
Project version: 7
Using 'CFLAGS' from environment with value: '-march=x86-64 -mtune=generic -O2 -pipe -fno-plt'
Using 'LDFLAGS' from environment with value: '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Using 'CPPFLAGS' from environment with value: '-D_FORTIFY_SOURCE=2'
C compiler for the host machine: cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the host machine: cc ld.bfd 2.35.1
Using 'CFLAGS' from environment with value: '-march=x86-64 -mtune=generic -O2 -pipe -fno-plt'
Using 'LDFLAGS' from environment with value: '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Using 'CPPFLAGS' from environment with value: '-D_FORTIFY_SOURCE=2'
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program git found: YES (/usr/bin/git)
Has header "stdc-predef.h" : YES
Compiler for C supports arguments -Wall: YES
meson.build:63: WARNING: Consider using the built-in warning_level option instead of using "-Wall".
Compiler for C supports arguments -Wcast-function-type: YES
Compiler for C supports arguments -Wignored-qualifiers: YES
Compiler for C supports arguments -Wmissing-parameter-type: YES
Compiler for C supports arguments -Wnonnull: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wno-type-limits: YES
Compiler for C supports arguments -Wold-style-declaration: YES
Compiler for C supports arguments -Woverride-init: YES
Compiler for C supports arguments -Wsign-compare: YES
Compiler for C supports arguments -Wtype-limits: YES
Compiler for C supports arguments -Wuninitialized: YES
Compiler for C supports arguments -Wshift-negative-value: YES
Compiler for C supports arguments -Wunused-but-set-parameter: YES
Compiler for C supports arguments -Wunused-parameter: YES
Compiler for C supports arguments -Wimplicit-fallthrough: YES
Compiler for C supports arguments -Wno-unknown-warning-option: NO
Compiler for C supports arguments -Wno-missing-braces: YES
Compiler for C supports arguments -Wconversion: YES
Compiler for C supports arguments -Wempty-body: YES

|Executing subproject test.h method meson
|
|Project name: test.h
|Project version: undefined
|C compiler for the host machine: cc (gcc 10.2.0 "cc (GCC) 10.2.0")
|C linker for the host machine: cc ld.bfd 2.35.1
|Build targets in project: 0
|Subproject test.h finished.

Did not find pkg-config by name 'pkg-config'
Found Pkg-config: NO
Found CMake: /usr/bin/cmake (3.19.2)
Run-time dependency libev found: NO (tried pkgconfig and cmake)
Library ev found: YES
Library m found: YES
Run-time dependency x11 found: NO (tried cmake)

src/meson.build:27:1: ERROR: Pkg-config binary for machine MachineChoice.HOST not found. Giving up.

A full log can be found at /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-logs/meson-log.txt

==> ERREUR : Une erreur s’est produite dans build().
    Abandon…
erreur lors de la construction : picom-jonaburg-git

meson-log.tx


Build started at 2021-01-07T11:22:15.196052
Main binary: /usr/bin/python
Build Options: -Dwith_docs=true -Dprefix=/usr -Dbuildtype=release
Python system: Linux
The Meson build system
Version: 0.56.0
Source dir: /home/dagal/.cache/yay/picom-jonaburg-git/src/picom
Build dir: /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build
Build type: native build
Project name: picom
Project version: 7
None of 'CC' are defined in the environment, not changing global flags.
Using 'CFLAGS' from environment with value: '-march=x86-64 -mtune=generic -O2 -pipe -fno-plt'
Using 'LDFLAGS' from environment with value: '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Using 'CPPFLAGS' from environment with value: '-D_FORTIFY_SOURCE=2'
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity testing C compiler: cc
Is cross compiler: False.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity check compiler command line: cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/sanitycheckc.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/sanitycheckc.exe -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_FORTIFY_SOURCE=2 -pipe -D_FILE_OFFSET_BITS=64 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/sanitycheckc.exe
C compiler for the host machine: cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the host machine: cc ld.bfd 2.35.1
None of 'AR' are defined in the environment, not changing global flags.
None of 'CC' are defined in the environment, not changing global flags.
Using 'CFLAGS' from environment with value: '-march=x86-64 -mtune=generic -O2 -pipe -fno-plt'
Using 'LDFLAGS' from environment with value: '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Using 'CPPFLAGS' from environment with value: '-D_FORTIFY_SOURCE=2'
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity testing C compiler: cc
Is cross compiler: False.
None of 'CC_LD' are defined in the environment, not changing global flags.
Sanity check compiler command line: cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/sanitycheckc.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/sanitycheckc.exe -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_FORTIFY_SOURCE=2 -pipe -D_FILE_OFFSET_BITS=64 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/sanitycheckc.exe
C compiler for the build machine: cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the build machine: cc ld.bfd 2.35.1
None of 'AR' are defined in the environment, not changing global flags.
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Program git found: YES (/usr/bin/git)
Running command: /usr/bin/git rev-parse --short=5 HEAD
--- stdout ---
a8445

--- stderr ---


Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpfh2ltrwb
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpfh2ltrwb/testfile.c -pipe -E -P -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -P -O0 -std=c11

Code:

        #ifdef __has_include
         #if !__has_include("stdc-predef.h")
          #error "Header 'stdc-predef.h' could not be found"
         #endif
        #else
         #include <stdc-predef.h>
        #endif
Compiler stdout:

Compiler stderr:

Has header "stdc-predef.h" : YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc0gouj7s
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc0gouj7s/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc0gouj7s/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wall

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wall: YES
meson.build:63: WARNING: Consider using the built-in warning_level option instead of using "-Wall".
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpw7lvvvof
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpw7lvvvof/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpw7lvvvof/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wcast-function-type

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wcast-function-type: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp4fb80mcj
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp4fb80mcj/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp4fb80mcj/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wignored-qualifiers

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wignored-qualifiers: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp08b1b5yk
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp08b1b5yk/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp08b1b5yk/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wmissing-parameter-type

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wmissing-parameter-type: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpdwhulg1p
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpdwhulg1p/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpdwhulg1p/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wnonnull

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wnonnull: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsbw_450s
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsbw_450s/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsbw_450s/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wshadow

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wshadow: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp2ye840o8
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp2ye840o8/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp2ye840o8/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wtype-limits -Wno-type-limits

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wno-type-limits: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp6bxgh3ul
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp6bxgh3ul/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp6bxgh3ul/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wold-style-declaration

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wold-style-declaration: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmphlhmbstn
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmphlhmbstn/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmphlhmbstn/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Woverride-init

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Woverride-init: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsnavp6ro
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsnavp6ro/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsnavp6ro/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wsign-compare

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wsign-compare: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpodxc0bv3
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpodxc0bv3/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpodxc0bv3/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wtype-limits

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wtype-limits: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp35gozxzd
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp35gozxzd/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp35gozxzd/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wuninitialized

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wuninitialized: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpi25offv9
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpi25offv9/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpi25offv9/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wshift-negative-value

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wshift-negative-value: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc1hr96w2
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc1hr96w2/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc1hr96w2/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wunused-but-set-parameter

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wunused-but-set-parameter: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpihmd6eyb
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpihmd6eyb/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpihmd6eyb/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wunused-parameter

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wunused-parameter: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpj4n8ywdh
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpj4n8ywdh/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpj4n8ywdh/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wimplicit-fallthrough

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wimplicit-fallthrough: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsbb0_3vr
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsbb0_3vr/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpsbb0_3vr/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wunknown-warning-option -Wno-unknown-warning-option

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:
 cc: error: unrecognized command-line option '-Wunknown-warning-option'

Compiler for C supports arguments -Wno-unknown-warning-option: NO
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpobbgi449
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpobbgi449/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpobbgi449/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wmissing-braces -Wno-missing-braces

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wno-missing-braces: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp5f8s8km1
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp5f8s8km1/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmp5f8s8km1/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wconversion

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wconversion: YES
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpts1ucv2f
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpts1ucv2f/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpts1ucv2f/output.obj -pipe -c -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wempty-body

Code:
 extern int i;
int i;

Compiler stdout:

Compiler stderr:

Compiler for C supports arguments -Wempty-body: YES

Executing subproject test.h method meson

Project name: test.h
Project version: undefined
C compiler for the host machine: cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the host machine: cc ld.bfd 2.35.1
C compiler for the build machine: cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the build machine: cc ld.bfd 2.35.1
Build targets in project: 0
Subproject test.h finished.

Pkg-config binary for MachineChoice.HOST is not cached.
None of 'PKG_CONFIG' are defined in the environment, not changing global flags.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Did not find pkg-config by name 'pkg-config'
Found Pkg-config: NO
Pkg-config binary for machine MachineChoice.HOST not found. Giving up.
CMake binary for MachineChoice.BUILD is not cached
None of 'CMAKE' are defined in the environment, not changing global flags.
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: /usr/bin/cmake (3.19.2)
None of 'CMAKE_PREFIX_PATH' are defined in the environment, not changing global flags.
Extracting basic cmake information
Try CMake generator: auto
Calling CMake (['/usr/bin/cmake']) in /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/cmake_libev with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/cmake_libev/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['/', '/opt', '/usr', '/usr/local']
  -- CMake root:             /usr/share/cmake-3.19
  -- CMake architectures:    ['libpyldb-util.cpython-39-x86-64-linux-gnu.so', 'libpyldb-util.cpython-39-x86-64-linux-gnu.so.2', 'libpyldb-util.cpython-39-x86-64-linux-gnu.so.2.2.0', 'libpytalloc-util.cpython-39-x86-64-linux-gnu.so', 'libpytalloc-util.cpython-39-x86-64-linux-gnu.so.2', 'libpytalloc-util.cpython-39-x86-64-linux-gnu.so.2.3.1', 'libsamba-policy.cpython-39-x86-64-linux-gnu.so', 'libsamba-policy.cpython-39-x86-64-linux-gnu.so.0', 'libsamba-policy.cpython-39-x86-64-linux-gnu.so.0.0.1']
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share', 'lib/libpyldb-util.cpython-39-x86-64-linux-gnu.so', 'lib/libpyldb-util.cpython-39-x86-64-linux-gnu.so.2', 'lib/libpyldb-util.cpython-39-x86-64-linux-gnu.so.2.2.0', 'lib/libpytalloc-util.cpython-39-x86-64-linux-gnu.so', 'lib/libpytalloc-util.cpython-39-x86-64-linux-gnu.so.2', 'lib/libpytalloc-util.cpython-39-x86-64-linux-gnu.so.2.3.1', 'lib/libsamba-policy.cpython-39-x86-64-linux-gnu.so', 'lib/libsamba-policy.cpython-39-x86-64-linux-gnu.so.0', 'lib/libsamba-policy.cpython-39-x86-64-linux-gnu.so.0.0.1']
Preliminary CMake check failed. Aborting.
Run-time dependency libev found: NO (tried pkgconfig and cmake)
None of 'CC_LD' are defined in the environment, not changing global flags.
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc74s6mrb
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc74s6mrb/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpc74s6mrb/output.exe -pipe -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wl,--start-group -lev -Wl,--end-group -Wl,--allow-shlib-undefined -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now

Code:
 int main(void) { return 0; }

Compiler stdout:

Compiler stderr:

Library ev found: YES
None of 'CC_LD' are defined in the environment, not changing global flags.
Running compile:
Working directory:  /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpbpxtlctp
Command line:  cc /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpbpxtlctp/testfile.c -o /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/tmpbpxtlctp/output.exe -pipe -march=x86-64 -mtune=generic -O2 -fno-plt -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -O0 -Wl,--start-group -lm -Wl,--end-group -Wl,--allow-shlib-undefined -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now

Code:
 int main(void) { return 0; }

Compiler stdout:

Compiler stderr:

Library m found: YES
Pkg-config binary for MachineChoice.HOST is cached as not found.
Pkg-config binary for machine MachineChoice.HOST not found. Giving up.
CMake binary for MachineChoice.BUILD is cached.
None of 'CMAKE_PREFIX_PATH' are defined in the environment, not changing global flags.

Determining dependency 'x11' with CMake executable '/usr/bin/cmake'
Try CMake generator: auto
Calling CMake (['/usr/bin/cmake']) in /home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/cmake_x11 with:
  - "-DNAME=x11"
  - "-DARCHS=libpyldb-util.cpython-39-x86-64-linux-gnu.so;libpyldb-util.cpython-39-x86-64-linux-gnu.so.2;libpyldb-util.cpython-39-x86-64-linux-gnu.so.2.2.0;libpytalloc-util.cpython-39-x86-64-linux-gnu.so;libpytalloc-util.cpython-39-x86-64-linux-gnu.so.2;libpytalloc-util.cpython-39-x86-64-linux-gnu.so.2.3.1;libsamba-policy.cpython-39-x86-64-linux-gnu.so;libsamba-policy.cpython-39-x86-64-linux-gnu.so.0;libsamba-policy.cpython-39-x86-64-linux-gnu.so.0.0.1"
  - "-DCOMPS="
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/dagal/.cache/yay/picom-jonaburg-git/src/picom/build/meson-private/cmake_x11/CMakeMesonToolchainFile.cmake"
  - "."
Run-time dependency x11 found: NO (tried cmake)

src/meson.build:27:1: ERROR: Pkg-config binary for machine MachineChoice.HOST not found. Giving up.

Other details

All direction size transition not appears in i3-gaps

Platform

Arch Desktop amd64

GPU, drivers, and screen setup

AMD ATI, amdgpu, one monitor

Environment

i3-gaps

picom version

vgit-a8445

Configuration:

#################################
#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
# (These are also the default values)
transition-length = 300;
#transition-pow-x = 1.0;
#transition-pow-y = 1.0;
transition-pow-w = 1.0;
transition-pow-h = 1.0;
size-transition = true;
spawn-center = false;
no-scale-down = true;


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


# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = true;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 15;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -15;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -15;

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
# shadow-color = "#000000"

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'PPet'",
  "_GTK_FRAME_EXTENTS@:c",
  "class_g = 'firefox' && argb",
  "class_g = 'ulauncher' && argb"
  "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
  "_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'",
  "class_g ?= 'i3-frame'"
];
# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.06;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.06;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
fade-exclude = ["name *= 'Fcitx'"]

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################

opacity = false;

# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 1;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 1;

# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
inactive-dim = 0;

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
        "class_g = 'Cairo-clock'",
        "class_g = 'fcitx5'",
        "name = 'fcitx5'",
        "class_g *= 'fcitx5'",
        "name = 'fcitx5'",
        "class_g = 'PPet'"
];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []


#################################
#     Background-Blurring       #
#################################

# blur:
#{
#  method = "dual_kawase";
#  size = 10;
#  strength = 5;
#  deviation = 5.0;
#};
# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method =
# blur-size = 12
#
# blur-deviation = true
#
# blur-strength = 5

# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# The name of the switch may change without prior notifications.
#
# blur-background = true

# Blur background of windows when the window frame is not opaque.
# Implies:
#    blur-background
# Bad in performance, with driver-dependent behavior. The name may change.
#
#blur-background-frame = true


# Use fixed blur strength rather than adjusting according to window opacity.
#blur-background-fixed = true


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ""
#blur-kern = "3x3box";


# Exclude conditions for background blur.
# blur-background-exclude = []
blur-background-exclude = [
  "window_type = 'dock'",
  "window_type = 'desktop'",
  "_GTK_FRAME_EXTENTS@:c",
  "class_g = 'firefox' && argb",
  "class_g = 'PPet'",
  "class_g = 'telegram-desktop'",
  "class_g = 'dolphin'"
];

#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
# backend = "xr_glx_hybrid";
backend = "glx";



# Enable/disable VSync.
# vsync = false
vsync = true;

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false

# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows.
#
# unredir-if-possible = false

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true;

# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
#no-use-damage = true
use-damage = true;

# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples.
#
# glx-fshader-win = ""

# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "warn";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = "/path/to/your/log/file"

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = "/path/to/your/log/file"

# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility",
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
#     "tooltip", "notification", "combo", and "dnd".
#
# Following per window-type options are available: ::
#
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
#
#   opacity:::
#     Controls default opacity of the window type.
#
#   focus:::
#     Controls whether the window of this type is to be always considered focused.
#     (By default, all window types except "normal" and "dialog" has this on.)
#
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you
#     normally won't be able to see. Useful when the window has parts of it
#     transparent, and you want shadows in those areas.
#
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection,
#     you can set this to `true`.
#
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 1.0; shadow = false; }
  dropdown_menu = { opacity = 1.0; shadow = false; }
};
// Paste your configuration here

Steps of reproduction

1.Open two windows in one desktop side-by-side.
2.Make the left one full-screen, and the size transition doesn't exist on the right side, the things on the right size changes in one moment. But when making the window on the right full-screen, the size transition on the the left size works smoothly and well. It seems that picom only renders the size change on the left size and top size under i3-gaps.

Expected behavior

Smoothly size transition for all four sides.

Current Behavior

Size transition only appears on the left and top side of the window.

Stack trace

Other details

Animation plays several times, making windows disappear for an instant.

Platform

Manjaro 20.0 amd64

GPU, drivers, and screen setup

R7 250, amdgpu, xf86-video-amdgpu v19.1.0-2, Mesa 20.1.6.
Two monitors configured with xrandr.

-> 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: AMD Radeon HD 8600 Series (OLAND, DRM 3.37.0, 5.7.17-2-MANJARO, LLVM 10.0.1) (0x6610)
    Version: 20.1.6
    Accelerated: yes
    Video memory: 1024MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 750 MB, largest block: 750 MB
    VBO free aux. memory - total: 3029 MB, largest block: 3029 MB
    Texture free memory - total: 750 MB, largest block: 750 MB
    Texture free aux. memory - total: 3029 MB, largest block: 3029 MB
    Renderbuffer free memory - total: 750 MB, largest block: 750 MB
    Renderbuffer free aux. memory - total: 3029 MB, largest block: 3029 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 1024 MB
    Total available memory: 4096 MB
    Currently available dedicated video memory: 750 MB
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon HD 8600 Series (OLAND, DRM 3.37.0, 5.7.17-2-MANJARO, LLVM 10.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.1.6
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.1.6
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

AwesomeWM

picom version

vgit-26035

Configuration:

I use this, but it triggers with every config I tested, including the default one;

backend = "glx";
xrender-sync-fence = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
vsync = false;
sw-opti = false;
fading = false;
unredir-if-possible = true;
detect-transient = true;
detect-client-leader = true;

Steps of reproduction

Pretty much anything that triggers an animation. Swapping, spawning, closing windows...
It happens randomly but often enough.

Expected behavior

The animation plays only once and without making the windows disappear.

Current Behavior

The animation plays several times, making the windows disappear for a few seconds in between loops.

Other details

Video

PD: Rewatching the video I also noticed the first animation does not play. This happens once every time I restart picom.

Shadows Not Working?

xmonad on intel GPU and CPU, from AUR. shadows worked on picom-ibwhagen, but not here.

Config


#################################
#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
# (These are also the default values)
transition-length = 300
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true


#################################
#             Corners           #
#################################
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 15.0;
rounded-corners-exclude = [
  #"window_type = 'normal'",
  "class_g = 'awesome'",
  "class_g = 'URxvt'",
  "class_g = 'XTerm'",
  "class_g = 'kitty'",
 # "class_g = 'Alacritty'",
  "class_g = 'Polybar'",
  "class_g = 'code-oss'",
  #"class_g = 'TelegramDesktop'",
  #"class_g = 'firefox'",
  "class_g = 'Thunderbird'"
];
round-borders = 1;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];

#################################
#             Shadows           #
#################################
shadow = true;
shadow-radius = 20;
shadow-offset-x = -20;
shadow-offset-y = -20;
shadow-opacity = 0.5;
shadow-exclude = [
#	"window_type = 'dock'",
  "class_g = 'i3-frame'"
]
#################################
#           Fading              #
#################################


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
  "class_g = 'slop'"   # maim
]

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 0.8;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 0.7;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
# menu-opacity = 1.0
# menu-opacity is depreciated use dropdown-menu and popup-menu instead.

#If using these 2 below change their values in line 510 & 511 aswell
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }


# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'slop'"                    # maim
];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
opacity-rule = [
  "80:class_g     = 'Bar'",             # lemonbar
  "100:class_g    = 'slop'",            # maim
  "100:class_g    = 'XTerm'",
  "100:class_g    = 'URxvt'",
  "100:class_g    = 'kitty'",
  "100:class_g    = 'Alacritty'",
  "80:class_g     = 'Polybar'",
  "100:class_g    = 'code-oss'",
  "100:class_g    = 'Meld'",
  "70:class_g     = 'TelegramDesktop'",
  "90:class_g     = 'Joplin'",
  "100:class_g    = 'firefox'",
  "100:class_g    = 'Thunderbird'"
];


#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method =
# blur-size = 12
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# The name of the switch may change without prior notifications.
#
# blur-background = true;

# Blur background of windows when the window frame is not opaque.
# Implies:
#    blur-background
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;


# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false;


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ''
# blur-kern = "3x3box";

blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

# Exclude conditions for background blur.
blur-background-exclude = [
  #"window_type = 'dock'",
  #"window_type = 'desktop'",
  #"class_g = 'URxvt'",
  #
  # prevents picom from blurring the background
  # when taking selection screenshot with `main`
  # https://github.com/naelstrof/maim/issues/130
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
experimental-backends = true;
backend = "glx";
#backend = "xrender";


# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Limit picom 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 =

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false

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

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
#Changing use-damage to false fixes the problem
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility",
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
#     "tooltip", "notification", "combo", and "dnd".
#
# Following per window-type options are available: ::
#
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
#
#   opacity:::
#     Controls default opacity of the window type.
#
#   focus:::
#     Controls whether the window of this type is to be always considered focused.
#     (By default, all window types except "normal" and "dialog" has this on.)
#
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you
#     normally won't be able to see. Useful when the window has parts of it
#     transparent, and you want shadows in those areas.
#
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection,
#     you can set this to `true`.
#
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

``
mostly the default. If there is an issue with my config id be more than happy to change it.

Unexpected blurring of wallpaper

Platform

Arch Linux, kernel 5.11.16-arch1-1

GPU, drivers, and screen setup

NVidia RTX 3070
Driver version 465.24.02
Triple monitor, left vertical, xrandr

gnome-video-effects 0.5.0+4+g9554041-2
xf86-video-amdgpu 19.1.0-2
xf86-video-ati 1:19.1.0-2
xf86-video-dummy 0.3.8-4
xf86-video-fbdev 0.5.0-2
xf86-video-intel 1:2.99.917+916+g31486f40-1
xf86-video-nouveau 1.0.17-1
xf86-video-openchrome 0.6.0-4
xf86-video-qxl 0.1.5.r16.g52c421c-1
xf86-video-vesa 2.5.0-1
xf86-video-vmware 13.3.0-2
xf86-video-voodoo 1.2.5-11

lib32-mesa 21.0.3-1
mesa 21.0.3-2
mesa-demos 8.4.0-4

name of display: :0
display: :0 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 8192 MB
Total available memory: 8192 MB
Currently available dedicated video memory: 6734 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3070/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 465.24.02
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 465.24.02
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 465.24.02
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

Using i3-gaps

picom version

vgit-a8445

Configuration:

#################################
#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
# (These are also the default values)
transition-length = 300
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true


#################################
#             Corners           #
#################################
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 10.0;
rounded-corners-exclude = [
  #"window_type = 'normal'",
  "class_g = 'awesome'",
  "class_g = 'URxvt'",
  "class_g = 'XTerm'",
  "class_g = 'kitty'",
  "class_g = 'Alacritty'",
  "class_g = 'Polybar'",
  "class_g = 'code-oss'",
  #"class_g = 'TelegramDesktop'",
  "class_g = 'firefox'",
  "class_g = 'Thunderbird'",
  "class_g = 'qutebrowser'"
];
round-borders = 1;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];


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


# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = false;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 7;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -7;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -7;

# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false

# Don't draw shadows on drag-and-drop windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Do not paint shadows on shaped windows. Note shaped windows
# here means windows setting its shape through X Shape extension.
# Those using ARGB background is beyond our control.
# Deprecated, use
#   shadow-exclude = 'bounding_shaped'
# or
#   shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
# shadow-ignore-shaped = ''

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
  "class_g = 'slop'"   # maim
]

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 0.8;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 0.7;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
# menu-opacity = 1.0
# menu-opacity is depreciated use dropdown-menu and popup-menu instead.

#If using these 2 below change their values in line 510 & 511 aswell
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }


# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'discord'",
  "class_g = 'qutebrowser'",
  "class_g = 'Code'",
  "class_g = 'feh'",
  "class_g = 'Spotify'",
  "class_g = 'slop'"                    # maim
];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
opacity-rule = [
  "80:class_g     = 'Bar'",             # lemonbar
  "100:class_g    = 'slop'",            # maim
  "100:class_g    = 'XTerm'",
  "100:class_g    = 'URxvt'",
  "100:class_g    = 'kitty'",
  "100:class_g    = 'Alacritty'",
  "80:class_g     = 'Polybar'",
  "100:class_g    = 'code-oss'",
  "100:class_g    = 'Meld'",
  "70:class_g     = 'TelegramDesktop'",
  "90:class_g     = 'Joplin'",
  "100:class_g    = 'firefox'",
  "100:class_g    = 'Thunderbird'"
];


#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method =
# blur-size = 12
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# The name of the switch may change without prior notifications.
#
# blur-background = true;

# Blur background of windows when the window frame is not opaque.
# Implies:
#    blur-background
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;


# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false;


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ''
# blur-kern = "3x3box";

blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

# Exclude conditions for background blur.
blur-background-exclude = [
  #"window_type = 'dock'",
  #"window_type = 'desktop'",
  #"class_g = 'URxvt'",
  #
  # prevents picom from blurring the background
  # when taking selection screenshot with `main`
  # https://github.com/naelstrof/maim/issues/130
  "class_g = 'slop'",
  "class_g = 'qutebrowser'",
  "class_g = 'discord'",
  "class_g = 'feh'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
experimental-backends = true;
backend = "glx";
#backend = "xrender";


# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Limit picom 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 =

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false

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

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
#Changing use-damage to false fixes the problem
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility",
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
#     "tooltip", "notification", "combo", and "dnd".
#
# Following per window-type options are available: ::
#
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
#
#   opacity:::
#     Controls default opacity of the window type.
#
#   focus:::
#     Controls whether the window of this type is to be always considered focused.
#     (By default, all window types except "normal" and "dialog" has this on.)
#
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you
#     normally won't be able to see. Useful when the window has parts of it
#     transparent, and you want shadows in those areas.
#
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection,
#     you can set this to `true`.
#
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

Steps of reproduction

Wallpapers set by feh or nitrogen are unexpectedly blurred

Expected behavior

Wallpaper is not blurred

Current Behavior

Wallpaper is blurred

Opacity rules are applied randomly

My config has a couple of opacity rules, but none of them work with this fork, probably because it doesn't follow the yushi's original so it is very far behind.
When I launch this picom, all windows have opacity as if all were focused or all unfocused. Blur and shadow works fine, it's just the opacity, probably because of the complicated rules.

Platform

Archlinux

config:

inactive-opacity = 0.8;
active-opacity = 1;
frame-opacity = 1.0;
opacity-rule = [
	"100: window_type = 'normal' && (
		class_g = 'vlc' ||
		class_g = 'Shotcut' ||
		class_g = 'Gimp' ||
		class_g = 'Soffice' ||
		class_g = 'Pinta' ||
		class_g = 'feh' ||
		class_g = 'scrcpy'
	)",
	"80:focused && (
		class_g = 'Pcmanfm' ||
		class_g = 'GParted' ||
		class_g = 'discord' ||
		class_g = 'Pavucontrol') ||
		class_g *= 'NetBeans' ||
		class_g *= 'Tlp-UI'",
	"60:!focused && window_type = 'normal' && (
		class_g = 'Pcmanfm' ||
		class_g = 'GParted' ||
		class_g = 'discord'
	)",
	"30:class_g = 'Pavucontrol' && !focused",
	"70:!(
		window_type = 'normal' ||
		window_type = 'dock' ||
		window_type = 'utility'
	)"
];

wintypes: {
#firefox has picture in picture window of type utility
	utility = { opacity = 1.0; shadow = false; };
	dock = { opacity = 1.0; shadow = false; };
};

experimental-backends = true;
backend = "glx";
glx-no-stencil = true;
glx-no-rebind-pixmap = false;
vsync = true;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = false;
detect-client-opacity = false;
detect-transient = false;
detect-client-leader = false;
refresh-rate = 0;
use-damage = true;
log-level = "warn";

PS: I left out the blur, fade and shadow settings as it's irrelevand

[Feature Request] Animations for notifications and menus

picom version

Latest

Expected behavior

Windows such as notifications, dmenu, and rofi to have animations.

Current Behavior

Windows such as notifications, dmenu, and rofi don't have animations.

Other details

I'm not sure if this is an issue or is already implemented and I'm just dumb, but I cannot figure out how to get these windows to have animations. If there's a config option I suppose this would be great. Having notifications with a slight transition into the screen seems like a good idea to me.

AUR Package Build Error

Platform

Arch Linux x86_64

GPU, drivers, and screen setup

NVIDIA GeForce GTX 1070, nvidia-drivers 455.45.01, two monitors configured side-by-sdie with xrandr

Environment

dwm

picom version

N/A

Configuration:

N/A

Steps of reproduction

  1. yay -S picom-jonaburg-git

Expected behavior

Expect binary to be built and put in /usr/bin or something like that.

Current Behavior

yay -S picom-jonaburg-git
:: Checking for conflicts...
:: Checking for inner conflicts...
[Repo Make:6] ninja-1.10.2-1 meson-0.56.0-3 docbook-xml-4.5-9 docbook-xsl-1.79.2-7 asciidoc-9.0.4-2 uthash-2.1.0-2
[Aur:1] picom-jonaburg-git-0.1-4

==> Remove make dependencies after install? [y/N] y
1 picom-jonaburg-git (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> n
:: PKGBUILD up to date, Skipping (1/1): picom-jonaburg-git
1 picom-jonaburg-git (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> n
:: (1/1) Parsing SRCINFO: picom-jonaburg-git
resolving dependencies...
looking for conflicting packages...

Packages (6) asciidoc-9.0.4-2 docbook-xml-4.5-9 docbook-xsl-1.79.2-7 meson-0.56.0-3
ninja-1.10.2-1 uthash-2.1.0-2

Total Installed Size: 36.99 MiB

:: Proceed with installation? [Y/n] y
(6/6) checking keys in keyring [#################################] 100%
(6/6) checking package integrity [#################################] 100%
(6/6) loading package files [#################################] 100%
(6/6) checking for file conflicts [#################################] 100%
(6/6) checking available disk space [#################################] 100%
:: Running pre-transaction hooks...
(1/1) Checking Arch News with Informant ...
:: Processing package changes...
(1/6) installing ninja [#################################] 100%
(2/6) installing meson [#################################] 100%
(3/6) installing docbook-xml [#################################] 100%
(4/6) installing docbook-xsl [#################################] 100%
(5/6) installing asciidoc [#################################] 100%
Optional dependencies for asciidoc
graphviz: graphviz-filter
lilypond: music-filter
imagemagick: music-filter [installed]
source-highlight: source-highlight-filter
dblatex: pdf generation
fop: alternative pdf generation
w3m: text generation
lynx: alternative text generation
(6/6) installing uthash [#################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
==> Making package: picom-jonaburg-git 0.1-4 (Mon 07 Dec 2020 04:03:08 PM EST)
==> Retrieving sources...
-> Updating picom git repo...
Fetching origin
==> Validating source files with md5sums...
picom ... Skipped
-> meson not satisfied, flushing install queue
==> Making package: picom-jonaburg-git 0.1-4 (Mon 07 Dec 2020 04:03:10 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Updating picom git repo...
Fetching origin
==> Validating source files with md5sums...
picom ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
-> Creating working copy of picom git repo...
Cloning into 'picom'...
done.
==> Sources are ready.
==> Making package: picom-jonaburg-git 0.1-4 (Mon 07 Dec 2020 04:03:12 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Sources are ready.
-> picom-jonaburg-git-0.1-4 already made -- skipping build
-> Found git repo: github.com/jonaburg/picom.git
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (1) picom-jonaburg-git-0.1-4

Total Installed Size: 0.41 MiB

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [#################################] 100%
(1/1) checking package integrity [#################################] 100%
(1/1) loading package files [#################################] 100%
(1/1) checking for file conflicts [#################################] 100%
error: failed to commit transaction (conflicting files)
picom-jonaburg-git: /etc/xdg/picom.conf.example exists in filesystem
Errors occurred, no packages were upgraded.
checking dependencies...

Packages (6) asciidoc-9.0.4-2 docbook-xml-4.5-9 docbook-xsl-1.79.2-7 meson-0.56.0-3
ninja-1.10.2-1 uthash-2.1.0-2

Total Removed Size: 36.99 MiB

:: Do you want to remove these packages? [Y/n]
:: Processing package changes...
(1/6) removing uthash [#################################] 100%
(2/6) removing asciidoc [#################################] 100%
(3/6) removing docbook-xsl [#################################] 100%
(4/6) removing docbook-xml [#################################] 100%
(5/6) removing meson [#################################] 100%
(6/6) removing ninja [#################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

Stack trace

N/A

Other details

N/A

Entire screen blurs when selecting screen region for screenshot with xfce4-screenshooter

Platform

ArcoLinux (Arch) 64-bit, 5.9.13 kernel, Intel 4702MQ (haswell)
Lenovo Thinkpad T440p

GPU, drivers, and screen setup

Intel Integrated Graphics
Video drivers:
xf86-video-amdgpu 19.1.0-2
xf86-video-ati 1:19.1.0-2
xf86-video-fbdev 0.5.0-2
xf86-video-intel 1:2.99.917+913+g9236c582-1
xf86-video-nouveau 1.0.16-2
xf86-video-openchrome 0.6.0-4
xf86-video-vesa 2.5.0-1
xf86-video-vmware 13.3.0-2

glxinfo:
name of display: :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 4600 (HSW GT2) (0x416)
Version: 20.3.0
Accelerated: yes
Video memory: 1536MB
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.1
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.3.0
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 20.3.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.3.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Environment

Desktop Environment
Qtile version 0.16.1-2 with some xfce4 apps

picom version

vgit-a8445

Configuration:

Literally the example config that is provided

Steps of reproduction

  1. Open xfce4-screenshooter
  2. Select the 'select a region' option
  3. See the entire screen blur

Expected behavior

Screen does not blur when taking a screenshot

Current Behavior

Entire screen blurs, preventing a clear screenshot

Other details

Screenshot of entire screen (working):
screen

Screenshot of region:
blurred

I want to blur my floating window Settings

I try to use this configuration

 # 排除背景模糊
 blur-background-exclude = [
   #"window_type = 'dock'",
   #"window_type = 'desktop'",
   #"class_g = 'URxvt'",
   #
   # prevents picom from blurring the background
   # when taking selection screenshot with `main`
   # https://github.com/naelstrof/maim/issues/130
   "class_g = 'Peek'",
     "!I3_FLOATING_WINDOW@:c && class_g = 'st-256color'",
 #  "class_g = 'st-256color'",
   "class_g = 'slop'",
   "_GTK_FRAME_EXTENTS@:c"

For my st terminal Settings floating blur, but it doesn't work

My environment

 OS: Manjaro Linux x86_64
 Host: T58-V
 Kernel: 5.9.16-1-MANJARO
 Uptime: 1 hour, 10 mins
 Packages: 1980 (pacman), 13 (dpkg), 4 (snap)
 Shell: zsh 5.8
 Resolution: 1920x1080
 WM: awesome
 Theme: Adwaita [GTK2], Matcha-sea [GTK3]
 Icons: Adwaita [GTK2], Papirus-Dark-Maia [GTK3
 Terminal: st
 Terminal Font: Fira Code Nerd Font Mono
 CPU: Intel i7-9750H (12) @ 4.500GHz
 GPU: NVIDIA GeForce GTX 1650 Mobile / Max-Q
 GPU: Intel UHD Graphics 630
 Memory: 4636MiB / 15848MiB

Could it animate workspace switching?

I think this might be nitpicking, but just curious if picom could detect that I am switching workspace, and animate window entering/exiting according to the switching direction?

E.g. if I switch from workspace 1 to workspace 2, picom can move the windows on workspace1 to the left and show new windows on workspace 2 from right. And vice versa. Maybe leave the workspace layout (horizontal or vertical) configurable since that varies for different WMs.

wallpaper in the background of tooltips, popup windows, etc.

Platform

Artix Linux (rolling disease)

GPU, drivers, and screen setup

name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel (0x8086)
Device: Mesa Intel(R) HD Graphics 620 (KBL GT2) (0x5916)
Version: 20.3.4
Accelerated: yes
Video memory: 3072MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 620 (KBL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.4
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.4
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

dwm

picom version

aur/picom-jonaburg-git (vgit-a8445)

Configuration:

Kyle Pfromer's picom.conf

Expected behavior

No wallpaper in the background of popup windows, dropdown menus, and tooltips when they fade away.

Current Behavior

I see wallpaper when e.g. tooltip fades away.

Other details

https://streamable.com/dj1nww

There is no start up animations

This screen recording is the same as in the last issue, well it serves the purpose.

You can see how window slows down to its final position, but how it starts to move is missing. Maybe the animation algorithm is not good enough, it should have small acceleration on start similar as the deceleration at the end.

Peek.2020-12-27.23-31.mp4

Window transitions very choppy

Platform

Arch linux 64 bit

GPU, drivers, and screen setup

Nvidia GTX 1070, nvidia drivers 460.39-8, two monitors configured side-by-side with xrandr

xf86-video-vesa 2.5.0-1

name of display: :0
display: :0 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 8192 MB
Total available memory: 8192 MB
Currently available dedicated video memory: 7317 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1070/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 460.39
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 460.39
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 460.39
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

Custom DWM build

picom version

vgit-a8445
(Note: I have tried both with the arch AUR package and with installing this git repo directly)

Configuration:

(The picom config I have is quite long. I am not sure what would be the best way to post it here. If it is necessary, please tell me the best way to share it).

Steps of reproduction

It only happens when I leave picom running for extended periods of time (multiple days).

Expected behavior

Transitions when windows move on and off the screen should be smooth.

Current Behavior

The frame rate of these transitions are very choppy and the only way to fix is a total reboot of the computer.

Please let me know if this is due to user error or if there is any already known fix. This gets rather annoying.

No animation observed

Platform

Debian testing amd64

GPU, drivers, and screen setup

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 4600 (HSW GT2) (0x412)
Version: 20.1.2
Accelerated: yes
Video memory: 1536MB
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.1
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.1.2
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 20.1.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.1.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Environment

XFCE

picom version

vgit-d718c

picom --diagnostics
Version: v8

Extensions:

  • Shape: Yes
  • XRandR: Yes
  • Present: Present

Misc:

  • Use Overlay: No (Another compositor is already running)
  • Config file used: /home/jesusda/.config/picom.conf

Configuration:

picom.conf.zip

Steps of reproduction

After compiling and launching with --experimental-backend no animations are observed.
It works as main picon version

Expected behavior

Animation when new window opened, when window closed or minified, scaled and so on.

Current Behavior

Windows appear instantly.

Other details

Are there any parameters I have to use and I don't know?

Thanks a lot!

Animation and fading issues

I use bspwm in arch and everything works fine, but fading and animations don't work when opening new windows, changing workspaces using the default config

round-borders-rule Does not seem to be working.

Pop!_OS 20.04

I am using i3-gaps, picom version vgit-a8445.

Output of picom --diagnostics:

`[ 12/09/2020 14:00:13.243 parse_kawase_blur_strength INFO ] blur-strength: 7 [.iter = 3, .offset = 4.250000, .expand = 50]
[ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_SGI_video_sync.
[ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_SGI_swap_control.
[ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_OML_sync_control.
[ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_MESA_swap_control.
[ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Missing GLX extension GLX_EXT_swap_control.
[ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_EXT_texture_from_pixmap.
[ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_ARB_create_context.
[ 12/09/2020 14:00:13.307 glx_has_extension INFO ] Found GLX extension GLX_EXT_buffer_age.
Version: vgit-a8445

Extensions:

  • Shape: Yes
  • XRandR: Yes
  • Present: Present

Misc:

  • Use Overlay: No (Another compositor is already running)
  • Config file used: (personal)

Drivers (inaccurate):

modesetting`

Configuration: (It is almost the same as the example given in this repo, but changing some of the transparency and corner settings, the rest is equal, without the comments)

#################################
#          Animations           #
#################################
transition-length = 250
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true


#################################
#             Corners           #
#################################
corner-radius = 17.0;
rounded-corners-exclude = [
  "class_g = 'Polybar'",
  "class_g = 'code-oss'",
  "class_g = 'firefox'",
  "class_g = 'Thunderbird'",
  "class_g = 'Dunst'",
  "class_g = 'i3-frame'"
];
round-borders-exclude = [
];

round-borders = 2;
round-borders-rule = [
	"2:window_type = 'normal'"
];
#################################
#             Shadows           #
#################################

shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;

shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

#################################
#           Fading              #
#################################
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-exclude = [
  "class_g = 'slop'"   # maim
]
#################################
#   Transparency / Opacity      #
#################################
inactive-opacity = 0.8;
frame-opacity = 0.7;
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }
inactive-opacity-override = false;
active-opacity = 1.0;
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'slop'"                    # maim
];
opacity-rule = [
  "80:class_g     = 'Bar'",             # lemonbar
  "100:class_g    = 'slop'",            # maim
  "100:class_g    = 'XTerm'",
  "100:class_g    = 'URxvt'",
  "100:class_g    = 'kitty'",
  #"100:class_g    = 'Alacritty'",
  "90:class_g     = 'Polybar'",
  "100:class_g    = 'Zathura'",
  "100:class_g    = 'code-oss'",
  "100:class_g    = 'Meld'",
  "70:class_g     = 'TelegramDesktop'",
  "90:class_g     = 'Joplin'",
  "100:class_g    = 'firefox'",
  "100:class_g    = 'Thunderbird'"
];

#################################
#     Background-Blurring       #
#################################
blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

blur-background-exclude = [
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################
experimental-backends = true;
backend = "glx";

vsync = true
mark-wmwin-focused = true;

mark-ovredir-focused = true;
detect-rounded-corners = true;

detect-client-opacity = true;
refresh-rate = 0

detect-transient = true
detect-client-leader = true
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

The Expected Behavior

  1. The borders be adapted to the window's corners when they are rounded, as round-borders-rule should be able to do in i3-wm

The Current Behavior

  1. There is a blank space in the borders, as a cut (Like the borders are part of the window itself, being rounded as part of it, thus getting its corner cut).

You can see it in the right Alacritty window in the screenshot that is in this post. I think the rounded corners effect was adapted from Ibhagwan's fork, and as far as I know, this i3-gaps problem should be solved with the rounded-borders-rule.

border

Frame rate actually very low (around 15 fps)

I don't know how to get fps for picom in a proper way, but I recorded desktop in 60fps and set a long transition length. What I see is for each window move, the video has played for 3 to 4 (more towards 4) frames. So my estimation is the fps picom's animation is only around 15. Could it get somewhere about 4x faster?

Peek.2020-12-27.23-31.mp4

conky blurred not transparent

Platform

arch on an amd laptop

GPU, drivers, and screen setup

name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: X.Org (0x1002)
Device: AMD Radeon(TM) Vega 8 Graphics (RAVEN, DRM 3.35.0, 5.4.80-2-MANJARO, LLVM 11.0.0) (0x15dd)
Version: 20.2.3
Accelerated: yes
Video memory: 1024MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
VBO free memory - total: 541 MB, largest block: 541 MB
VBO free aux. memory - total: 2966 MB, largest block: 2966 MB
Texture free memory - total: 541 MB, largest block: 541 MB
Texture free aux. memory - total: 2966 MB, largest block: 2966 MB
Renderbuffer free memory - total: 541 MB, largest block: 541 MB
Renderbuffer free aux. memory - total: 2966 MB, largest block: 2966 MB
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 1024 MB
Total available memory: 4096 MB
Currently available dedicated video memory: 541 MB
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon(TM) Vega 8 Graphics (RAVEN, DRM 3.35.0, 5.4.80-2-MANJARO, LLVM 11.0.0)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.2.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.2.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

minimal KDE with awesome as windowmanager

picom version

vgit-a8445

Configuration:

just copied the sample config

Steps of reproduction

setup ur desktop with a conky widget, install this fork, set it to autostart and reboot the system

Expected behavior

have only the widget without any bg effects

Current Behavior

blurred conky despite it not being specifically adressed as program to blur in config file

Crashes when moving, opening, maximizing or closing windows.

Platform

Arch Linux

GPU, drivers, and screen setup

GTX 750 ti, latest Nvidia driver from Arch's repos, two monitors configured side-by-side

Environment

Official i3-gaps & openbox packages from Arch's reops

picom version

Version: vgit-d6bc6

Extensions:

  • Shape: Yes
  • XRandR: Yes
  • Present: Present

Misc:

  • Use Overlay: No (Another compositor is already running)
  • Config file used: /home/simon/.config/quickrice/picom.conf

Drivers (inaccurate):

NVIDIA

Configuration:

# Shadow
shadow = false;
shadow-radius = 12;
shadow-offset-x = -12;
shadow-offset-y = -12;
shadow-opacity = 1.0;
#shadow-red = 0.05;
#shadow-green = 0.08;
#shadow-blue = 0.15;
shadow-exclude = [
	"n:e:Notification",
	"_GTK_FRAME_EXTENTS@:c",
#	"window_type = 'unknown'",
	"window_type = 'dock'",
	"window_type = 'desktop'",
	"window_type = 'dnd'",
#	"window_type = 'menu'",
#	"window_type = 'dropdown_menu'",
#	"window_type = 'popup_menu'",
	"name = 'GLava'",
	"class_g = 'Conky'",
	"class_g ?= 'Notify-osd'",
	"class_g = 'Cairo-clock'",
    "class_g = 'Ulauncher'",
    "class_g = 'albert'",
	"class_g = 'Gnome-screenshot'",
];

# Blur
#blur-background = true;
#blur-background-frame = true;
#blur-method = "kawase";
blur-strength = 8;
blur-background-fixed = true;
blur-background-exclude = [
	"_GTK_FRAME_EXTENTS@:c",
	"window_type = 'unknown'",
 	"window_type = 'dock'",
	"window_type = 'desktop'",
	"window_type = 'dnd'",
#	"window_type = 'menu'",
#	"window_type = 'dropdown_menu'",
#	"window_type = 'popup_menu'",
	"class_g = 'GLava'",
	"class_g = 'Polybar'",
	"class_g = 'Ulauncher'",
	"class_g = 'Gnome-screenshot'",
	"class_g = 'Xfce4-screenshooter'",
	"class_g = 'albert'",
	"class_g = 'firefox'"
];

# Opacity
active-opacity = 1.0;
inactive-opacity = 1.0;
frame-opacity = 1.0;
inactive-opacity-override = false;
opacity-rule = [
	"100:class_g = 'Alacritty'",
	"100:class_g = 'konsole'",
	"100:class_g = 'Chromium'",
	"100:class_g = 'Google-chrome'",
	"100:class_g = 'firefox'",
];

# Fading
fading = true;
fade-delta = 7;
fade-in-step = 0.05;
fade-out-step = 0.05;
no-fading-openclose = false;
fade-exclude = [
	"_GTK_FRAME_EXTENTS@:c",
#	"window_type = 'unknown'",
#	"window_type = 'dock'",
#	"window_type = 'desktop'",
#	"window_type = 'dnd'",
#	"window_type = 'menu'",
#	"window_type = 'dropdown_menu'",
#	"window_type = 'popup_menu'",
	"name = 'GLava'",
	"class_g = 'Alacritty'",
	"class_g = 'konsole'",
	"class_g = 'Polybar'",
	"class_g = 'Tint2'",
	"class_g = 'Ulauncher'",
	"class_g = 'albert'",
	"class_g = 'Chromium'",
	"class_g = 'Google-chrome'",
	"class_g = 'firefox'",
];

# Other
backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
use-damage = true;

Steps of reproduction

Move some windows around on i3-gaps

Expected behavior

It just slides the windows

Current Behavior

  • Moving floating windows instandly crashes
  • Windows sometimes get shown at a position they were before moving them (in tiling mode)

Other details

I am aware that this fork is still very experimental, but I still hope you can make it a bit more stable :)

Blur not always working

Platform

Linux 5.10.18-1-MANJARO x86_64 20.2.1 Nibia

GPU, drivers, and screen setup

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon HD 7700 Series (VERDE, DRM 3.40.0, 5.10.18-1-MANJARO, LLVM 11.1.0) (0x683d)
    Version: 20.3.4
    Accelerated: yes
    Video memory: 1024MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 640 MB, largest block: 640 MB
    VBO free aux. memory - total: 2951 MB, largest block: 2951 MB
    Texture free memory - total: 640 MB, largest block: 640 MB
    Texture free aux. memory - total: 2951 MB, largest block: 2951 MB
    Renderbuffer free memory - total: 640 MB, largest block: 640 MB
    Renderbuffer free aux. memory - total: 2951 MB, largest block: 2951 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 1024 MB
    Total available memory: 4096 MB
    Currently available dedicated video memory: 640 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon HD 7700 Series (VERDE, DRM 3.40.0, 5.10.18-1-MANJARO, LLVM 11.1.0)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.4
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.4
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

picom version

jonaburg-git

Configuration:

# Shadow
shadow = true;
# no-dnd-shadow = true;
detect-rounded-corners = true;
shadow-radius = 5;
shadow-offset-x = 2;
shadow-offset-y = 2;
shadow-opacity = .5;
shadow-ignore-shaped = false;
shadow-exclude = [
    "name = 'Notification'",
    "_NET_WM_WINDOW_TYPE@:32a *= '_NET_WM_WINDOW_TYPE_DOCK'",
# workaround for conky until it provides window properties:
    "override_redirect = 1 && !WM_CLASS@:s",
    "class_g ?= 'Dmenu'",
#	"class_g ?= 'Dunst'",
# disable shadows for hidden windows:
    "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
    "_GTK_FRAME_EXTENTS@:c",
# disables shadows on sticky windows:
#	"_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'",
# disables shadows on i3 frames
    "class_g ?= 'i3-frame'",
    "class_g ?= 'kitty'",
    "class_g ?= 'dwm'",
    # DWM tray:
    "class_g = 'dwmsystray'",
    # "class_g ?= 'rofi'"
];

# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;

#menu-opacity = 0.95;
#inactive-opacity = 0.93;
#active-opacity = 1;
#alpha-step = 0.01;
#inactive-dim = 0.0;
#blur-background = true;
blur-kern = "11x11gaussian";
blur-method = "dual_kawase";
blur-size = 60;
# blur-deviation = 5.0;
blur-background-exclude = [
  # "!focused",
  "class_g = 'dwm' || class_g = 'dwmsystray'",
  "class_g = 'xsnow'",
  "class_g = 'slop'",
];

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

backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-client-opacity = true;
unredir-if-possible = false;
unredir-if-possible-delay = 30;
refresh-rate = 0;
vsync = true;
dbe = false;
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
glx-copy-from-front = false;

opacity-rule = [
    "88:class_g = 'Spotify'",
    "88:class_g = 'UXTerm'",
    # "90:!class_g = 'dwm' && !class_g = 'dwmsystray'
    #   && !class_g ?= 'rofi' && !class_g = 'mpv' && !focused",
    "100:class_g = 'mpv'",
    # "88:class_g ?= 'alacritty' && focused",
    # "10:class_g ?= 'alacritty' && !focused",
    "100:class_g = 'dwm' || class_g = 'dwmsystray'",
    # "88:class_g = 'dwm'",
#"99:name *?= 'Call'",
#"99:class_g = 'Chromium'",
#"99:name *?= 'Conky'",
#"99:class_g = 'Darktable'",
#"50:class_g = 'Dmenu'",
#"99:name *?= 'Event'",
#"99:class_g = 'Firefox'",
#"99:class_g = 'GIMP'",
#"99:name *?= 'Image'",
#"99:class_g = 'Lazpaint'",
#"99:class_g = 'Midori'",
#"99:name *?= 'Minitube'",
#"99:class_g = 'Mousepad'",
#"99:name *?= 'MuseScore'",
#"90:name *?= 'Page Info'",
#"99:name *?= 'Pale Moon'",
#"90:name *?= 'Panel'",
#"99:class_g = 'Pinta'",
#"90:name *?= 'Restart'",
#"99:name *?= 'sudo'",
#"99:name *?= 'Screenshot'",
#"99:class_g = 'Viewnior'",
#"99:class_g = 'VirtualBox'",
#"99:name *?= 'VLC'",
#"99:name *?= 'Write'",
#"93:class_g = 'URxvt' && !_NET_WM_STATE@:32a",
#"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
#"96:_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'"
];

wintypes :
{
  dock : { shadow = false; }
  tooltip :
  {
    fade = true;
    shadow = false;
    opacity = 0.85;
    focus = true;
  };
  fullscreen :
  {
    fade = false;
    shadow = false;
    opacity = 1;
    focus = true;
  };
  dnd :
  {
    fade = false;
    shadow = false;
    opacity = 1;
    blur-background = false;
  };
};

# transitions
transition-length = 125;
size-transition = true;

Expected behavior

Reliably apply the blur settings on each run.

Current Behavior

Most of the time I only get transparent but not blurred windows. It's about 30/70 whether my blur settings work. There is no stderr output even if the blur does not get applied. This however didn't occur with the regular picom. The odd thing is that on some starts blur works just fine, so it seems to be some kind of race condition - not a general issue with blurring or animations.

Windows only animating after a certain amount [Awesome WM]

Platform

Arch Linux amd64

GPU, drivers, and screen setup

AMD ATI RX 5700 XT with Mesa Drivers with two screens, one 3440x1440 and another 1920x1080 under it.
glxinfo -B

display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD Radeon RX 5600 XT (NAVI10, DRM 3.39.0, 5.9.11-arch2-1, LLVM 11.0.0) (0x731f)
    Version: 20.2.3
    Accelerated: yes
    Video memory: 6144MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 4875 MB, largest block: 4875 MB
    VBO free aux. memory - total: 6128 MB, largest block: 6128 MB
    Texture free memory - total: 4875 MB, largest block: 4875 MB
    Texture free aux. memory - total: 6128 MB, largest block: 6128 MB
    Renderbuffer free memory - total: 4875 MB, largest block: 4875 MB
    Renderbuffer free aux. memory - total: 6128 MB, largest block: 6128 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 6144 MB
    Total available memory: 12272 MB
    Currently available dedicated video memory: 4875 MB
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon RX 5600 XT (NAVI10, DRM 3.39.0, 5.9.11-arch2-1, LLVM 11.0.0)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.2.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.2.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

Awesome window manager,
Config here

picom version

vgit-a8445

Configuration:

vsync = true;
backend = "glx";
shadow = true;
shadow-exclude = [
  "class_g = 'Dunst'",
  "class_g = 'dwm'",
  "class_g = 'qtile'",
  "class_g = 'awesome'",
  "class_g = 'dmenu'",
  "class_g = 'slop'",
  "class_g = 'maim'",
];
shadow-radius = 18;
shadow-offset-x = -10;
shadow-offset-y = -5;


blur: {
 method = "dual_kawase";
 strength = 6;
 background = false;
 background-frame = false;
 background-fixed = false;
}

blur-background-exclude = [
  "window_type = 'dock'",
  "class_g ~= 'slop'",
  "class_i ~= 'slop'",
  "name ~= 'slop'",
  "window_type = 'desktop'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Animations
transition-length = 185

Steps of reproduction

  1. Open several windows
  2. Note they do not animate
  3. Open your 5th window (or 4th stack window, however you wish to count) note that it does animate\
  4. Note that adding more windows on top of this, removing windows or swapping them does create animations

Expected behavior

All windows should animate upon spawning

Current Behavior

Only the 5th window and beyond animate when spawning

Other details

Video here
picom

Windows animating across monitors

Platform

Artix Linux x86_64

GPU, drivers, and screen setup

NVidia GTX 1080, nvidia drivers 455.45.01-2, two monitors configured side-by-side with xrandr (3840x2160+0+0,1920x1080+3840+0)

$glxinfo -B

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 8192 MB
    Total available memory: 8192 MB
    Currently available dedicated video memory: 5417 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1080/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 455.45.01
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 455.45.01
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 455.45.01
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

xf86-video-vesa 2.5.0-1
mesa 20.2.3-1

Environment

Using dwm

picom version

$picom --version
vgit-a8445

$picom --diagnostics
**Version:** vgit-a8445
 
### Extensions:
 
* Shape: Yes
* XRandR: Yes
* Present: Present
 
### Misc:
 
* Use Overlay: No (Another compositor is already running)
* Config file used: /home/caden/.config/picom/picom.conf
 
### Drivers (inaccurate):
 
NVIDIA

Configuration:

# Backend
backend = "glx";
vsync = true;
mark-wmwin-focused = true;
unredir-if-possible = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
refresh-rate = 60;

# Fading
fading = false;

# Rounded Corners
corner-radius = 15;
round-borders = 15;

# Shadows
shadow = false;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-opacity = 0.028;

# Blur
experimental-backends = true;
blur-background-fixed = true;
blur-method = "kawase";
blur-size = 10;
blur-deviation = 5;

# Animations
transition-length = 150;

wintypes:
{
    dock = { fade = FALSE; shadow = FALSE, opacity = 1.0; focus = TRUE; full-shadow = FALSE; redir-ignore = FALSE };
    normal = { fade = TRUE; shadow = TRUE; opacity = 1.0; focus = FALSE; full-shadow = FALSE; redir-ignore = FALSE};
};

Steps of reproduction

  1. Focus any window on a tag on the monitor on the right
  2. Switch focus to another tag
  3. Switch to a previously focused tag

Expected behavior

Windows come in from the left, and are not visible on the monitor they are not meant to appear on.

Current Behavior

Switching focus from any tag to any previously focused tag will have the windows come in from the left,
except they appear on the first monitor before coming into the second screen

Can we have rounded shadows?

Currently with rounded corners, shadows are sill square. So the visual effect looks broken. Is there any way to have rounded shadows as well?

210209_174607

Rounded shadows are already supported by sdhand's fork but that doesn't support kawase blur.

Configuration:

# Shadow
shadow = true;
shadow-radius = 20;
shadow-offset-x = -20;
shadow-offset-y = -20;
shadow-opacity = 0.5;
shadow-exclude = [
#	"window_type = 'dock'",
  "class_g = 'i3-frame'"
];

# Opacity
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
inactive-dim = 0;

# Blur
blur-method = "dual_kawase";
blur-size = 20;
blur-background-exclude = [
#	"window_type = 'dock'",
# "window_type = 'desktop'"
];

# Rounded
corner-radius = 12;
rounded-corners-exclude = [
	"window_type = 'dock'",
  "class_g = 'i3-frame'"
];

# Fading
fading = true;
fade-delta = 2; 
fade-in-step = 0.02;
fade-out-step = 0.02;
no-fading-openclose = false;
fade-exclude = [];

# Other
backend = "glx";
xinerama-shadow-crop = true;
wintypes: {
    dock = { full-shadow = true; }
}

Fading between workspaces and opening/closing windows does not work.

Fading between workspaces and fading when opening and closing windows does not work, there is no fade animation. I am not sure whether this behaviour is normal or not. The new animations work brilliantly, it is just the original fade animations that do not work.

My picom configuration (from the default config):

#################################
#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
# (These are also the default values)
transition-length = 300
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true


#################################
#             Corners           #
#################################
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 0.0;
rounded-corners-exclude = [
  #"window_type = 'normal'",
  "class_g = 'awesome'",
  "class_g = 'Dunst'",
  "class_g = 'URxvt'",
  "class_g = 'XTerm'",
  "class_g = 'kitty'",
  "class_g = 'Alacritty'",
  "class_g = 'xmobar'",
  "class_g = 'Polybar'",
  "class_g = 'code-oss'",
  #"class_g = 'TelegramDesktop'",
  "class_g = 'firefox'",
  "class_g = 'Thunderbird'"
];
round-borders = 0;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];

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


# Enabled client-side shadows on windows. Note desktop windows 
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, 
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = true;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 7;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -7;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -7;

# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false

# Don't draw shadows on drag-and-drop windows. This option is deprecated, 
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Do not paint shadows on shaped windows. Note shaped windows 
# here means windows setting its shape through X Shape extension. 
# Those using ARGB background is beyond our control. 
# Deprecated, use 
#   shadow-exclude = 'bounding_shaped'
# or 
#   shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
# shadow-ignore-shaped = ''

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use 
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = "" 

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
fade-delta = 3

# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
  #"class_g = 'slop'"   # maim
]

# Do not fade on window open/close.
no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 1;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 1;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
# menu-opacity = 1.0 
# menu-opacity is depreciated use dropdown-menu and popup-menu instead.

#If using these 2 below change their values in line 510 & 511 aswell
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }


# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'slop'"                    # maim
];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, 
# like `50:name *= "Firefox"`. picom-trans is recommended over this. 
# Note we don't make any guarantee about possible conflicts with other 
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
opacity-rule = [
  "85:class_g    = 'Alacritty'",
];


#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method = 
# blur-size = 12
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows. 
# Bad in performance, with driver-dependent behavior. 
# The name of the switch may change without prior notifications.
#
# blur-background = true;

# Blur background of windows when the window frame is not opaque. 
# Implies:
#    blur-background 
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;


# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false;


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ''
# blur-kern = "3x3box";

blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

# Exclude conditions for background blur.
blur-background-exclude = [
  #"window_type = 'dock'",
  #"window_type = 'desktop'",
  #"class_g = 'URxvt'",
  #
  # prevents picom from blurring the background
  # when taking selection screenshot with `main`
  # https://github.com/naelstrof/maim/issues/130
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
experimental-backends = true;
backend = "glx";
#backend = "xrender";


# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no 
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them 
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Limit picom 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 = 

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, 
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, 
# provided that the WM supports it.
#
# use-ewmh-active-win = false

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

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows 
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels. 
# A positive value enlarges it while a negative one shrinks it. 
# If the value is positive, those additional pixels will not be actually painted 
# to screen, only used in blur calculation, and such. (Due to technical limitations, 
# with use-damage, those pixels will still be incorrectly painted to screen.) 
# Primarily used to fix the line corruption issues of blur, 
# in which case you should use the blur radius value here 
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, 
# with a 5x5 one you use `--resize-damage 2`, and so on). 
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color. 
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. 
# Might cause incorrect opacity when rendering transparent content (but never 
# practically happened) and may not work with blur-background. 
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information. 
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
#Changing use-damage to false fixes the problem
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw 
# calls are finished before picom starts drawing. Needed on nvidia-drivers 
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents. 
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` 
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you 
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows. 
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value. 
# Brightness of a window is estimated by averaging all pixels in the window, 
# so this could comes with a performance hit. 
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter. 
# If using the "TRACE" log level, it's better to log into a file 
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr. 
# Otherwise, logs will to written to the given file, though some of the early 
# logs might still be written to the stderr. 
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
# 
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: 
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility", 
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu", 
#     "tooltip", "notification", "combo", and "dnd".
# 
# Following per window-type options are available: ::
# 
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
# 
#   opacity:::
#     Controls default opacity of the window type.
# 
#   focus:::
#     Controls whether the window of this type is to be always considered focused. 
#     (By default, all window types except "normal" and "dialog" has this on.)
# 
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you 
#     normally won't be able to see. Useful when the window has parts of it 
#     transparent, and you want shadows in those areas.
# 
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become 
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection, 
#     you can set this to `true`.
#
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

Says Libev is not installed but it is.

When i try to install using the provided commands it tells me throws me the following errors.

sudo dnf install cmake

Run-time dependency libev found: NO (tried pkgconfig and cmake)

src/meson.build:3:1: ERROR: C shared or static library 'ev' not found

when i install libev

$ sudo dnf install libev
Last metadata expiration check: 1:22:32 ago on Tue 02 Feb 2021 01:01:05 PM CET.
Package libev-4.33-2.fc33.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

i`m on fedora 33


xcb-damage does not seem to exist for fedora.

Size-transiton isn't animated

Platform

Manjaro x86-64

GPU, drivers, and screen setup

xf86-video-intel 1:2.99.917+908+g7181c5a4-1

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel (0x8086)
    Device: Mesa Intel(R) UHD Graphics 620 (KBL GT2) (0x5917)
    Version: 20.1.8
    Accelerated: yes
    Video memory: 3072MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 620 (KBL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.1.8
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.1.8
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

XFCE

picom version

vgit-3ecf9

Configuration:

backend = "glx";

glx-no-stencil = true;

glx-copy-from-front = false;

# animations
transition-length = 300
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true
spawn-center = true


shadow = true;
shadow-radius = 15;
shadow-offset-x = -10;
shadow-offset-y = -10;
shadow-opacity = 0.75;

shadow-exclude = [
    "! name~=''",
    "name = 'Notification'",
    "name = 'Plank'",
    "name = 'Docky'",
    "name = 'Kupfer'",
    "name = 'xfce4-notifyd'",
    "name = 'cpt_frame_window'",
    "class_g = 'firefox' && argb",
    "class_g = 'Firefox' && argb",
    "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",
    "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
shadow-ignore-shaped = true;

inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;

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

    "window_type != 'normal'",
    "class_g = 'File-roller'",
];

fading = true;
fade-delta = 10;
fade-in-step = 1.0;
fade-out-step = 0.05;

fade-exclude = [
    "! name~=''",
];

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 = true;

dbe = true;

unredir-if-possible = true;

detect-transient = true;
detect-client-leader = true;

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

        blur-background = false;
    };
};

xrender-sync-fence = true;


blur:
{
    method = "gaussian";
    size = 21;
    deviation = 15;
}

Steps of reproduction

  1. Maximize a window or snap it to the side (so it tiles to half of the screen).

Expected behavior

The window should smoothly transition between its currents size, and the new size.

Current Behavior

The window resizes instantaneously, and only its position change is animated.

Other details

I also tried out Phisch's fork. With it, the animated size transition works, but it has other problems (it lags horribly when dragging around windows right after size change).

CPU usage gradually increases while watching videos on youtube or any video streaming website (with any browser)

Platform

Ubuntu 20.04 Intel i7

GPU, drivers, and screen setup

4k screen
NVidia Quadro T2000, nvidia-drivers 455.45.01,

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 4096 MB
    Total available memory: 4096 MB
    Currently available dedicated video memory: 2658 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro T2000 with Max-Q Design/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 455.45.01
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 455.45.01
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 455.45.01
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

i3-gaps

picom version

vgit-a8445

[ 16.06.2021 14:30:47.848 parse_kawase_blur_strength INFO ] blur-strength: 7 [.iter = 3, .offset = 4,250000, .expand = 50]
**Version:** vgit-a8445

### Extensions:

* Shape: Yes
* XRandR: Yes
* Present: Present

### Misc:

* Use Overlay: Yes* Config file used: /home/nstfkc/.config/picom/picom.conf

### Drivers (inaccurate):

modesetting

Configuration:

example config from this repo

Steps of reproduction

  1. enable picom by running picom -b &
  2. go to youtube.com and play a random video

Expected behavior

CPU usage doesn't increase gradually

Current Behavior

CPU usage increases gradually

Missing one dependency

I am running Linux Mint on my computer and I had to add one dependency for the build to work : libpcre++-dev
Consider adding it to the build info.

Error when trying to build

Platform

Void Linux

GPU, drivers, and screen setup

NVIDIA Geforce 920m

Environment

AwesomeWM

picom version

I'm trying to build it

Configuration:

Don't have a config yet

Steps of reproduction

I'm trying to build it..
I cloned, then entered the picom/ folder, then did meson --buildtype=release . build

Then when i try to ninja -C build it returns me:

$ ninja -C build
ninja: Entering directory `build'
ninja: error: loading 'build.ninja': No such file or directory

Moving floating windows keep freezing

Platform

Manjaro Linux - Kernel 5.9.11-3

GPU, drivers, and screen setup

NVIDIA GeForce 940MX, Intel HD Graphics 620
Drivers: video-hybrid-intel-nvidia-455xx-prime

Environment

XMonad

picom version

❯ picom --version
vgit-a8445
❯ picom --diagnostics
[ 09/12/2020 01:56:57.781 parse_kawase_blur_strength INFO ] blur-strength: 1 [.iter = 1, .offset = 1,500000, .expand = 10]
**Version:** vgit-a8445

### Extensions:

* Shape: Yes
* XRandR: Yes
* Present: Present

### Misc:

* Use Overlay: No (Another compositor is already running)
* Config file used: /home/vinicius/.config/picom/picom.conf

### Drivers (inaccurate):

modesetting

Configuration:

# Animations
# requires https://github.com/jonaburg/picom
transition-length = 175
transition-pow-x = 1
transition-pow-y = 1
transition-pow-w = 1
transition-pow-h = 1
size-transition = true

# Rounded Corners
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 5;
rounded-corners-exclude = [
  #"window_type = 'normal'",
#   "class_g = 'awesome'",
#   "class_g = 'URxvt'",
#   "class_g = 'XTerm'",
#   "class_g = 'kitty'",
#   "class_g = 'Alacritty'",
#   "class_g = 'code-oss'",
#   "class_g = 'Thunderbird'",
  # "class_g = 'firefox' && argb",
  "class_g = 'Dunst'",
  "class_g = 'Polybar'",
  "class_g = 'Rofi'",
];
round-borders = 1;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];

# Shadows
shadow = true;
shadow-radius = 10;
shadow-opacity = .2
shadow-offset-x = -12;
shadow-offset-y = 0; 
# shadow-exclude = 'bounding_shaped && !rounded_corners'
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c",
];

# Fading
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-delta = 4
fade-exclude = [
  "class_g = 'slop'"   # maim
]
# no-fading-openclose = false
# no-fading-destroyed-argb = false


# Transparency
# inactive-opacity = 0.7;
# # frame-opacity = 0.7;
# # popup_menu = { opacity = 0.8; }
# # dropdown_menu = { opacity = 0.8; }
# inactive-opacity-override = false;
# active-opacity = 1.0;
# inactive-dim = 0.8
# focus-exclude = [
#   "class_g = 'Cairo-clock'",
#   "class_g = 'Bar'",                    # lemonbar
#   "class_g = 'slop'"                    # maim
# ];
# inactive-dim-fixed = 1.0
# opacity-rule = [
#   "80:class_g     = 'Bar'",             # lemonbar
#   "100:class_g    = 'slop'",            # maim
#   "100:class_g    = 'XTerm'",
#   "100:class_g    = 'URxvt'",
#   "100:class_g    = 'kitty'",
#   "100:class_g    = 'Alacritty'",
#   "80:class_g     = 'Polybar'",
#   "100:class_g    = 'code-oss'",
#   "100:class_g    = 'Meld'",
#   "70:class_g     = 'TelegramDesktop'",
#   "90:class_g     = 'Joplin'",
#   "100:class_g    = 'firefox'",
#   "100:class_g    = 'Thunderbird'"
# ];


# Background Blur
# requires: https://github.com/ibhagwan/picom
blur: {
  method = "kawase";
  #method = "kernel";
  strength = 1;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}
blur-background-exclude = [
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];

# General
# daemon = false
experimental-backends = true;
backend = "glx";
vsync = true;
# dbus = false
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0
# refresh-rate = 60
detect-transient = true
detect-client-leader = true
use-damage = false
# log-level = "debug"
log-level = "info";
# log-file = '/tmp/picom.log'
wintypes:
{
  normal = { fade = true; shadow = true; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 1; corner-radius = 0; }
  dropdown_menu = { opacity = 1; corner-radius = 0; }
};

Steps of reproduction

  1. Spawn a floating window.
  2. Try to move it.

Expected behavior

The window moves normally.

Current Behavior

The window tries to animate the movement and will not follow mouse speed. It will keep "freezing".

Other details

Here's a video showing the issue.

transition-exclude rule

Feature description

I would like to exclude specific windows from any animations or transitions. For almost all options currently available in the config file, there is an exclude property for exceptions to this option. But transition-exclude doesn't seem to do anything, despite it being an obvious functionality I would have expected it to understand.

picom version

vgit-a8445

Configuration:

#################################
#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
transition-length = 150
transition-pow-x = 1
transition-pow-y = 1
transition-pow-w = 1
transition-pow-h = 1
size-transition = true

transition-exclude = [
  "class_g = 'Gnome-calculator'" # does not work at all
];

#################################
#             Corners           #
#################################
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 0.0;

round-borders = 1;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];

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


# Enabled client-side shadows on windows. Note desktop windows 
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, 
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = true;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 12;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -7;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -7;

# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false

# Don't draw shadows on drag-and-drop windows. This option is deprecated, 
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Do not paint shadows on shaped windows. Note shaped windows 
# here means windows setting its shape through X Shape extension. 
# Those using ARGB background is beyond our control. 
# Deprecated, use 
#   shadow-exclude = 'bounding_shaped'
# or 
#   shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
# shadow-ignore-shaped = ''

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use 
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = "" 

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
  "class_g = 'slop'"   # maim
]

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 1;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 0.7;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
# menu-opacity = 1.0 
# menu-opacity is depreciated use dropdown-menu and popup-menu instead.

#If using these 2 below change their values in line 510 & 511 aswell
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }


# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'slop'"                    # maim
];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, 
# like `50:name *= "Firefox"`. picom-trans is recommended over this. 
# Note we don't make any guarantee about possible conflicts with other 
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
opacity-rule = [
  #"80:class_g     = 'Bar'",             # lemonbar
  #"100:class_g    = 'slop'",            # maim
  #"100:class_g    = 'XTerm'",
  #"100:class_g    = 'URxvt'",
  #"100:class_g    = 'kitty'",
  #"100:class_g    = 'Alacritty'",
  #"80:class_g     = 'Polybar'",
  #"100:class_g    = 'code-oss'",
  #"100:class_g    = 'Meld'",
  #"70:class_g     = 'TelegramDesktop'",
  #"90:class_g     = 'Joplin'",
  #"100:class_g    = 'firefox'",
  #"100:class_g    = 'Thunderbird'"
  "100:class_g    = 'jetbrains-idea-ce'"
];


#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method = 
# blur-size = 12
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows. 
# Bad in performance, with driver-dependent behavior. 
# The name of the switch may change without prior notifications.
#
# blur-background = true;

# Blur background of windows when the window frame is not opaque. 
# Implies:
#    blur-background 
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;


# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false;


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ''
# blur-kern = "3x3box";

blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

# Exclude conditions for background blur.
blur-background-exclude = [
  #"window_type = 'dock'",
  #"window_type = 'desktop'",
  #"class_g = 'URxvt'",
  #
  # prevents picom from blurring the background
  # when taking selection screenshot with `main`
  # https://github.com/naelstrof/maim/issues/130
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
experimental-backends = true;
backend = "glx";
#backend = "xrender";


# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no 
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them 
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Limit picom 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 = 

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, 
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, 
# provided that the WM supports it.
#
# use-ewmh-active-win = false

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

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows 
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels. 
# A positive value enlarges it while a negative one shrinks it. 
# If the value is positive, those additional pixels will not be actually painted 
# to screen, only used in blur calculation, and such. (Due to technical limitations, 
# with use-damage, those pixels will still be incorrectly painted to screen.) 
# Primarily used to fix the line corruption issues of blur, 
# in which case you should use the blur radius value here 
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, 
# with a 5x5 one you use `--resize-damage 2`, and so on). 
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color. 
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. 
# Might cause incorrect opacity when rendering transparent content (but never 
# practically happened) and may not work with blur-background. 
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information. 
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
#Changing use-damage to false fixes the problem
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw 
# calls are finished before picom starts drawing. Needed on nvidia-drivers 
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents. 
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` 
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you 
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows. 
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value. 
# Brightness of a window is estimated by averaging all pixels in the window, 
# so this could comes with a performance hit. 
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter. 
# If using the "TRACE" log level, it's better to log into a file 
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr. 
# Otherwise, logs will to written to the given file, though some of the early 
# logs might still be written to the stderr. 
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
# 
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: 
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility", 
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu", 
#     "tooltip", "notification", "combo", and "dnd".
# 
# Following per window-type options are available: ::
# 
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
# 
#   opacity:::
#     Controls default opacity of the window type.
# 
#   focus:::
#     Controls whether the window of this type is to be always considered focused. 
#     (By default, all window types except "normal" and "dialog" has this on.)
# 
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you 
#     normally won't be able to see. Useful when the window has parts of it 
#     transparent, and you want shadows in those areas.
# 
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become 
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection, 
#     you can set this to `true`.
#
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

Expected behavior

Transitions for windows matching any rule in transition-exclude are completely disabled

Current Behavior

Transitions are enabled for all types of windows, ignoring my transition-exclude rules

Other details

My exact problem is that when I have floating windows in i3wm which I want to drag per mouse, the windows instantly teleports across the whole screen. It does that for every rendered frame, therefore some ugly flickering is occuring. I want to be able to disable all transitions for floating windows (I3_FLOATING_WINDOW) to prevent this.

Compiling error

when compiling the source code with ninja -C build I get the following error

ninja: Entering directory `build'
[1/1] Linking target src/picom
FAILED: src/picom
cc  -o src/picom src/picom.p/picom.c.o src/picom.p/win.c.o src/picom.p/c2.c.o src/picom.p/x.c.o src/picom.p/config.c.o src/picom.p/vsync.c.o src/picom.p/utils.c.o src/picom.p/diagnostic.c.o src/picom.p/string_utils.c.o src/picom.p/render.c.o src/picom.p/kernel.c.o src/picom.p/log.c.o src/picom.p/options.c.o src/picom.p/event.c.o src/picom.p/cache.c.o src/picom.p/atom.c.o src/picom.p/file_watch.c.o src/picom.p/config_libconfig.c.o src/picom.p/opengl.c.o src/picom.p/dbus.c.o src/picom.p/backend_backend_common.c.o src/picom.p/backend_xrender_xrender.c.o src/picom.p/backend_dummy_dummy.c.o src/picom.p/backend_backend.c.o src/picom.p/backend_driver.c.o src/picom.p/backend_gl_gl_common.c.o src/picom.p/backend_gl_glx.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,--start-group -lm -lev /usr/lib/libX11.so /usr/lib/libX11-xcb.so /usr/lib/libxcb.so /usr/lib/libxcb-render-util.so /usr/lib/libxcb-render.so /usr/lib/libxcb-image.so /usr/lib/libxcb-shm.so /usr/lib/libXext.so /usr/lib/libpixman-1.so /usr/lib/libxcb-damage.so /usr/lib/libxcb-randr.so /usr/lib/libxcb-sync.so /usr/lib/libxcb-composite.so /usr/lib/libxcb-shape.so /usr/lib/libxcb-xinerama.so /usr/lib/libxcb-xfixes.so /usr/lib/libxcb-present.so /usr/lib/libconfig.so /usr/lib/libpcre.so /usr/lib/libGL.so /usr/lib/libdbus-1.so -Wl,--end-group
/bin/ld: src/picom.p/event.c.o: in function `ev_handle':
event.c:(.text+0x1826): undefined reference to `isnanf'
/bin/ld: event.c:(.text+0x1907): undefined reference to `isnanf'
/bin/ld: event.c:(.text+0x19de): undefined reference to `isnanf'
/bin/ld: event.c:(.text+0x1aaf): undefined reference to `isnanf'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Gif backgrounds, gifview/paperview

This is just a feature request or perhaps a question whether it is even possible;

There is this thing going around the community that you may have noticed, gifs as wallpapers. The two projects iv'e come across that can do this are paperview and gifsicle.

However they both use the root window and cannot be run together with a compositor.
What im wondering is if it would be possible to integrate this functionality into picom, or allow these programs to run together somehow?

Fair warning, paperview requires converting gif to bitmaps and so it uses massive amounts of ram. Gifsicle can run straight gifs and uses little ram. Seems more stable as well.

Error right after installing from AUR

*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

[1] 171004 segmentation fault (core dumped) picom*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression y1 < y2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region_append_non_o: The expression r->x1 < r->x2 was false
Set a breakpoint on '_pixman_log_error' to debug

[1] 171004 segmentation fault (core dumped) picom

Animation

Could not find out how to get animation on opening more terminals, in same workspace. I have animation when changing workspace, but not when opening another app in same workspace.

Opacity don't work on xmonad

Platform

Arch Desktop Linux 5.9.13-arch1-1

GPU, drivers, and screen setup

name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel (0x8086)
Device: Mesa Intel(R) UHD Graphics 620 (KBL GT2) (0x5917)
Version: 20.3.0
Accelerated: yes
Video memory: 3072MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 620 (KBL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.0
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.0
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

Xmonad

picom version

vgit-a8445

Configuration:

#################################
#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
# (These are also the default values)
transition-length = 200
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true


#################################
#             Corners           #
#################################
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 10.0;
rounded-corners-exclude = [
  #"window_type = 'normal'",
  "class_g = 'awesome'",
  "class_g = 'URxvt'",
  "class_g = 'XTerm'",
  "class_g = 'kitty'",
  "class_g = 'Alacritty'",
  "class_g = 'Polybar'",
  "class_g = 'code-oss'",
  #"class_g = 'TelegramDesktop'",
  "class_g = 'firefox'",
  "class_g = 'Thunderbird'"
];
round-borders = 1;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];

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


# Enabled client-side shadows on windows. Note desktop windows 
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, 
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = false;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 7;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -7;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -7;

# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false

# Don't draw shadows on drag-and-drop windows. This option is deprecated, 
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Do not paint shadows on shaped windows. Note shaped windows 
# here means windows setting its shape through X Shape extension. 
# Those using ARGB background is beyond our control. 
# Deprecated, use 
#   shadow-exclude = 'bounding_shaped'
# or 
#   shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
# shadow-ignore-shaped = ''

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use 
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = "" 

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
  "class_g = 'slop'"   # maim
]

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 0.8;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 0.7;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
# menu-opacity = 1.0 
# menu-opacity is depreciated use dropdown-menu and popup-menu instead.

#If using these 2 below change their values in line 510 & 511 aswell
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }


# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'slop'"                    # maim
];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, 
# like `50:name *= "Firefox"`. picom-trans is recommended over this. 
# Note we don't make any guarantee about possible conflicts with other 
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
opacity-rule = [
  "80:class_g     = 'Bar'",             # lemonbar
  "100:class_g    = 'slop'",            # maim
  "100:class_g    = 'XTerm'",
  "100:class_g    = 'URxvt'",
  "100:class_g    = 'kitty'",
  "80:class_g    = 'Alacritty'",
  "80:class_g     = 'Polybar'",
  "100:class_g    = 'code-oss'",
  "100:class_g    = 'Meld'",
  "70:class_g     = 'TelegramDesktop'",
  "90:class_g     = 'Joplin'",
  "100:class_g    = 'firefox'",
  "100:class_g    = 'Thunderbird'"
];


#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method = 
# blur-size = 12
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows. 
# Bad in performance, with driver-dependent behavior. 
# The name of the switch may change without prior notifications.
#
# blur-background = true;

# Blur background of windows when the window frame is not opaque. 
# Implies:
#    blur-background 
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;


# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false;


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ''
# blur-kern = "3x3box";

blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

# Exclude conditions for background blur.
blur-background-exclude = [
  #"window_type = 'dock'",
  #"window_type = 'desktop'",
  #"class_g = 'URxvt'",
  #
  # prevents picom from blurring the background
  # when taking selection screenshot with `main`
  # https://github.com/naelstrof/maim/issues/130
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
experimental-backends = true;
backend = "glx";
#backend = "xrender";


# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no 
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them 
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Limit picom 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 = 

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, 
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, 
# provided that the WM supports it.
#
# use-ewmh-active-win = false

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

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows 
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels. 
# A positive value enlarges it while a negative one shrinks it. 
# If the value is positive, those additional pixels will not be actually painted 
# to screen, only used in blur calculation, and such. (Due to technical limitations, 
# with use-damage, those pixels will still be incorrectly painted to screen.) 
# Primarily used to fix the line corruption issues of blur, 
# in which case you should use the blur radius value here 
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, 
# with a 5x5 one you use `--resize-damage 2`, and so on). 
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color. 
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. 
# Might cause incorrect opacity when rendering transparent content (but never 
# practically happened) and may not work with blur-background. 
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information. 
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
#Changing use-damage to false fixes the problem
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw 
# calls are finished before picom starts drawing. Needed on nvidia-drivers 
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents. 
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` 
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you 
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows. 
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value. 
# Brightness of a window is estimated by averaging all pixels in the window, 
# so this could comes with a performance hit. 
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter. 
# If using the "TRACE" log level, it's better to log into a file 
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr. 
# Otherwise, logs will to written to the given file, though some of the early 
# logs might still be written to the stderr. 
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
# 
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: 
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility", 
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu", 
#     "tooltip", "notification", "combo", and "dnd".
# 
# Following per window-type options are available: ::
# 
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
# 
#   opacity:::
#     Controls default opacity of the window type.
# 
#   focus:::
#     Controls whether the window of this type is to be always considered focused. 
#     (By default, all window types except "normal" and "dialog" has this on.)
# 
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you 
#     normally won't be able to see. Useful when the window has parts of it 
#     transparent, and you want shadows in those areas.
# 
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become 
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection, 
#     you can set this to `true`.
#
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
}

Steps of reproduction

I don't know.

Expected behavior

opacity rule can work.

Current Behavior

opacity can't work

Stack trace

Other details

`inactive-opacity` ignored

I had problem with opacity settings.
I cannot use inactive-opacity on my system.

Tried searching some information about that, found nothing. So i tried do it by myself, in source code.

diff --git a/src/win.c b/src/win.c
index e1a2625..da3c858 100644
--- a/src/win.c
+++ b/src/win.c
@@ -645,7 +645,7 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w, bool
        }

        // respect inactive override
-       if (ps->o.inactive_opacity_override && !w->focused) {
+       if (ps->o.inactive_opacity_override && !win_is_focused_raw(ps, w)) {
                opacity = ps->o.inactive_opacity;
        }

Changing from !w->focused to !win_is_focused_raw(ps, w) worked for me.

Platform

Arch Linux x86_64

GPU, drivers, and screen setup

Intel Integrated

> glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel (0x8086)
    Device: Mesa Intel(R) HD Graphics 500 (APL 2) (0x5a85)
    Version: 21.1.0
    Accelerated: yes
    Video memory: 3072MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 500 (APL 2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.1.0
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.1.0
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

dwm (with paches and my own changes)

picom version

> comptop --version
vgit-a8445

Configuration:

#################################
#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
# (These are also the default values)
transition-length = 200
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true


#################################
#             Corners           #
#################################
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 10.0;
#rounded-corners-exclude = [
#  #"window_type = 'normal'",
#  "class_g = 'awesome'",
#  "class_g = 'URxvt'",
#  "class_g = 'XTerm'",
#  "class_g = 'kitty'",
#  "class_g = 'Alacritty'",
#  "class_g = 'Polybar'",
#  "class_g = 'code-oss'",
#  #"class_g = 'TelegramDesktop'",
#  "class_g = 'firefox'",
#  "class_g = 'Thunderbird'"
#];
round-borders = 1;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];

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


# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = false;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 7;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -7;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -7;

# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false

# Don't draw shadows on drag-and-drop windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Do not paint shadows on shaped windows. Note shaped windows
# here means windows setting its shape through X Shape extension.
# Those using ARGB background is beyond our control.
# Deprecated, use
#   shadow-exclude = 'bounding_shaped'
# or
#   shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
# shadow-ignore-shaped = ''

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
  "class_g = 'slop'"   # maim
];

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 0.5;
active-opacity = 0.9;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 1;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
menu-opacity = 1;

# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = true;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
# active-opacity = 1.0

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

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

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []

opacity-rule = [
    "100:class_g = 'mpv'"
];


#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method =
# blur-size = 12
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# The name of the switch may change without prior notifications.
#
# blur-background = true;

# Blur background of windows when the window frame is not opaque.
# Implies:
#    blur-background
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;


# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false;


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ''
# blur-kern = "3x3box";

blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

# Exclude conditions for background blur.
blur-background-exclude = [
  #"window_type = 'dock'",
  #"window_type = 'desktop'",
  #"class_g = 'URxvt'",
  #
  # prevents picom from blurring the background
  # when taking selection screenshot with `main`
  # https://github.com/naelstrof/maim/issues/130
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
experimental-backends = true;
backend = "glx";
#backend = "xrender";


# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Limit picom 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 =

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false

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

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
#Changing use-damage to false fixes the problem
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility",
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
#     "tooltip", "notification", "combo", and "dnd".
#
# Following per window-type options are available: ::
#
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
#
#   opacity:::
#     Controls default opacity of the window type.
#
#   focus:::
#     Controls whether the window of this type is to be always considered focused.
#     (By default, all window types except "normal" and "dialog" has this on.)
#
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you
#     normally won't be able to see. Useful when the window has parts of it
#     transparent, and you want shadows in those areas.
#
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection,
#     you can set this to `true`.
#
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

Steps of reproduction

None

Expected behavior

Opacity inactive-opacity defined in config file.

Current Behavior

Opacity inactive-opacity just ignored

Picom is outright ignoring the config

Platform

Arch Linux

GPU, drivers, and screen setup

Intel i5 5200u
1080p

Environment

Qtile

picom version

picom-jonavurg-git 0.1-4

Configuration:

# vim: filetype=conf

backend = "glx";
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;
use-damage = false;
#unredir-if-possible = true;
#resize-damage = 7;
vsync = true;

#corner-radius = 12.0;
corner-radius = 0.0;
#round-borders = 1;
round-borders = 0;
rounded-corners-exclude = [
  "class_g = 'dunst'",
  "class_g = 'Polybar'",
  "class_g = 'Rofi'",
  "QTILE_INTERNAL:32c = 1"
  #"! name~=''",
];
rounded-borders-exclude = [
  "class_g = 'dunst'",
  "class_g = 'Polybar'",
  "class_g = 'Rofi'",
  "QTILE_INTERNAL:32c = 1"
  #"! name~=''",
]

 #Shadow
shadow = true;			# Enabled client-side shadows on windows.
shadow-radius = 40;		# The blur radius for shadows. (default 12)
shadow-offset-x = -40;		# The left offset for shadows. (default -15)
shadow-offset-y = -20;		# The top offset for shadows. (default -15)
shadow-opacity = 0.45;
shadow-exclude = [
 "class_g = 'Plank'",
 "! name~=''",
 "class_g = 'conky'",
 "name = 'cpt_frame_window'",
 "class_g = 'slop'",
 "name = 'lead'",
 "name = 'Eww - border1'",
 "name = 'Eww - border2'",
 "class_g = 'firefox' && argb",
 "QTILE_INTERNAL:32c = 1"
];

# Fading
fading = true; # Fade windows during opacity changes.
fade-delta = 5; # 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; # Fade windows in/out when opening/closing

## Opacity
#inactive-opacity = 0.90;
#active-opacity = 1;
#frame-opacity = 1;
#inactive-opacity-override = false;
#inactive-dim = 0.2;
#inactive-dim-fixed = true;
## Opacity rules, do "xprop | grep WM_CLASS" to find class name
#opacity-rule = ["100:class_g = 'firefox'", "100:class_g = 'Chromium'", "100:class_g = 'Polybar'", "100:class_g = 'Thunderbird'", "100:name *? = 'i3lock'", "90:class_i = 'urxvt'", "100:class_i = 'cmatrixterm'", "90:class_i = 'dropdown'", "100:class_g = 'Zathura'", "100:class_g = 'Emacs'", "100:class_g = 'mpv'", "100:class_g = 'Joplin'", "90:class_i = 'applauncher'", "90:class_i = 'greenclip'", "90:class_i = 'bsphidwins'", "90:class_i = 'findFiles'", "90:class_i = 'sxhkdhelp'", "90:class_i = 'splatmoji'", "90:class_i = 'powermenu'", "90:class_i = 'fzfnotes'", "90:class_i = 'google'", "90:class_i = 'Spotify'", "90:class_g *? = 'xob'", "90:class_i = 'notifHistory'"];

detect-client-opacity = true; # This prevents opacity being ignored for some apps. For example without this enabled my xfce4-notifyd is 100% opacity no matter what.

# Blur
#blur-method = "dual_kawase";
#blur-strength = 8;
#blur-background = true;
#blur-background-frame = true;
#blur-background-fixed = true;
#blur-background-exclude = ["class_g = 'Plank'", "class_g = 'slop'", "name = 'polybar-example_eDP1'"]

# Animation settings
transition-length = 300;
transition-pow-x = 0.99;
transition-pow-y = 0.99;
transition-pow-w = 0.99;
transition-pow-h = 0.99;
size-transition = true;

# Window type settings
wintypes:
{
  tooltip = { fade = true; full-shadow = true; opacity = 1; };
  dock = { full-shadow = true;};
  popup_menu = { opacity = 1; full-shadow = true; };
  normal = {full-shadow = true;};
  dropdown_menu = { opacity = 1; full-shadow = true; }
};

Steps of reproduction

  1. change any setting at all, even comment out entire chunks.
  2. restart, reload, whatever
  3. nothing changes

Expected behavior

It should reflect changes made in the config

Current Behavior

It ignores all rounded border and corner inclusions as well as completely ignores the fact that I've completely disabled rounded everything.

Other details

The easiest way to see it is to look at the status bar at the top, noting that despite clearly excluding Qtile in the way you're supposed to, it stays rounded. This is the case with all other exceptions. Reminder, nothing is supposed to be rounded anyway, you can see in the config I've posted as well as part of the screenshot that both rounded values are set to zero.

I should add that the config is indeed in the correct location of ~/.config/picom/picom.conf
image

opacity-rules are not working

Platform

Linux archlinux 5.12.8-arch1-1 x86_64 GNU/Linux

GPU, drivers, and screen setup

I am on my Asus Laptop with intel integrated graphics

Environment

qtile

picom version

vgit-a8445

Configuration:

#          Animations           #
#################################
# requires https://github.com/jonaburg/picom
# (These are also the default values)
transition-length = 300
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true


#################################
#             Corners           #
#################################
# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
corner-radius = 8.0;
rounded-corners-exclude = [
  #"window_type = 'normal'",
  #"class_g = 'Alacritty'",
  "class_g = 'Polybar'",
  "class_g = 'code-oss'",
  #"class_g = 'TelegramDesktop'",
];
round-borders = 1;
round-borders-exclude = [
  #"class_g = 'TelegramDesktop'",
];

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


# Enabled client-side shadows on windows. Note desktop windows 
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, 
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = false;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 7;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -7;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -7;

# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false

# Don't draw shadows on drag-and-drop windows. This option is deprecated, 
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Do not paint shadows on shaped windows. Note shaped windows 
# here means windows setting its shape through X Shape extension. 
# Those using ARGB background is beyond our control. 
# Deprecated, use 
#   shadow-exclude = 'bounding_shaped'
# or 
#   shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
# shadow-ignore-shaped = ''

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use 
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = "" 

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.02;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.02;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
fade-delta = 9;

# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
  "class_g = 'slop'"   # maim
]

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 0.65;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 0.7;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
# menu-opacity = 1.0 
# menu-opacity is depreciated use dropdown-menu and popup-menu instead.

#If using these 2 below change their values in line 510 & 511 aswell
popup_menu = { opacity = 0.78; }
dropdown_menu = { opacity = 0.78; }


# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 0.75;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'slop'"                    # maim
];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, 
# like `50:name *= "Firefox"`. picom-trans is recommended over this. 
# Note we don't make any guarantee about possible conflicts with other 
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
#opacity-rule = [
#  "80:class_g     = 'Bar'",             # lemonbar
#  "100:class_g    = 'slop'",            # maim
#  "100:class_g    = 'XTerm'",
#  "100:class_g    = 'URxvt'",
#  "100:class_g    = 'kitty'",
#  "80:class_g     = 'Polybar'",
#  "100:class_g    = 'code-oss'",
#  "100:class_g    = 'Meld'",
#  "70:class_g     = 'TelegramDesktop'",
#  "90:class_g     = 'Joplin'",
#  "100:class_g    = 'firefox'",
#  "100:class_g    = 'Thunderbird'"
#];

opacity-rule = [ "85:class_g = 'Alacritty' && focused",
                 "75:class_g = 'Alacritty' && !focused",
                 "70:class_g = 'st-256color' && focused || !focused",
                 "90:class_g = 'Brave-browser'",
                 "80:class_g = 'Emacs' && focused || !focused",
                 "85:class_g = 'TelegramDesktop'",
                 "96:class_g = 'Google-chrome'",
                ];

#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method = 
# blur-size = 12
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows. 
# Bad in performance, with driver-dependent behavior. 
# The name of the switch may change without prior notifications.
#
# blur-background = true;

# Blur background of windows when the window frame is not opaque. 
# Implies:
#    blur-background 
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false;


# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false;


# Specify the blur convolution kernel, with the following format:
# example:
#   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-kern = ''
# blur-kern = "3x3box";

blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 5;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

# Exclude conditions for background blur.
blur-background-exclude = [
  #"window_type = 'dock'",
  #"window_type = 'desktop'",
  #"class_g = 'URxvt'",
  #
  # prevents picom from blurring the background
  # when taking selection screenshot with `main`
  # https://github.com/naelstrof/maim/issues/130
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];


#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
experimental-backends = true;
backend = "glx";
#backend = "xrender";


# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no 
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them 
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
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.
#
# detect-client-opacity = false
detect-client-opacity = true;

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

# Limit picom 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 = 

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, 
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, 
# provided that the WM supports it.
#
# use-ewmh-active-win = false

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

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows 
# in the same group focused at the same time.
#
# detect-transient = false
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 = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels. 
# A positive value enlarges it while a negative one shrinks it. 
# If the value is positive, those additional pixels will not be actually painted 
# to screen, only used in blur calculation, and such. (Due to technical limitations, 
# with use-damage, those pixels will still be incorrectly painted to screen.) 
# Primarily used to fix the line corruption issues of blur, 
# in which case you should use the blur radius value here 
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, 
# with a 5x5 one you use `--resize-damage 2`, and so on). 
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color. 
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. 
# Might cause incorrect opacity when rendering transparent content (but never 
# practically happened) and may not work with blur-background. 
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# 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, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information. 
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
#Changing use-damage to false fixes the problem
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw 
# calls are finished before picom starts drawing. Needed on nvidia-drivers 
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents. 
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` 
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you 
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows. 
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value. 
# Brightness of a window is estimated by averaging all pixels in the window, 
# so this could comes with a performance hit. 
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter. 
# If using the "TRACE" log level, it's better to log into a file 
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr. 
# Otherwise, logs will to written to the given file, though some of the early 
# logs might still be written to the stderr. 
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
# 
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: 
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility", 
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu", 
#     "tooltip", "notification", "combo", and "dnd".
# 
# Following per window-type options are available: ::
# 
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
# 
#   opacity:::
#     Controls default opacity of the window type.
# 
#   focus:::
#     Controls whether the window of this type is to be always considered focused. 
#     (By default, all window types except "normal" and "dialog" has this on.)
# 
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you 
#     normally won't be able to see. Useful when the window has parts of it 
#     transparent, and you want shadows in those areas.
# 
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become 
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection, 
#     you can set this to `true`.
#
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

Steps of reproduction

  1. When restarting my pc or picom instead my opacity rules are not working
  2. Opacity is set on the basis of my opacity-active/inactive variable
  3. But if i go to my configuration and change any value in opacity-rule it automatically starts working

Expected behavior

When picom is starting it should read opacity-rules and should define opacity based on opacity-rules instead of opacity-active or inactive

Current Behavior

It is not loading my opacity-rules and if i change my configuration like if i change the value of opacity of Brave browser from 90 to 93 or any other value it automatically loads up my opacity-rules
I tried running with and without --experimental-backend

Stack trace

Other details

Phisch's animation code

Not an issue, just thought I would bring this to your attention as a reference. This is another fork of Picom with animations, and they're pretty decent: Tanish2002@18fbd43. I like this fork a little more since it includes options to personalize the animations, but unfortunately it is a bit buggy. Phisch's code has no options to adjust the animations AFAIK. Hopefully Phisch's code can help give some direction for this fork.

Not working at all.

Platform

Arch Linux

GPU, drivers, and screen setup

R7 250 and Intel Graphics 3000. Dual monitors.

name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: X.Org (0x1002)
Device: AMD Radeon HD 8600 Series (OLAND, DRM 3.37.0, 5.7.8-xanmod2-2-xanmod, LLVM 10.0.0) (0x6610)
Version: 20.1.3
Accelerated: yes
Video memory: 2048MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
VBO free memory - total: 1613 MB, largest block: 1613 MB
VBO free aux. memory - total: 2910 MB, largest block: 2910 MB
Texture free memory - total: 1613 MB, largest block: 1613 MB
Texture free aux. memory - total: 2910 MB, largest block: 2910 MB
Renderbuffer free memory - total: 1613 MB, largest block: 1613 MB
Renderbuffer free aux. memory - total: 2910 MB, largest block: 2910 MB
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 2048 MB
Total available memory: 5120 MB
Currently available dedicated video memory: 1613 MB
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon HD 8600 Series (OLAND, DRM 3.37.0, 5.7.8-xanmod2-2-xanmod, LLVM 10.0.0)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.1.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.1.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

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

Environment

BSPWM

picom version

vgit-d718c

Configuration:

# Basics.
backend = "glx";
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;

# Fading.
fading = true;
fade-delta = 5;
fade-in-step = 0.05;
fade-out-step = 0.05;
no-fading-openclose = false;

# Other.
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;
detect-client-leader = true;
unredir-if-possible = true;
unredir-if-possible-delay = 0;
unredir-if-possible-exclude = [ ];
invert-color-include = [ ];
use-damage = true;
vsync = true;
refresh-rate = 0;

# Opacity
inactive-opacity = 0.5;
inactive-opacity-override = false;
active-opacity = 1.0
opacity-rule = [
  "100:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FULLSCREEN'",
  "100:_NET_WM_STATE@[1]:32a = '_NET_WM_STATE_FULLSCREEN'",
  "100:_NET_WM_STATE@[2]:32a = '_NET_WM_STATE_FULLSCREEN'",
  "100:_NET_WM_STATE@[3]:32a = '_NET_WM_STATE_FULLSCREEN'",
  "100:_NET_WM_STATE@[4]:32a = '_NET_WM_STATE_FULLSCREEN'",
  "100:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FOCUSED'",
  "0:_NET_WM_STATE@[0]:32a *= '_NET_WM_STATE_HIDDEN'",
  "0:_NET_WM_STATE@[1]:32a *= '_NET_WM_STATE_HIDDEN'",
  "0:_NET_WM_STATE@[2]:32a *= '_NET_WM_STATE_HIDDEN'",
  "0:_NET_WM_STATE@[3]:32a *= '_NET_WM_STATE_HIDDEN'",
  "0:_NET_WM_STATE@[4]:32a *= '_NET_WM_STATE_HIDDEN'"
];

# Focus
focus-exclude = [
  "_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FOCUSED'"
];

# Window types
wintypes:
{
  tooltip = { shadow = false; full-shadow = false; };
  dock = { shadow = true; full-shadow = true; above = true; };
  dnd = { shadow = false; full-shadow = false; };
  popup_menu = { shadow = false; full-shadow = false; };
  dropdown_menu = { shadow = false; full-shadow = false; };
  normal = { shadow = true; full-shadow = true; };  
};

# Shadow.
shadow = true;
shadow-radius = 5;
shadow-offset-x = -3;
shadow-offset-y = -3;
shadow-opacity = 0.5;
shadow-exclude = [
  "class_g = 'firefox' && argb",
  "class_g = 'Glava'",
  "name *= 'picom'",
  "! name~=''"
];

# Blur.
blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "dual_kawase";
  #method = "kernel";
  strength = 3;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}
blur-background-exclude = [
  "class_g = 'Brave-browser'",
  "class_g = 'GLava'"
];

Steps of reproduction

  1. Build the latest version of your picom fork.
  2. Install and run with --experimental-backends.

Expected behavior

Fading works like normal, and so does the animations.

Current Behavior

Animations do not work half the time, and nor does fading, which used to work just fine.

Stack trace

Doesn't crash.

a proplem with a shered lib

mint 20 amd64
out put : `❯ meson --buildtype=release . build
The Meson build system
Version: 0.53.2
Source dir: /home/radwan/picom
Build dir: /home/radwan/picom/build
Build type: native build
Project name: picom
Project version: 7
C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C linker for the host machine: cc ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program git found: YES (/usr/bin/git)
Has header "stdc-predef.h" : YES
Compiler for C supports arguments -Wall: YES
meson.build:63: WARNING: Consider using the built-in warning_level option instead of using "-Wall".
Compiler for C supports arguments -Wcast-function-type: YES
Compiler for C supports arguments -Wignored-qualifiers: YES
Compiler for C supports arguments -Wmissing-parameter-type: YES
Compiler for C supports arguments -Wnonnull: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wno-type-limits -Wtype-limits: YES
Compiler for C supports arguments -Wold-style-declaration: YES
Compiler for C supports arguments -Woverride-init: YES
Compiler for C supports arguments -Wsign-compare: YES
Compiler for C supports arguments -Wtype-limits: YES
Compiler for C supports arguments -Wuninitialized: YES
Compiler for C supports arguments -Wshift-negative-value: YES
Compiler for C supports arguments -Wunused-but-set-parameter: YES
Compiler for C supports arguments -Wunused-parameter: YES
Compiler for C supports arguments -Wimplicit-fallthrough: YES
Compiler for C supports arguments -Wno-unknown-warning-option -Wunknown-warning-option: NO
Compiler for C supports arguments -Wno-missing-braces -Wmissing-braces: YES
Compiler for C supports arguments -Wconversion: YES
Compiler for C supports arguments -Wempty-body: YES

|Executing subproject test.h method meson
|
|Project name: test.h
|Project version: undefined
|C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
|C linker for the host machine: cc ld.bfd 2.34
|Build targets in project: 0
|Subproject test.h finished.

Found pkg-config: /usr/bin/pkg-config (0.29.1)
Found CMake: /usr/bin/cmake (3.16.3)
Run-time dependency libev found: NO (tried pkgconfig and cmake)
Library ev found: YES
Library m found: YES
Run-time dependency x11 found: YES 1.6.9
Run-time dependency x11-xcb found: YES 1.6.9
Run-time dependency xcb-renderutil found: YES 0.3.9
Run-time dependency xcb-image found: YES 0.4.0
Run-time dependency xext found: YES 1.3.4
Run-time dependency pixman-1 found: YES 0.38.4
Run-time dependency xcb-render found: YES 1.14
Run-time dependency xcb-damage found: YES 1.14
Run-time dependency xcb-randr found: YES 1.14
Run-time dependency xcb-sync found: YES 1.14
Run-time dependency xcb-composite found: YES 1.14
Run-time dependency xcb-shape found: YES 1.14
Run-time dependency xcb-xinerama found: YES 1.14
Run-time dependency xcb-xfixes found: YES 1.14
Run-time dependency xcb-present found: YES 1.14
Run-time dependency xcb found: YES 1.14
Has header "uthash.h" : YES
Run-time dependency libconfig found: YES 1.5
Run-time dependency libpcre found: NO (tried pkgconfig and cmake)

src/meson.build:47:1: ERROR: Dependency "libpcre" not found, tried pkgconfig and cmake

A full log can be found at /home/radwan/picom/build/meson-logs/meson-log.txt

picom on  next took 6s
❯ ninja -C build
ninja: Entering directory `build'
ninja: error: loading 'build.ninja': No such file or directory

picom on  next
❯ # To install the binaries in /usr/local/bin (optional)

picom on  next
❯ sudo ninja -C build install
` what should i do ???

Floating "teleports" Windows optically

Platform

Manjaro Linux stable branch

GPU, drivers, and screen setup

RTX3060 with nvidia-dkms 460.73, two monitors

Environment

i3-gaps

picom version

vgit-a8445

Configuration:

################################
#	Transitions	       
################################
#For picom compositors capable of transitions
size-transition = true
transition-length = 150

transition-pow-x = 0.2
transition-pow-y = 0.2
transition-pow-w = 0.2
transition-pow-h = 0.2


################################
#	Corner
################################
#For picom-* compositors capable of rounded corners

#corner-radius = 10
#round-borders = 1

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

shadow = true
shadow-radius = 8;

shadow-red=0.05
shadow-blue=0.05
shadow-green=0.05

shadow-opacity = 0.8
shadow-offset-x = -5;
shadow-offset-y = -3;
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "_GTK_FRAME_EXTENTS@:c"
];

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


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
 fade-delta = 3

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

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
inactive-opacity = 1
#inactive-opacity = 0.8;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
 frame-opacity = 1.0
#frame-opacity = 0.7;

# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
# active-opacity = 0.95

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

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

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#   opacity-rule = [ "80:class_g = 'URxvt'" ];
#   opacity-rule = [ "80:name *= 'discord'" ];
#   opacity-rule = [ "80:class_g *= 'rofi'"];
#
# opacity-rule = []


#################################
#     Background-Blurring       #
#################################

# Parameters for background blurring, see the *BLUR* section for more information.

#blur-method="dual_kawase";
#blur-strength = 4
#blur-background = true
#blur-background-frame = true
#blur-background-fixed = true

blur:{
	method = "dual_kawase"
	strength = 4
	background = true
	background-frame = true
	background-fixed = true
}

#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
 daemon = true

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
backend = "glx";

glx-no-stencil = true

#vsync = true;

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
dbus = true

# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

detect-client-opacity = true;

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

# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
  use-damage = false

transparent-clipping = false

log-level = "warn";

wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; corner-radius = 0;}
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.85; shadow = false; }
  dropdown_menu = { opacity = 0.85; shadow = false; }
  notification = {shadow = false;}
};

Steps of reproduction

  1. put a window in floating mode (in a WM that supports tiling and floating dynamically)
  2. try to move the windows

Expected behavior

i can move the floating window around normally

Current Behavior

the window "teleports" to one side optically, while the actual position that allows you to do stuff is somewhere else (you can see that with window borders for example)

Stack trace

doesn't crash

Other details

can record the bug on cam if needed

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.