# and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton
#################################
#################################
#
# Shadows #
# Backend
#
#################################
#################################
# Backend to use: "xrender" or "glx".
# GLX backend is typically much faster but depends on a sane driver.
backend = "glx";
#################################
# Enabled client-side shadows on windows. Note desktop windows
#
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# GLX backend
# unless explicitly requested using the wintypes option.
#
#
#################################
# shadow = false
shadow = true;
glx-no-stencil = true;
# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 7;
# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
# shadow-opacity = .75
# but a 20% increase when only 1/4 is.
# My tests on nouveau show terrible slowdown.
glx-copy-from-front = false;
# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
# The left offset for shadows, in pixels. (defaults to -15)
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
# shadow-offset-x = -15
# May break VSync and is not available on some drivers.
shadow-offset-x = -7;
# Overrides --glx-copy-from-front.
glx-use-copysubbuffermesa = true;
# GLX backend: Avoid rebinding pixmap on window damage.
# The top offset for shadows, in pixels. (defaults to -15)
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# shadow-offset-y = -15
# Recommended if it works.
shadow-offset-y = -7;
glx-no-rebind-pixmap = true;
# GLX backend: GLX buffer swap method we assume.
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
# undefined is the slowest and the safest, and the default value.
# copy is fastest, but may fail on some drivers,
# 2-6 are gradually slower but safer (6 is still faster than 0).
# Usually, double buffer means 2, triple buffer means 3.
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
# Useless with --glx-use-copysubbuffermesa.
# Partially breaks --resize-damage.
# Defaults to undefined.
#glx-swap-method = "undefined";
#################################
# 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.
#
#
# Shadows
# examples:
# shadow-exclude = "n:e:Notification";
#
#
#################################
# shadow-exclude = []
# Enabled client-side shadows on windows.
shadow = false
# The blur radius for shadows. (default 12)
shadow-radius = 5;
# The left offset for shadows. (default -15)
shadow-offset-x = -5;
# The top offset for shadows. (default -15)
shadow-offset-y = -5;
# The translucency for shadows. (default .75)
shadow-opacity = 0.5;
# Set if you want different colour shadows
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
# The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
shadow-exclude = [
shadow-exclude = [
"! name~=''",
"! name~=''",
"name = 'Notification'",
"name = 'Notification'",
...
@@ -104,147 +74,377 @@ shadow-exclude = [
...
@@ -104,147 +74,377 @@ shadow-exclude = [
# workaround for conky until it provides window properties:
# workaround for conky until it provides window properties:
"override_redirect = 1 && !WM_CLASS@:s"
"override_redirect = 1 && !WM_CLASS@:s"
];
];
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
shadow-ignore-shaped = false;
#################################
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
#
# clip-shadow-above = []
# Opacity
# 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.
# 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 #
#################################
#################################
inactive-opacity = 1;
active-opacity = 1;
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
frame-opacity = 1;
# 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;
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 never 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 = [
"90:name = 'alttab'",
"90:name = 'alttab'",
# no opacity on sticky windows
# no opacity on sticky windows
"99:_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'"
"99:_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'"
];
];
# Dim inactive windows. (0.0 - 1.0)
inactive-dim = 0.0;
#################################
# Corners #
# Do not let dimness adjust based on window opacity.
#################################
# inactive-dim-fixed = true;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
# Sets the radius of rounded window corners. When > 0, the compositor will
# blur-background = true;
# round the corners of windows. Does not interact well with
# Blur background of opaque windows with transparent frames as well.
# `transparent-clipping`.
# blur-background-frame = true;
corner-radius = 0
# Do not let blur radius adjust based on window opacity.
blur-background-fixed = false;
# Exclude conditions for rounded corners.
blur-background-exclude = [
rounded-corners-exclude = [
"window_type = 'dock'",
"window_type = 'dock'",
"window_type = 'desktop'"
"window_type = 'desktop'"
];
];
#################################
#################################
#
# Background-Blurring #
# Fading
#
#################################
#################################
# Fade windows during opacity changes.
fading = true;
# The time between steps in a fade in milliseconds. (default 10).
fade-delta = 4;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.03;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.03;
# Fade windows in/out when opening/closing
# no-fading-openclose = true;
# Specify a list of conditions of windows that should not be faded.
# Parameters for background blurring, see the *BLUR* section for more information.
fade-exclude = [ ];
# blur-method =
# blur-size = 12
#
# blur-deviation = false
#
# 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 = false
# 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.
#
#
# Other
# 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: