jonaburg / picom Goto Github PK
View Code? Open in Web Editor NEWThis project forked from sandsmark/picom
A lightweight compositor for X11 (previously a compton fork)
License: Other
This project forked from sandsmark/picom
A lightweight compositor for X11 (previously a compton fork)
License: Other
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
Manjaro Linux x86_64
NVIDIA Quadro T2000 Mobile / Max-Q only one screen the : the one of my laptop (Dell Precision 5540), resolution 1920x1090.
WM: awesome
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
Installing picom
Crashs while installing
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.
Arch Desktop amd64
AMD ATI, amdgpu, one monitor
i3-gaps
vgit-a8445
#################################
# 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
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.
Smoothly size transition for all four sides.
Size transition only appears on the left and top side of the window.
Manjaro 20.0 amd64
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
AwesomeWM
vgit-26035
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;
Pretty much anything that triggers an animation. Swapping, spawning, closing windows...
It happens randomly but often enough.
The animation plays only once and without making the windows disappear.
The animation plays several times, making the windows disappear for a few seconds in between loops.
PD: Rewatching the video I also noticed the first animation does not play. This happens once every time I restart picom.
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.
Arch Linux, kernel 5.11.16-arch1-1
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
Using i3-gaps
vgit-a8445
#################################
# 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; }
};
Wallpapers set by feh or nitrogen are unexpectedly blurred
Wallpaper is not blurred
Wallpaper is blurred
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.
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
Latest
Windows such as notifications, dmenu, and rofi to have animations.
Windows such as notifications, dmenu, and rofi don't have animations.
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.
Arch Linux x86_64
NVIDIA GeForce GTX 1070, nvidia-drivers 455.45.01, two monitors configured side-by-sdie with xrandr
dwm
N/A
N/A
yay -S picom-jonaburg-git
Expect binary to be built and put in /usr/bin or something like that.
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...
N/A
N/A
ArcoLinux (Arch) 64-bit, 5.9.13 kernel, Intel 4702MQ (haswell)
Lenovo Thinkpad T440p
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
Desktop Environment
Qtile version 0.16.1-2 with some xfce4 apps
vgit-a8445
Literally the example config that is provided
Screen does not blur when taking a screenshot
Entire screen blurs, preventing a clear screenshot
# 排除背景模糊
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"
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
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.
Artix Linux (rolling disease)
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
dwm
aur/picom-jonaburg-git (vgit-a8445)
Kyle Pfromer's picom.conf
No wallpaper in the background of popup windows, dropdown menus, and tooltips when they fade away.
I see wallpaper when e.g. tooltip fades away.
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.
Would you consider adding this picom fork to the AUR?
Arch linux 64 bit
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
Custom DWM build
vgit-a8445
(Note: I have tried both with the arch AUR package and with installing this git repo directly)
(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).
It only happens when I leave picom running for extended periods of time (multiple days).
Transitions when windows move on and off the screen should be smooth.
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.
Debian testing amd64
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
XFCE
vgit-d718c
picom --diagnostics
Version: v8
After compiling and launching with --experimental-backend no animations are observed.
It works as main picon version
Animation when new window opened, when window closed or minified, scaled and so on.
Windows appear instantly.
Are there any parameters I have to use and I don't know?
Thanks a lot!
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
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
modesetting`
#################################
# 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; }
};
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.
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?
arch on an amd laptop
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
minimal KDE with awesome as windowmanager
vgit-a8445
just copied the sample config
setup ur desktop with a conky widget, install this fork, set it to autostart and reboot the system
have only the widget without any bg effects
blurred conky despite it not being specifically adressed as program to blur in config file
Arch Linux
GTX 750 ti, latest Nvidia driver from Arch's repos, two monitors configured side-by-side
Official i3-gaps & openbox packages from Arch's reops
Version: vgit-d6bc6
NVIDIA
# 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;
Move some windows around on i3-gaps
It just slides the windows
I am aware that this fork is still very experimental, but I still hope you can make it a bit more stable :)
Linux 5.10.18-1-MANJARO x86_64 20.2.1 Nibia
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
jonaburg-git
# 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;
Reliably apply the blur settings on each run.
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.
x_set_picture_clip_region() has failed to allocate memory, at ../src/x.c:311. Aborting...
fish: “picom” terminated by signal SIGABRT (Abort) ....
Arch Linux amd64
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
Awesome window manager,
Config here
vgit-a8445
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
All windows should animate upon spawning
Only the 5th window and beyond animate when spawning
Artix Linux x86_64
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
Using dwm
$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
# 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};
};
Windows come in from the left, and are not visible on the monitor they are not meant to appear on.
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
Currently with rounded corners, shadows are sill square. So the visual effect looks broken. Is there any way to have rounded shadows as well?
Rounded shadows are already supported by sdhand's fork but that doesn't support kawase blur.
# 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 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.
#################################
# 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; }
};
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.
Manjaro x86-64
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
XFCE
vgit-3ecf9
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;
}
The window should smoothly transition between its currents size, and the new size.
The window resizes instantaneously, and only its position change is animated.
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).
Ubuntu 20.04 Intel i7
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
i3-gaps
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
picom -b &
CPU usage doesn't increase gradually
CPU usage increases gradually
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.
Void Linux
NVIDIA Geforce 920m
AwesomeWM
I'm trying to build it
Don't have a config yet
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
Manjaro Linux - Kernel 5.9.11-3
NVIDIA GeForce 940MX, Intel HD Graphics 620
Drivers: video-hybrid-intel-nvidia-455xx-prime
XMonad
❯ 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
# 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; }
};
The window moves normally.
The window tries to animate the movement and will not follow mouse speed. It will keep "freezing".
Here's a video showing the issue.
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.
vgit-a8445
#################################
# 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; }
};
Transitions for windows matching any rule in transition-exclude
are completely disabled
Transitions are enabled for all types of windows, ignoring my transition-exclude
rules
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.
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.
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.
*** 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
Suggest in the issue template to try and reproduce the issue using upstream picom if the issue is not related with the features this fork provides?
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.
Arch Desktop Linux 5.9.13-arch1-1
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
Xmonad
vgit-a8445
#################################
# 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; }
}
I don't know.
opacity rule can work.
opacity can't work
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.
Arch Linux x86_64
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
dwm (with paches and my own changes)
> comptop --version
vgit-a8445
#################################
# 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; }
};
None
Opacity inactive-opacity
defined in config file.
Opacity inactive-opacity
just ignored
Arch Linux
Intel i5 5200u
1080p
Qtile
picom-jonavurg-git 0.1-4
# 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; }
};
It should reflect changes made in the config
It ignores all rounded border and corner inclusions as well as completely ignores the fact that I've completely disabled rounded everything.
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
Linux archlinux 5.12.8-arch1-1 x86_64 GNU/Linux
I am on my Asus Laptop with intel integrated graphics
qtile
vgit-a8445
# 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; }
};
When picom is starting it should read opacity-rules and should define opacity based on opacity-rules instead of opacity-active or inactive
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
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.
Arch Linux
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
BSPWM
vgit-d718c
# 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'"
];
Fading works like normal, and so does the animations.
Animations do not work half the time, and nor does fading, which used to work just fine.
Doesn't crash.
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 ???
Manjaro Linux stable branch
RTX3060 with nvidia-dkms 460.73, two monitors
i3-gaps
vgit-a8445
################################
# 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;}
};
i can move the floating window around normally
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)
doesn't crash
can record the bug on cam if needed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.