PICOM(1) User Commands PICOM(1) (NAME) picom - X11 (SYNOPSIS) picom [OPTIONS] (DESCRIPTION) picom ( ) Dana Jansens xcompmgr ( Keith Packard ). xcompmgr . (OPTIONS) -h, --help . -r, --shadow-radius=RADIUS () . (: 12) -o, --shadow-opacity=OPACITY . (0.0 - 1.0 : 0.75) -l, --shadow-offset-x=OFFSET . (: -15) -t, --shadow-offset-y=OFFSET . (: -15) -I, --fade-in-step=OPACITY_STEP (fade-in). (0.01 - 1.0 : 0.028) -O, --fade-out-step=OPACITY_STEP (fade-out). (0.01 - 1.0 : 0.03) -D, --fade-delta=MILLISECONDS . (> 0 : 10) -c, --shadow . ( _NET_WM_WINDOW_TYPE_DESKTOP) wintypes . -f, --fading / --no-fading-openclose . -i, --inactive-opacity=OPACITY . (0.1 - 1.0 : 1.0). WINDOW RULES . -e, --frame-opacity=OPACITY . (0.1 - 1.0 ) -b, --daemon (daemon). (fork) . . --log-level (log level). : "TRACE" "VERBOSE" "DEBUG" "INFO" "WARN" "ERROR". . "TRACE" --log-file . --log-file (log). --log-file stderr . stderr . . --show-all-xerrors X ( ). --config PATH . picom CONFIGURATION FILES . /dev/null . --write-pid-path PATH (PID) . . --plugins PATH (plugins) . ( ) $XDG_CONFIG_HOME/picom/plugins $XDG_CONFIG_DIRS/picom/plugins. (dynamic loader) . . --shadow-color STRING ( #000000). --shadow-red VALUE (0.0 - 1.0 : 0). --shadow-green VALUE (0.0 - 1.0 : 0). --shadow-blue VALUE (0.0 - 1.0 : 0). --inactive-opacity-override -i _NET_WM_WINDOW_OPACITY ( ). WINDOW RULES . --active-opacity OPACITY . (0.0 - 1.0 : 1.0). WINDOW RULES . --inactive-dim VALUE . (0.0 - 1.0 : 0.0). WINDOW RULES . --corner-radius VALUE . 0 . --transparent-clipping . (: 0). --corner-radius-rules RADIUS:CONDITION . . --rounded-corners-exclude . --opacity-rule . WINDOW RULES . --rounded-corners-exclude CONDITION . WINDOW RULES . --no-frame-pacing vsync (frame pacing). vblank (latency) . (stuttering) . . --mark-wmwin-focused ( override-redirect WM_STATE ) . WINDOW RULES . --mark-ovredir-focused override-redirect WM_STATE . WINDOW RULES . --no-fading-openclose . --no-fading-destroyed-argb ARGB WM. Openbox Fluxbox . --shadow-ignore-shaped (shaped). X Shape . ARGB . WINDOW RULES . --detect-rounded-corners (shaped). . --detect-client-opacity _NET_WM_WINDOW_OPACITY _NET_WM_WINDOW_OPACITY . --vsync, --no-vsync / (VSync). --use-ewmh-active-win _NET_ACTIVE_WINDOW EWMH 'FocusIn'/'FocusOut'. . --unredir-if-possible (Unredirect) . (flickering) redirecting/unredirecting . : o . . o . o . ( --no-ewmh-fullscreen ). o (_NET_WM_BYPASS_COMPOSITOR). --unredir-if-possible (unredirect). --unredir-if-possible-delay MILLISECONDS . : 0. --unredir-if-possible-exclude CONDITION . unredirect WINDOW RULES . --shadow-exclude CONDITION . WINDOW RULES . --clip-shadow-above CONDITION (dock). WINDOW RULES . --fade-exclude CONDITION . WINDOW RULES . --focus-exclude CONDITION . WINDOW RULES . --inactive-dim-fixed . --detect-transient WM_TRANSIENT_FOR . --detect-client-leader WM_CLIENT_LEADER . . --detect-transient WM_TRANSIENT_FOR . --blur-method, --blur-size, --blur-deviation, --blur-strength BLUR . --blur-background / ARGB. . . --blur-background-frame () . --blur-background . . . --blur-background-fixed (fading). --fading (no-op) . --blur-kern MATRIX (convolution kernel) : WIDTH,HEIGHT,ELE1,ELE2,ELE3,ELE4,ELE5... . . . width * height - 1 . . . () . --blur-background-fixed 1.0 . . 7x7 ( = 0.84089642) : --blur-kern '7,7,0.000003,0.000102,0.000849,0.001723,0.000849,0.000102,0.000003,0.000102,0.003494,0.029143,0.059106,0.029143,0.003494,0.000102,0.000849,0.029143,0.243117,0.493069,0.243117,0.029143,0.000849,0.001723,0.059106,0.493069,0.493069,0.059106,0.001723,0.000849,0.029143,0.243117,0.493069,0.243117,0.029143,0.000849,0.000102,0.003494,0.029143,0.059106,0.029143,0.003494,0.000102,0.000003,0.000102,0.000849,0.001723,0.000849,0.000102,0.000003' : 3x3box () 5x5box 7x7box 3x3gaussian 5x5gaussian 7x7gaussian 9x9gaussian 11x11gaussian. = 0.84089642 . ( BLUR ). --blur-background-exclude CONDITION . --invert-color-include CONDITION . . WINDOW RULES . --opacity-rule OPACITY:CONDITION PERCENT:PATTERN 50:name *= "Firefox". picom-trans . _NET_WM_WINDOW_OPACITY . WINDOW RULES . --crop-shadow-to-monitor . X RandR . --backend BACKEND : xrender glx. xrender . o xrender X Render . xcompmgr (fallback) . o glx ( OpenGL) OpenGL . VSync (--invert-color-include) (--blur-background) . OpenGL 3.3 . GLX . --xrender-sync-fence . --no-use-damage (damage information). . . --xrender-sync-fence X Sync fence picom. nvidia GLX . --force-win-blend (blending). . --dbus D-Bus. D-BUS API . --benchmark CYCLES (Benchmark). . --benchmark-wid WINDOW_ID (window ID) . 0 . --no-ewmh-fullscreen EWMH . . --max-brightness . . 1.0 . --use-damage . (: 1.0) --transparent-clipping (clip ) (blend) . --transparent-clipping-exclude CONDITION . () . --window-shader-fg SHADER (GLSL fragment shader) . . SHADER INTERFACE . --window-shader-fg-rule SHADER:CONDITION (GLSL fragment shader) . --opacity-rule SHADER:CONDITION "shader.frag:name = 'window'". SHADER . SHADER "default" . ( "default" ). WINDOW RULES . --root-pixmap-shader SHADER (GLSL fragment shader) (root pixmap). . . SHADER INTERFACE . --dithered-present (dither) . (banding artifacts) . OpenGL . (Window rules) . . . : --shadow-ignore-shaped, -i, --inactive-opacity=OPACITY, --active-opacity OPACITY, --inactive-opacity-override, --inactive-dim VALUE, --mark-wmwin-focused, --mark-ovredir-focused, --invert-color-include CONDITION, --shadow-exclude CONDITION, --fade-exclude CONDITION, --focus-exclude CONDITION, --rounded-corners-exclude CONDITION, --blur-background-exclude CONDITION, --opacity-rule OPACITY:CONDITION, --corner-radius-rules RADIUS:CONDITION, --window-shader-fg-rule SHADER:CONDITION, --clip-shadow-above CONDITION. wintypes. . . . Migrating old rules . (Syntax) . rules : rules = ( { match = "focused"; opacity = 1; }, { match = "name = 'firefox'"; shadow = true; }, # ... and so on ) rules = ( ... ) (list) . rules ( { key = value; ... }) . . . : match . FORMAT OF CONDITIONS . . shadow . full-shadow . . shadow-color . --shadow-color STRING. fade / (fade in/out) . . -f --fading . opacity . (0.0 - 1.0). ( _NET_WM_WINDOW_OPACITY) . blur-opacity . (0.0 - 1.0). 1.0 . blur-background . dim (dim) . . (0.0 - 1.0) corner-radius . 0 . blur-background . invert-color . clip-shadow-above . unredir (unredirect) . true false . . unredir preferred true passive . forced unredir forced . _NET_WM_BYPASS_COMPOSITOR unredir . transparent-clipping (clip) (blend) . . shader (GLSL fragment shader) . SHADER INTERFACE . . (macro defines) . : shader = { path = "path/to/shader.glsl"; defines = { COLOR = "vec4(1.0, 0.0, 0.0, 1.0)"; }; }; #define COLOR vec4(1.0, 0.0, 0.0, 1.0) ( ). define . animations . animations . ANIMATIONS . . . (1:1) . . -i --inactive-opacity=OPACITY --inactive-dim VALUE --active-opacity OPACITY --inactive-opacity-override --mark-wmwin-focused --mark-ovredir-focused . (compositor) << >> . match = "focused || group_focused" . (opacity) (dim) . --mark-wmwin-focused --mark-ovredir-focused || wmwin || override_redirect . --inactive-opacity-override opacity-override = true . opacity opacity ( _NET_WM_WINDOW_OPACITY) picom-trans (override) . picom-trans ! _NET_WM_WINDOW_OPACITY opacity . --focus-exclude CONDITION . . ( ) . . : rules = ( { match = "fullscreen"; corner-radius = 0; }, ) (FORMAT OF CONDITIONS) . . (formal grammar) : Condition <- Term ('||' Term)* Term <- Item ('&&' Item)* Item <- '!'? Target '@'? ('[' Index ']')? (Operator Pattern)? | '(' Condition ')' Item && () || () . && || . (left-associative) . . Item (!) . Item: Target (window property) . : x, y, x2, y2 - (x, y) - (x2, y2). width, height . widthb, heightb width height . border_width . fullscreen . --no-ewmh-fullscreen _NET_WM_STATE_FULLSCREEN . override_redirect override-redirect . argb ARGB . focused . group_focused . --detect-transient --detect-client-leader . wmwin (WM) override-redirect . bounding_shaped (bounding shape) . rounded_corners . bounding_shaped . --detect-rounded-corners . --corner-radius VALUE . window_type _NET_WM_WINDOW_TYPE . normal _NET_WM_WINDOW_TYPE_NORMAL . . name . _NET_WM_NAME _WM_NAME . class_i, class_g (instance) . _WM_CLASS . role . _WM_WINDOW_ROLE . urgent ICCCM . (urgency bit) WM_HINTS . . _NET_WM_STATE_DEMANDS_ATTENTION _NET_WM_STATE ( _NET_WM_STATE@[*] = '_NET_WM_STATE_DEMANDS_ATTENTION'). (client window) Target @ . (frame window) . Index () . [2] . ( [0]) . [*] OR . . Operator Pattern Target . Target . Target Operator Pattern != 0 . Target . = > < >= <= ! ( != !> ). = ( ) *= ( ) ^= ( ) %= ( glob) ~= ( regex) ?= *?= ^?= %?= ~?=. ! ( != !*= ). Pattern . (escape sequences) Python-3 . true 1 false 0 . : # focused focused = 1 # override-redirect !override_redirect override_redirect = false override_redirect != true override_redirect != 1 # window_type *= "menu" _NET_WM_WINDOW_TYPE@ *= "MENU" # : _NET_WM_STATE _NET_WM_STATE_HIDDEN _NET_WM_STATE@[*] = "_NET_WM_STATE_HIDDEN" # : _NET_WM_STATE # "sticky" _NET_WM_STATE@[*] *?= "sticky" # "Firefox" name *?= "Firefox" _NET_WM_NAME@ *?= "Firefox" # "Firefox" name %= "*Firefox" name ~= "Firefox$" # _COMPTON_SHADOW 0 CARDINAL # 32 0 _COMPTON_SHADOW = 0 # _NET_FRAME_EXTENTS 20 # _NET_FRAME_EXTENTS _NET_FRAME_EXTENTS@[2] < 20 || !_NET_FRAME_EXTENTS@ # "dd4" name = "\x64\x64\o64" # name = 'Firefox' || name = 'Chromium' && class_i = 'Navigator' name = 'Firefox' || (name = 'Chromium' && class_i = 'Navigator') picom . picom . animations . WINDOW RULES animations . ( .) animations : animations = ({ triggers = [ ... ]; suppressions = [ ... ]; # more options follow ... }, { # another animation script }, ...) animations = ( ... ) animations . ( { key = value; ... }). triggers suppressions . (Common options) triggers . . : open . close . show . hide . increase-opacity . opacity . decrease-opacity . opacity . size, position . size . () color . shadow-color . geometry size + position. size position . ( ) . suppressions . . suppressions . . (Presets) . picom . preset : animations = ({ triggers = [ "close", "hide" ]; preset = "slide-out"; direction = "down"; ... }, ...) . slide-out direction . . . . : slide-in, slide-out / . direction up down left right. duration . ( ). fly-in, fly-out / . direction up down left right. duration . appear, disappear / . scale 1.0 . duration . geometry-change ( ) . geometry saved-image-blend . . duration . . . . (Basic syntax) : # this animation script does nothing to your windows by the way. animations = ({ # common options, these are not part of the collection of variables triggers = [ "open" ]; # variables a = 10; b = "a * 10"; c = "a + b"; d = { curve = "cubic-bezier(0.25, 0.1, 0.25, 1.0)"; duration = 0.5; delay = 0; start = 0; end = 1; }; # more options follow # ... }, ...) (expression) (timing function) . a (10) b a * 10 c . . . . (-) . a - 10 a 10 a-10 a-10 . d . . . : curve . linear cubic-bezier steps : "jumpterm" jump-start jump-end jump-none jump-both . curve . delay . 0 . duration start end . 0 . start . . end . . curve . . delay duration start end . delay duration start end . . . . . (triggers suppressions preset) libconfig . . (Output variables) . . " " . . : animations = ({ triggers = [ "open" ]; offset-x = { duration = 2; start = 0; end = 100; }; }, ...) . . . : ) ( a- b- ) ) var- tmp- user- . . : offset-x offset-y (offset) X Y. . shadow-offset-x shadow-offset-y . shadow-offset-x shadow-offset-y X Y. . . opacity (opacity) . 0 1 . blur-opacity (blur) . 0 1 . shadow-opacity . 0 1 . shadow-red shadow-green shadow-blue . 0 1 . scale-x scale-y shadow-scale-x shadow-scale-y X Y. 1.0 . . - . crop-x crop-y crop-width crop-height . (crop). . saved-image-blend (geometry) . (blend) . . 0 1 0 1 . () saved-image-blend . . issue GitHub . . . . opacity "close" "hide" 0 . opacity 1 . (Context variables) . . . . picom . . (shadow ). . : . : window-x window-y - . window-width window-height . window-x-before window-y-before window-width-before window-height-before . geometry . window-monitor-x window-monitor-y window-monitor-width window-monitor-height . . window-raw-opacity-before window-raw-opacity 0 1 . . . window-blur-opacity-before window-blur-opacity . window-shadow-red window-shadow-green window-shadow-blue window-shadow-red-before window-shadow-green-before window-shadow-blue-before . ( window-*-before ). window-*-before ( ) . start end duration delay . . issue pull request picom GitHub . (SHADER INTERFACE) (shader) picom picom . GLSL ( GLSL fragment shader) . picom ( ) . . picom backend . xrender . backend glx . vec4 window_shader() (entry point) . vec4 gl_FragColor . vec4 default_post_processing(vec4 c) picom 'c' . / (uniform/input) : in vec2 texcoord; // texture coordinate of the fragment uniform float opacity; // opacity of the window (0.0 - 1.0) uniform float dim; // dimming factor of the window (0.0 - 1.0, higher means more dim) uniform float corner_radius; // corner radius of the window (pixels) uniform float border_width; // estimated border width of the window (pixels) uniform bool invert_color; // whether to invert the color of the window uniform sampler2D tex; // texture of the window uniform vec2 effective_size; // effective dimensions of the texture (repeats pixels if larger than tex) uniform sampler2D brightness; // estimated brightness of the window, 1x1 texture uniform float max_brightness; // configured maximum brightness of the window (0.0 - 1.0) uniform float time; // time in milliseconds, counting from an unspecified starting point picom : #version 330 in vec2 texcoord; // texture coordinate of the fragment uniform sampler2D tex; // texture of the window // Default window post-processing: // 1) invert color // 2) opacity / transparency // 3) max-brightness clamping // 4) rounded corners vec4 default_post_processing(vec4 c); // Default window shader: // 1) fetch the specified pixel // 2) apply default post-processing vec4 window_shader() { vec2 texsize = textureSize(tex, 0); vec4 c = texture2D(tex, texcoord / texsize, 0); return default_post_processing(c); } . (CONFIGURATION FILES) libconfig picom . --config picom $XDG_CONFIG_HOME/picom.conf ( ~/.config/picom.conf) $XDG_CONFIG_HOME/picom/picom.conf $XDG_CONFIG_DIRS/picom.conf ( /etc/xdg/picom.conf) $XDG_CONFIG_DIRS/picom/picom.conf . @include picom picom.conf $XDG_CONFIG_HOME/picom/include/ $XDG_CONFIG_DIRS/picom/include . picom libconfig . picom.sample.conf . . --vsync `vsync = ` . (overwrite) . . rules ( (WINDOW RULES) ) animations ( (ANIMATIONS) ) wintypes ( ) . (Window-type-specific) . . : wintypes: { WINDOW_TYPE = { fade = BOOL; shadow = BOOL; opacity = FLOAT; focus = BOOL; blur-background = BOOL; full-shadow = BOOL; clip-shadow-above = BOOL; redir-ignore = BOOL; }; }; (Warning) (WINDOW RULES) . (Important) . wintypes wintypes . (WINDOW RULES) . WINDOW_TYPE EWMH : "unknown" "desktop" "dock" "toolbar" "menu" "utility" "splash" "dialog" "normal" "dropdown_menu" "popup_menu" "tooltip" "notification" "combo" "dnd". : fade, shadow (fade) . opacity (opacity) . focus (focused) . ( "normal" "dialog" .) blur-background (blur) . full-shadow . . clip-shadow-above (clip) . dock . redir-ignore (unredirect) . --unredir-if-possible true . 'blur' . : blur: { method = "gaussian"; size = 10; deviation = 5.0; }; blur : method . . --blur-method . : none gaussian box kernel dual_kawase dual-filter kawase. (: none) size . gaussian box . kernel . --blur-size (: 3). deviation . gaussian. --blur-deviation (: 0.84089642). strength 0-20. dual_kawase. --blur-strength . --blur-size (: 5). kernel . kernel --blur-kern . --blur-kern . (SIGNALS) o picom SIGUSR1 . D-BUS (D-BUS API) picom D-Bus picom --dbus com.github.chjj.compton. . picom - (underscore) . DISPLAY=:0.0 com.github.chjj.compton._0_0 . D-Bus . (EXAMPLES) o : $ picom --config /dev/null o picom (fading) : $ picom -cf o / (fork): $ picom -bcf -i 0.8 -e 0.8 --no-fading-openclose o : $ picom -c --shadow-red 1 --shadow-green 1 --shadow-blue 1 o wbar: $ picom -c --shadow-exclude 'class_g = "wbar"' o VSync GLX: $ picom --backend glx --vsync . . (RESOURCES) : (SEE ALSO) xcompmgr(1), picom-inspect(1), picom-trans(1) (AUTHORS) Yuxuan Shui picom 2026-04-03 PICOM(1)