1picom(1) 2======== 3:doctype: manpage 4:man source: picom 5:man version: {picom-version} 6:man manual: User Commands 7 8NAME 9---- 10picom - a compositor for X11 11 12SYNOPSIS 13-------- 14*picom* ['OPTIONS'] 15 16DESCRIPTION 17----------- 18picom is a compositor based on Dana Jansens' version of xcompmgr (which itself was written by Keith Packard). It includes some improvements over the original xcompmgr, like window frame opacity and inactive window transparency. 19 20OPTIONS 21------- 22*-h*, *--help*:: 23 Get the usage text embedded in program code, which may be more up-to-date than this man page. 24 25*-r*, *--shadow-radius*='RADIUS':: 26 The blur radius for shadows, in pixels. (defaults to 12) 27 28*-o*, *--shadow-opacity*='OPACITY':: 29 The opacity of shadows. (0.0 - 1.0, defaults to 0.75) 30 31*-l*, *--shadow-offset-x*='OFFSET':: 32 The left offset for shadows, in pixels. (defaults to -15) 33 34*-t*, *--shadow-offset-y*='OFFSET':: 35 The top offset for shadows, in pixels. (defaults to -15) 36 37*-I*, *--fade-in-step*='OPACITY_STEP':: 38 Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) 39 40*-O*, *--fade-out-step*='OPACITY_STEP':: 41 Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) 42 43*-D*, *--fade-delta*='MILLISECONDS':: 44 The time between steps in fade step, in milliseconds. (> 0, defaults to 10) 45 46*-m*, *--menu-opacity*='OPACITY':: 47 Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) 48 49*-c*, *--shadow*:: 50 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. 51 52*-C*, *--no-dock-shadow*:: 53 Avoid drawing shadows on dock/panel windows. This option is deprecated, you should use the *wintypes* option in your config file instead. 54 55*-f*, *--fading*:: 56 Fade windows in/out when opening/closing and when opacity changes, unless *--no-fading-openclose* is used. 57 58*-F*:: 59 Equals to *-f*. Deprecated. 60 61*-i*, *--inactive-opacity*='OPACITY':: 62 Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) 63 64*-e*, *--frame-opacity*='OPACITY':: 65 Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) 66 67*-G*, *--no-dnd-shadow*:: 68 Don't draw shadows on drag-and-drop windows. This option is deprecated, you should use the *wintypes* option in your config file instead. 69 70*-b*, *--daemon*:: 71 Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. 72 73*--log-level*:: 74 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. 75 76*--log-file*:: 77 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. 78 79*--experimental-backends*:: 80 Use the new, reimplemented version of the backends. The new backends are HIGHLY UNSTABLE at this point, you have been warned. This option is not available in the config file. 81 82*--show-all-xerrors*:: 83 Show all X errors (for debugging). 84 85*--config* 'PATH':: 86 Look for configuration file at the path. See *CONFIGURATION FILES* section below for where picom looks for a configuration file by default. Use `/dev/null` to avoid loading configuration file. 87 88*--write-pid-path* 'PATH':: 89 Write process ID to a file. it is recommended to use an absolute path. 90 91*--shadow-red* 'VALUE':: 92 Red color value of shadow (0.0 - 1.0, defaults to 0). 93 94*--shadow-green* 'VALUE':: 95 Green color value of shadow (0.0 - 1.0, defaults to 0). 96 97*--shadow-blue* 'VALUE':: 98 Blue color value of shadow (0.0 - 1.0, defaults to 0). 99 100*--inactive-opacity-override*:: 101 Let inactive opacity set by *-i* override the '_NET_WM_OPACITY' values of windows. 102 103*--active-opacity* 'OPACITY':: 104 Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) 105 106*--inactive-dim* 'VALUE':: 107 Dim inactive windows. (0.0 - 1.0, defaults to 0.0) 108 109*--mark-wmwin-focused*:: 110 Try to detect WM windows (a non-override-redirect window with no child that has 'WM_STATE') and mark them as active. 111 112*--mark-ovredir-focused*:: 113 Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. 114 115*--no-fading-openclose*:: 116 Do not fade on window open/close. 117 118*--no-fading-destroyed-argb*:: 119 Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. 120 121*--shadow-ignore-shaped*:: 122 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. 123 124*--detect-rounded-corners*:: 125 Try to detect windows with rounded corners and don't consider them shaped windows. The accuracy is not very high, unfortunately. 126 127*--detect-client-opacity*:: 128 Detect '_NET_WM_OPACITY' on client windows, useful for window managers not passing '_NET_WM_OPACITY' of client windows to frame windows. 129 130*--refresh-rate* 'REFRESH_RATE':: 131 Specify refresh rate of the screen. If not specified or 0, picom will try detecting this with X RandR extension. 132 133*--vsync*, *--no-vsync*:: 134 Enable/disable VSync. 135 136*--sw-opti*:: 137 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. 138 139*--use-ewmh-active-win*:: 140 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. 141 142*--unredir-if-possible*:: 143 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. 144 145*--unredir-if-possible-delay* 'MILLISECONDS':: 146 Delay before unredirecting the window, in milliseconds. Defaults to 0. 147 148*--unredir-if-possible-exclude* 'CONDITION':: 149 Conditions of windows that shouldn't be considered full-screen for unredirecting screen. 150 151*--shadow-exclude* 'CONDITION':: 152 Specify a list of conditions of windows that should have no shadow. 153 154*--fade-exclude* 'CONDITION':: 155 Specify a list of conditions of windows that should not be faded. 156 157*--focus-exclude* 'CONDITION':: 158 Specify a list of conditions of windows that should always be considered focused. 159 160*--inactive-dim-fixed*:: 161 Use fixed inactive dim value, instead of adjusting according to window opacity. 162 163*--detect-transient*:: 164 Use 'WM_TRANSIENT_FOR' to group windows, and consider windows in the same group focused at the same time. 165 166*--detect-client-leader*:: 167 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. 168 169*--blur-method*, *--blur-size*, *--blur-deviation*:: 170 Parameters for background blurring, see the *BLUR* section for more information. 171 172*--blur-background*:: 173 Blur background of semi-transparent / ARGB windows. Bad in performance, with driver-dependent behavior. The name of the switch may change without prior notifications. 174 175*--blur-background-frame*:: 176 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. 177 178*--blur-background-fixed*:: 179 Use fixed blur strength rather than adjusting according to window opacity. 180 181*--blur-kern* 'MATRIX':: 182 Specify the blur convolution kernel, with the following format: 183+ 184---- 185WIDTH,HEIGHT,ELE1,ELE2,ELE3,ELE4,ELE5... 186---- 187+ 188In other words, the matrix is formatted as a list of comma separated numbers. The first two numbers must be integers, which specify the width and height of the matrix. They must be odd numbers. Then, the following 'width * height - 1' numbers specifies the numbers in the matrix, row by row, excluding the center element. 189+ 190The elements are finite floating point numbers. The decimal pointer has to be '.' (a period), scientific notation is not supported. 191+ 192The element in the center will either be 1.0 or varying based on opacity, depending on whether you have *--blur-background-fixed*. Yet the automatic adjustment of blur factor may not work well with a custom blur kernel. 193+ 194A 7x7 Gaussian blur kernel (sigma = 0.84089642) looks like: 195+ 196---- 197--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' 198---- 199+ 200May also be one of the predefined kernels: `3x3box` (default), `5x5box`, `7x7box`, `3x3gaussian`, `5x5gaussian`, `7x7gaussian`, `9x9gaussian`, `11x11gaussian`. All Gaussian kernels are generated with sigma = 0.84089642 . If you find yourself needing to generate custom blur kernels, you might want to try the new blur configuration supported by the experimental backends (See *BLUR* and *--experimental-backends*). 201 202*--blur-background-exclude* 'CONDITION':: 203 Exclude conditions for background blur. 204 205*--resize-damage* 'INTEGER':: 206 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. 207 208*--invert-color-include* 'CONDITION':: 209 Specify a list of conditions of windows that should be painted with inverted color. Resource-hogging, and is not well tested. 210 211*--opacity-rule* 'OPACITY':'CONDITION':: 212 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. 213 214*--shadow-exclude-reg* 'GEOMETRY':: 215 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. 216 217*--xinerama-shadow-crop*:: 218 Crop shadow of a window fully on a particular Xinerama screen to the screen. 219 220*--backend* 'BACKEND':: 221 Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. `xrender` is the default one. 222+ 223-- 224* `xrender` backend performs all rendering operations with X Render extension. It is what `xcompmgr` uses, and is generally a safe fallback when you encounter rendering artifacts or instability. 225* `glx` (OpenGL) backend performs all rendering operations with OpenGL. It is more friendly to some VSync methods, and has significantly superior performance on color inversion (*--invert-color-include*) or blur (*--blur-background*). It requires proper OpenGL 2.0 support from your driver and hardware. You may wish to look at the GLX performance optimization options below. *--xrender-sync-fence* might be needed on some systems to avoid delay in changes of screen contents. 226* `xr_glx_hybrid` backend renders the updated screen contents with X Render and presents it on the screen with GLX. It attempts to address the rendering issues some users encountered with GLX backend and enables the better VSync of GLX backends. *--vsync-use-glfinish* might fix some rendering issues with this backend. 227-- 228 229*--glx-no-stencil*:: 230 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. 231 232*--glx-no-rebind-pixmap*:: 233 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. 234 235*--no-use-damage*:: 236 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. 237 238*--xrender-sync-fence*:: 239 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. 240 241*--glx-fshader-win* 'SHADER':: 242 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. 243 244*--force-win-blend*:: 245 Force all windows to be painted with blending. Useful if you have a *--glx-fshader-win* that could turn opaque pixels transparent. 246 247*--dbus*:: 248 Enable remote control via D-Bus. See the *D-BUS API* section below for more details. 249 250*--benchmark* 'CYCLES':: 251 Benchmark mode. Repeatedly paint until reaching the specified cycles. 252 253*--benchmark-wid* 'WINDOW_ID':: 254 Specify window ID to repaint in benchmark mode. If omitted or is 0, the whole screen is repainted. 255 256*--no-ewmh-fullscreen*:: 257 Do not use EWMH to detect fullscreen windows. Reverts to checking if a window is fullscreen based only on its size and coordinates. 258 259*--max-brightness*:: 260 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) 261 262*--transparent-clipping*:: 263 Make transparent windows clip other windows like non-transparent windows do, instead of blending on top of them. 264 265FORMAT OF CONDITIONS 266-------------------- 267Some options accept a condition string to match certain windows. A condition string is formed by one or more conditions, joined by logical operators. 268 269A condition with "exists" operator looks like this: 270 271 <NEGATION> <TARGET> <CLIENT/FRAME> [<INDEX>] : <FORMAT> <TYPE> 272 273With equals operator it looks like: 274 275 <NEGATION> <TARGET> <CLIENT/FRAME> [<INDEX>] : <FORMAT> <TYPE> <NEGATION> <OP QUALIFIER> <MATCH TYPE> = <PATTERN> 276 277With greater-than/less-than operators it looks like: 278 279 <NEGATION> <TARGET> <CLIENT/FRAME> [<INDEX>] : <FORMAT> <TYPE> <NEGATION> <OPERATOR> <PATTERN> 280 281'NEGATION' (optional) is one or more exclamation marks; 282 283'TARGET' is either a predefined target name, or the name of a window property to match. Supported predefined targets are `id`, `x`, `y`, `x2` (x + widthb), `y2`, `width`, `height`, `widthb` (width + 2 * `border_width`), `heightb`, `override_redirect`, `argb` (whether the window has an ARGB visual), `focused`, `wmwin` (whether the window looks like a WM window, i.e. has no child window with `WM_STATE` and is not override-redirected), `bounding_shaped`, `rounded_corners` (requires *--detect-rounded-corners*), `client` (ID of client window), `window_type` (window type in string), `leader` (ID of window leader), `name`, `class_g` (= `WM_CLASS[1]`), `class_i` (= `WM_CLASS[0]`), and `role`. 284 285'CLIENT/FRAME' is a single `@` if the window attribute should be be looked up on client window, nothing if on frame window; 286 287'INDEX' (optional) is the index number of the property to look up. For example, `[2]` means look at the third value in the property. Do not specify it for predefined targets. 288 289'FORMAT' (optional) specifies the format of the property, 8, 16, or 32. On absence we use format X reports. Do not specify it for predefined or string targets. 290 291'TYPE' is a single character representing the type of the property to match for: `c` for 'CARDINAL', `a` for 'ATOM', `w` for 'WINDOW', `d` for 'DRAWABLE', `s` for 'STRING' (and any other string types, such as 'UTF8_STRING'). Do not specify it for predefined targets. 292 293'OP QUALIFIER' (optional), applicable only for equals operator, could be `?` (ignore-case). 294 295'MATCH TYPE' (optional), applicable only for equals operator, could be nothing (exact match), `*` (match anywhere), `^` (match from start), `%` (wildcard), or `~` (PCRE regular expression). 296 297'OPERATOR' is one of `=` (equals), `<`, `>`, `<=`, `=>`, or nothing (exists). Exists operator checks whether a property exists on a window (but for predefined targets, exists means != 0 then). 298 299'PATTERN' is either an integer or a string enclosed by single or double quotes. Python-3-style escape sequences and raw string are supported in the string format. 300 301Supported logical operators are `&&` (and) and `||` (or). `&&` has higher precedence than `||`, left-to-right associativity. Use parentheses to change precedence. 302 303Examples: 304 305 # If the window is focused 306 focused 307 focused = 1 308 # If the window is not override-redirected 309 !override_redirect 310 override_redirect = false 311 override_redirect != true 312 override_redirect != 1 313 # If the window is a menu 314 window_type *= "menu" 315 _NET_WM_WINDOW_TYPE@:a *= "MENU" 316 # If the window name contains "Firefox", ignore case 317 name *?= "Firefox" 318 _NET_WM_NAME@:s *?= "Firefox" 319 # If the window name ends with "Firefox" 320 name %= "*Firefox" 321 name ~= "Firefox$" 322 # If the window has a property _COMPTON_SHADOW with value 0, type CARDINAL, 323 # format 32, value 0, on its frame window 324 _COMPTON_SHADOW:32c = 0 325 # If the third value of _NET_FRAME_EXTENTS is less than 20, or there's no 326 # _NET_FRAME_EXTENTS property on client window 327 _NET_FRAME_EXTENTS@[2]:32c < 20 || !_NET_FRAME_EXTENTS@:32c 328 # The pattern here will be parsed as "dd4" 329 name = "\x64\x64\o64" 330 # The pattern here will be parsed as "\x64\x64\x64" 331 name = r"\x64\x64\o64" 332 333 334LEGACY FORMAT OF CONDITIONS 335--------------------------- 336 337This is the old condition format we once used. Support of this format might be removed in the future. 338 339 condition = TARGET:TYPE[FLAGS]:PATTERN 340 341'TARGET' is one of "n" (window name), "i" (window class instance), "g" (window general class), and "r" (window role). 342 343'TYPE' is one of "e" (exact match), "a" (match anywhere), "s" (match from start), "w" (wildcard), and "p" (PCRE regular expressions, if compiled with the support). 344 345'FLAGS' could be a series of flags. Currently the only defined flag is "i" (ignore case). 346 347'PATTERN' is the actual pattern string. 348 349CONFIGURATION FILES 350------------------- 351picom could read from a configuration file if libconfig support is compiled in. If *--config* is not used, picom will seek for a configuration file in `$XDG_CONFIG_HOME/picom.conf` (`~/.config/picom.conf`, usually), then `$XDG_CONFIG_HOME/picom/picom.conf`, then `$XDG_CONFIG_DIRS/picom.conf` (often `/etc/xdg/picom.conf`), then `$XDG_CONFIG_DIRS/picom/picom.conf`. 352 353picom uses general libconfig configuration file format. A sample configuration file is available as `picom.sample.conf` in the source tree. Most of commandline switches can be used as options in configuration file as well. For example, *--vsync* option documented above can be set in the configuration file using `vsync = `. Command line options will always overwrite the settings in the configuration file. 354 355Window-type-specific settings are exposed only in configuration file and has the following format: 356 357------------ 358wintypes: 359{ 360 WINDOW_TYPE = { fade = BOOL; shadow = BOOL; opacity = FLOAT; focus = BOOL; full-shadow = BOOL; redir-ignore = BOOL; }; 361}; 362------------ 363 364'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". 365 366Following per window-type options are available: :: 367 368 fade, shadow::: 369 Controls window-type-specific shadow and fade settings. 370 371 opacity::: 372 Controls default opacity of the window type. 373 374 focus::: 375 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.) 376 377 full-shadow::: 378 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. 379 380 redir-ignore::: 381 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`. 382 383BLUR 384---- 385You can configure how the window background is blurred using a 'blur' section in your configuration file. Here is an example: 386 387-------- 388blur: 389{ 390 method = "gaussian"; 391 size = 10; 392 deviation = 5.0; 393}; 394-------- 395 396Available options of the 'blur' section are: :: 397 398 *method*::: 399 A string. Controls the blur method. Corresponds to the *--blur-method* command line option. Available choices are: 400 'none' to disable blurring; 'gaussian' for gaussian blur; 'box' for box blur; 'kernel' for convolution blur with a custom kernel. 401 Note: 'gaussian' and 'box' blur methods are only supported by the experimental backends. 402 (default: none) 403 404 *size*::: 405 An integer. The size of the blur kernel, required by 'gaussian' and 'box' blur methods. For the 'kernel' method, the size is included in the kernel. Corresponds to the *--blur-size* command line option (default: 3). 406 407 *deviation*::: 408 A floating point number. The standard deviation for the 'gaussian' blur method. Corresponds to the *--blur-deviation* command line option (default: 0.84089642). 409 410 *kernel*::: 411 A string. The kernel to use for the 'kernel' blur method, specified in the same format as the *--blur-kerns* option. Corresponds to the *--blur-kerns* command line option. 412 413SIGNALS 414------- 415 416* picom reinitializes itself upon receiving `SIGUSR1`. 417 418D-BUS API 419--------- 420 421It's possible to control picom via D-Bus messages, by running picom with *--dbus* and send messages to `com.github.chjj.compton.<DISPLAY>`. `<DISPLAY>` is the display used by picom, with all non-alphanumeric characters transformed to underscores. For `DISPLAY=:0.0` you should use `com.github.chjj.compton._0_0`, for example. 422 423The D-Bus methods and signals are not yet stable, thus undocumented right now. 424 425EXAMPLES 426-------- 427 428* Disable configuration file parsing: 429+ 430------------ 431$ picom --config /dev/null 432------------ 433 434* Run picom with client-side shadow and fading, disable shadow on dock windows and drag-and-drop windows: 435+ 436------------ 437$ picom -cCGf 438------------ 439 440* Same thing as above, plus making inactive windows 80% transparent, making frame 80% transparent, don't fade on window open/close, enable software optimization, and fork to background: 441+ 442------------ 443$ picom -bcCGf -i 0.8 -e 0.8 --no-fading-openclose --sw-opti 444------------ 445 446* Draw white shadows: 447+ 448------------ 449$ picom -c --shadow-red 1 --shadow-green 1 --shadow-blue 1 450------------ 451 452* Avoid drawing shadows on wbar window: 453+ 454------------ 455$ picom -c --shadow-exclude 'class_g = "wbar"' 456------------ 457 458* Enable VSync with GLX backend: 459+ 460------------ 461$ picom --backend glx --vsync 462------------ 463 464BUGS 465---- 466Please submit bug reports to <https://github.com/yshui/picom>. 467 468Out dated information in this man page is considered a bug. 469 470RESOURCES 471--------- 472Homepage: <https://github.com/yshui/picom> 473 474SEE ALSO 475-------- 476*xcompmgr*(1), link:picom-trans.html[*picom-trans*(1)] 477