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
#| Parameter | Description |
|---|
backend | Choose rendering backend: "xrender", "glx", "xr_glx_hybrid" etc. (Gist) |
config | Path to config file (when launching via CLI) (Linux Command Library) |
daemon | Whether to fork into background after initialization (config.phundrak.com) |
vsync | Enable VSync to reduce tearing (Gist) |
dbus | Enable D-Bus control interface (config.phundrak.com) |
glx-no-stencil, glx-copy-from-front, glx-swap-method | GLX-specific tuning options (Gist) |
Shadows
#| Parameter | Description |
|---|
shadow | Enable window shadows (Gist) |
shadow-radius | Blur radius of shadows (in pixels) (Gist) |
shadow-opacity | Opacity (0.0-1.0) of shadows (Gist) |
shadow-offset-x, shadow-offset-y | Horizontal/vertical offsets of shadows (Gist) |
shadow-red, shadow-green, shadow-blue | Colour channels of shadow tint (0.0-1.0) (Gist) |
shadow-exclude | Rules to exclude certain windows from shadows (Gist) |
xinerama-shadow-crop | Crop shadows to monitor when using Xinerama (Gist) |
Fading / Transitions
#| Parameter | Description |
|---|
fading | Enable fading of windows (on open/close or opacity change) (Gist) |
fade-in-step, fade-out-step | Increment/decrement per step of fade (opacity change) (Gist) |
no-fading-openclose | Disable fading on open/close events (Linux Command Library) |
Opacity / Dim / Inactive Windows
#| Parameter | Description |
|---|
inactive-opacity | Opacity for inactive windows (0.0-1.0) (Linux Command Library) |
active-opacity | Opacity for active (focused) windows (Gist) |
opacity-rule | Specific rules mapping windows to an opacity value (picom.app) |
inactive-dim | Dim factor for inactive windows (makes them darker) (picom.app) |
Rounded Corners / Borders
#| Parameter | Description |
|---|
corner-radius | Radius (in pixels) for rounding window corners (freakybyte.github.io) |
rounded-corners-exclude | Rules to exclude certain windows from having rounded corners (freakybyte.github.io) |
round-borders | (Some forks) number of pixels for border rounding (Gist) |
round-borders-exclude | Rules to exclude windows from border rounding (Gist) |
Blur / Background Blur
#| Parameter | Description |
|---|
blur-background | Whether to blur backgrounds of windows (semi-transparent/ARGB) (config.phundrak.com) |
blur-background-frame | Whether to blur when the frame (decoration) is transparent/varying (config.phundrak.com) |
blur-background-fixed | Use fixed strength blur rather than varying by opacity (config.phundrak.com) |
blur-method | Method for blur: "none", "box", "gaussian", "dual_kawase", "kernel" etc. (picom.app) |
blur-size | Kernel size for blur (integer, depends on method) (config.phundrak.com) |
blur-deviation | Deviation for gaussian blur method (float) (config.phundrak.com) |
blur-strength | Strength for dual_kawase or other blur methods (integer) (config.phundrak.com) |
blur-kern | Explicit kernel definition for “kernel” method (string) (picom.app) |
blur-background-exclude | Rules to prevent blur in certain windows (config.phundrak.com) |
Window Rules / Matching / Conditions
#| Parameter | Description |
|---|
rules | New-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-monitor | Crop shadows for windows to monitor area via RandR (picom.app) |
Other Miscellaneous Parameters
#| Parameter | Description |
|---|
inactive-opacity-override | Override opacity setting for inactive windows even if WM hints set something else (picom.app) |
mark-wmwin-focused, mark-ovredir-focused | Options for how to detect active/focused windows via window manager hints (picom.app) |
unredir-if-possible | Unredirect 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?