Skip to main content

Picom Configuration Guide - X11 Compositor

Here is a comprehensive list of many configuration parameters for picom (a popular X11 compositor) — note: the available parameters may differ slightly between versions/forks (for example, the official version vs forks with extra features). Use this as a reference and always check your version’s man-page or sample config. (picom.app)


General / Backend / Process behaviour
#

ParameterDescription
backendChoose rendering backend: "xrender", "glx", "xr_glx_hybrid" etc. (Gist)
configPath to config file (when launching via CLI) (Linux Command Library)
daemonWhether to fork into background after initialization (config.phundrak.com)
vsyncEnable VSync to reduce tearing (Gist)
dbusEnable D-Bus control interface (config.phundrak.com)
glx-no-stencil, glx-copy-from-front, glx-swap-methodGLX-specific tuning options (Gist)

Shadows
#

ParameterDescription
shadowEnable window shadows (Gist)
shadow-radiusBlur radius of shadows (in pixels) (Gist)
shadow-opacityOpacity (0.0-1.0) of shadows (Gist)
shadow-offset-x, shadow-offset-yHorizontal/vertical offsets of shadows (Gist)
shadow-red, shadow-green, shadow-blueColour channels of shadow tint (0.0-1.0) (Gist)
shadow-excludeRules to exclude certain windows from shadows (Gist)
xinerama-shadow-cropCrop shadows to monitor when using Xinerama (Gist)

Fading / Transitions
#

ParameterDescription
fadingEnable fading of windows (on open/close or opacity change) (Gist)
fade-in-step, fade-out-stepIncrement/decrement per step of fade (opacity change) (Gist)
no-fading-opencloseDisable fading on open/close events (Linux Command Library)

Opacity / Dim / Inactive Windows
#

ParameterDescription
inactive-opacityOpacity for inactive windows (0.0-1.0) (Linux Command Library)
active-opacityOpacity for active (focused) windows (Gist)
opacity-ruleSpecific rules mapping windows to an opacity value (picom.app)
inactive-dimDim factor for inactive windows (makes them darker) (picom.app)

Rounded Corners / Borders
#

ParameterDescription
corner-radiusRadius (in pixels) for rounding window corners (freakybyte.github.io)
rounded-corners-excludeRules to exclude certain windows from having rounded corners (freakybyte.github.io)
round-borders(Some forks) number of pixels for border rounding (Gist)
round-borders-excludeRules to exclude windows from border rounding (Gist)

Blur / Background Blur
#

ParameterDescription
blur-backgroundWhether to blur backgrounds of windows (semi-transparent/ARGB) (config.phundrak.com)
blur-background-frameWhether to blur when the frame (decoration) is transparent/varying (config.phundrak.com)
blur-background-fixedUse fixed strength blur rather than varying by opacity (config.phundrak.com)
blur-methodMethod for blur: "none", "box", "gaussian", "dual_kawase", "kernel" etc. (picom.app)
blur-sizeKernel size for blur (integer, depends on method) (config.phundrak.com)
blur-deviationDeviation for gaussian blur method (float) (config.phundrak.com)
blur-strengthStrength for dual_kawase or other blur methods (integer) (config.phundrak.com)
blur-kernExplicit kernel definition for “kernel” method (string) (picom.app)
blur-background-excludeRules to prevent blur in certain windows (config.phundrak.com)

Window Rules / Matching / Conditions
#

ParameterDescription
rulesNew-style list of rules { match = "..."; key = value; ... } to apply on windows. (picom.app)
invert-color-include(Experimental) windows to invert colours (picom.app)
crop-shadow-to-monitorCrop shadows for windows to monitor area via RandR (picom.app)

Other Miscellaneous Parameters
#

ParameterDescription
inactive-opacity-overrideOverride opacity setting for inactive windows even if WM hints set something else (picom.app)
mark-wmwin-focused, mark-ovredir-focusedOptions for how to detect active/focused windows via window manager hints (picom.app)
unredir-if-possibleUnredirect full-screen/full-window windows for performance (depends on driver) (freakybyte.github.io)
xdisplay-name, refresh-rate (deprecated)X display and refresh rate options (note: refresh-rate is deprecated) (Reddit)

Example snippet of config
#

backend = "glx";
vsync = true;
shadow = true;
shadow-radius = 10;
shadow-opacity = 0.25;
corner-radius = 8;
rounded-corners-exclude = [ "class_g = 'Polybar'", "name = 'Notification'" ];
blur-method = "dual_kawase";
blur-strength = 4;
blur-background = true;
blur-background-exclude = [ "window_type = 'dock'", "_GTK_FRAME_EXTENTS@:c" ];
fading = true;
fade-in-step = 0.08;
fade-out-step = 0.08;
rules = (
  { match = "class_g = 'Firefox'"; opacity = 0.9; },
  { match = "name = 'Dialog'"; shadow = false; }
);

Notes & Caveats
#

  • Some parameters may only apply to forks of picom (e.g., ones that added rounded-corners, dual_kawase blur, etc). Always check version / manpages.
  • Some features (especially blur, rounded corners) may cause performance issues depending on GPU/driver. Users on Reddit report slowdowns. (Reddit)
  • If you mis-configure the config file (syntax errors, unsupported options) picom might fail to start or silently disable features.
  • There’s overlap/legacy options: older “inactive-opacity / active-opacity” vs new “rules” based approach — mixing both may produce unexpected results. (picom.app)
  • If you rely on a nested window manager (like i3, dwm etc) and especially tiling, ensure that your settings (unredir-if-possible, vsync, backend) match your GPU/driver setup.

If you like, I can send you a full commented picom.conf template (one with all major parameters commented out + explanations) tailored for use with dwm/tiling WM, so you can pick what you like. Would you like that?

Youcef
Author
Youcef
My name is youcef and i’m linux user who fool in love with linux , like free and open software .