1PICOM(1) User Commands PICOM(1)
2
3
4
6 picom - a compositor for X11
7
9 picom [OPTIONS]
10
12 picom is a compositor based on Dana Jansens' version of xcompmgr (which
13 itself was written by Keith Packard). It includes some improvements
14 over the original xcompmgr, like window frame opacity and inactive
15 window transparency.
16
18 -h, --help
19 Get the usage text embedded in program code, which may be more
20 up-to-date than this man page.
21
22 -r, --shadow-radius=RADIUS
23 The blur radius for shadows, in pixels. (defaults to 12)
24
25 -o, --shadow-opacity=OPACITY
26 The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
27
28 -l, --shadow-offset-x=OFFSET
29 The left offset for shadows, in pixels. (defaults to -15)
30
31 -t, --shadow-offset-y=OFFSET
32 The top offset for shadows, in pixels. (defaults to -15)
33
34 -I, --fade-in-step=OPACITY_STEP
35 Opacity change between steps while fading in. (0.01 - 1.0, defaults
36 to 0.028)
37
38 -O, --fade-out-step=OPACITY_STEP
39 Opacity change between steps while fading out. (0.01 - 1.0,
40 defaults to 0.03)
41
42 -D, --fade-delta=MILLISECONDS
43 The time between steps in fade step, in milliseconds. (> 0,
44 defaults to 10)
45
46 -c, --shadow
47 Enabled client-side shadows on windows. Note desktop windows
48 (windows with _NET_WM_WINDOW_TYPE_DESKTOP) never get shadow, unless
49 explicitly requested using the wintypes option.
50
51 -f, --fading
52 Fade windows in/out when opening/closing and when opacity changes,
53 unless --no-fading-openclose is used.
54
55 -F
56 Equals to -f. Deprecated.
57
58 -i, --inactive-opacity=OPACITY
59 Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
60
61 -e, --frame-opacity=OPACITY
62 Opacity of window titlebars and borders. (0.1 - 1.0, disabled by
63 default)
64
65 -b, --daemon
66 Daemonize process. Fork to background after initialization. This
67 option can only be set from the command line, setting this in the
68 configuration file will have no effect.
69
70 --log-level
71 Set the log level. Possible values are "TRACE", "DEBUG", "INFO",
72 "WARN", "ERROR", in increasing level of importance. Case doesn’t
73 matter. If using the "TRACE" log level, it’s better to log into a
74 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
78 written to stderr. Otherwise, logs will to written to the given
79 file, though some of the early logs might still be written to the
80 stderr. When setting this option from the config file, it is
81 recommended to use an absolute path.
82
83 --legacy-backends
84 Use the old version of the backends. This option can not be set
85 from the config file.
86
87 --show-all-xerrors
88 Show all X errors (for debugging).
89
90 --config PATH
91 Look for configuration file at the path. See CONFIGURATION FILES
92 section below for where picom looks for a configuration file by
93 default. Use /dev/null to avoid loading configuration file.
94
95 --write-pid-path PATH
96 Write process ID to a file. it is recommended to use an absolute
97 path.
98
99 --shadow-color STRING
100 Color of shadow, as a hex string (#000000)
101
102 --shadow-red VALUE
103 Red color value of shadow (0.0 - 1.0, defaults to 0).
104
105 --shadow-green VALUE
106 Green color value of shadow (0.0 - 1.0, defaults to 0).
107
108 --shadow-blue VALUE
109 Blue color value of shadow (0.0 - 1.0, defaults to 0).
110
111 --inactive-opacity-override
112 Let inactive opacity set by -i override the _NET_WM_WINDOW_OPACITY
113 values of windows.
114
115 --active-opacity OPACITY
116 Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
117
118 --inactive-dim VALUE
119 Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
120
121 --corner-radius VALUE
122 Sets the radius of rounded window corners. When > 0, the compositor
123 will round the corners of windows. Does not interact well with
124 --transparent-clipping. (defaults to 0).
125
126 --rounded-corners-exclude CONDITION
127 Exclude conditions for rounded corners.
128
129 --mark-wmwin-focused
130 Try to detect WM windows (a non-override-redirect window with no
131 child that has WM_STATE) and mark them as active.
132
133 --mark-ovredir-focused
134 Mark override-redirect windows that doesn’t have a child window
135 with WM_STATE focused.
136
137 --no-fading-openclose
138 Do not fade on window open/close.
139
140 --no-fading-destroyed-argb
141 Do not fade destroyed ARGB windows with WM frame. Workaround of
142 bugs in Openbox, Fluxbox, etc.
143
144 --shadow-ignore-shaped
145 Do not paint shadows on shaped windows. Note shaped windows here
146 means windows setting its shape through X Shape extension. Those
147 using ARGB background is beyond our control. Deprecated, use
148 --shadow-exclude 'bounding_shaped' or --shadow-exclude
149 'bounding_shaped && !rounded_corners' instead.
150
151 --detect-rounded-corners
152 Try to detect windows with rounded corners and don’t consider them
153 shaped windows. The accuracy is not very high, unfortunately.
154
155 --detect-client-opacity
156 Detect _NET_WM_WINDOW_OPACITY on client windows, useful for window
157 managers not passing _NET_WM_WINDOW_OPACITY of client windows to
158 frame windows.
159
160 --vsync, --no-vsync
161 Enable/disable VSync.
162
163 --use-ewmh-active-win
164 Use EWMH _NET_ACTIVE_WINDOW to determine currently focused window,
165 rather than listening to FocusIn/FocusOut event. Might have more
166 accuracy, provided that the WM supports it.
167
168 --unredir-if-possible
169 Unredirect all windows if a full-screen opaque window is detected,
170 to maximize performance for full-screen windows. Known to cause
171 flickering when redirecting/unredirecting windows.
172
173 --unredir-if-possible-delay MILLISECONDS
174 Delay before unredirecting the window, in milliseconds. Defaults to
175 0.
176
177 --unredir-if-possible-exclude CONDITION
178 Conditions of windows that shouldn’t be considered full-screen for
179 unredirecting screen.
180
181 --shadow-exclude CONDITION
182 Specify a list of conditions of windows that should have no shadow.
183
184 --clip-shadow-above CONDITION
185 Specify a list of conditions of windows that should have no shadow
186 painted over, such as a dock window.
187
188 --fade-exclude CONDITION
189 Specify a list of conditions of windows that should not be faded.
190
191 --focus-exclude CONDITION
192 Specify a list of conditions of windows that should always be
193 considered focused.
194
195 --inactive-dim-fixed
196 Use fixed inactive dim value, instead of adjusting according to
197 window opacity.
198
199 --detect-transient
200 Use WM_TRANSIENT_FOR to group windows, and consider windows in the
201 same group focused at the same time.
202
203 --detect-client-leader
204 Use WM_CLIENT_LEADER to group windows, and consider windows in the
205 same group focused at the same time. This usually means windows
206 from the same application will be considered focused or unfocused
207 at the same time.WM_TRANSIENT_FOR has higher priority if
208 --detect-transient is enabled, too.
209
210 --blur-method, --blur-size, --blur-deviation, --blur-strength
211 Parameters for background blurring, see the BLUR section for more
212 information.
213
214 --blur-background
215 Blur background of semi-transparent / ARGB windows. Bad in
216 performance, with driver-dependent behavior. The name of the switch
217 may change without prior notifications.
218
219 --blur-background-frame
220 Blur background of windows when the window frame is not opaque.
221 Implies --blur-background. Bad in performance, with
222 driver-dependent behavior. The name may change.
223
224 --blur-background-fixed
225 Use fixed blur strength rather than adjusting according to window
226 opacity.
227
228 --blur-kern MATRIX
229 Specify the blur convolution kernel, with the following format:
230
231 WIDTH,HEIGHT,ELE1,ELE2,ELE3,ELE4,ELE5...
232
233 In other words, the matrix is formatted as a list of comma
234 separated numbers. The first two numbers must be integers, which
235 specify the width and height of the matrix. They must be odd
236 numbers. Then, the following width * height - 1 numbers specifies
237 the numbers in the matrix, row by row, excluding the center
238 element.
239
240 The elements are finite floating point numbers. The decimal pointer
241 has to be . (a period), scientific notation is not supported.
242
243 The element in the center will either be 1.0 or varying based on
244 opacity, depending on whether you have --blur-background-fixed. Yet
245 the automatic adjustment of blur factor may not work well with a
246 custom blur kernel.
247
248 A 7x7 Gaussian blur kernel (sigma = 0.84089642) looks like:
249
250 --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'
251
252 May also be one of the predefined kernels: 3x3box (default),
253 5x5box, 7x7box, 3x3gaussian, 5x5gaussian, 7x7gaussian, 9x9gaussian,
254 11x11gaussian. All Gaussian kernels are generated with sigma =
255 0.84089642 . If you find yourself needing to generate custom blur
256 kernels, you might want to try the new blur configuration (See
257 BLUR).
258
259 --blur-background-exclude CONDITION
260 Exclude conditions for background blur.
261
262 --resize-damage INTEGER
263 Resize damaged region by a specific number of pixels. A positive
264 value enlarges it while a negative one shrinks it. If the value is
265 positive, those additional pixels will not be actually painted to
266 screen, only used in blur calculation, and such. (Due to technical
267 limitations, with --use-damage, those pixels will still be
268 incorrectly painted to screen.) Primarily used to fix the line
269 corruption issues of blur, in which case you should use the blur
270 radius value here (e.g. with a 3x3 kernel, you should use
271 --resize-damage 1, with a 5x5 one you use --resize-damage 2, and so
272 on). May or may not work with --glx-no-stencil. Shrinking doesn’t
273 function correctly.
274
275 --invert-color-include CONDITION
276 Specify a list of conditions of windows that should be painted with
277 inverted color. Resource-hogging, and is not well tested.
278
279 --opacity-rule OPACITY:'CONDITION'
280 Specify a list of opacity rules, in the format PERCENT:PATTERN,
281 like 50:name *= "Firefox". picom-trans is recommended over this.
282 Note we don’t make any guarantee about possible conflicts with
283 other programs that set _NET_WM_WINDOW_OPACITY on frame or client
284 windows.
285
286 --shadow-exclude-reg GEOMETRY
287 Specify a X geometry that describes the region in which shadow
288 should not be painted in, such as a dock window region. Use
289 --shadow-exclude-reg x10+0-0, for example, if the 10 pixels on the
290 bottom of the screen should not have shadows painted on.
291
292 --xinerama-shadow-crop
293 Crop shadow of a window fully on a particular Xinerama screen to
294 the screen.
295
296 --backend BACKEND
297 Specify the backend to use: xrender, glx, or xr_glx_hybrid.
298 xrender is the default one.
299
300 • xrender backend performs all rendering operations with X Render
301 extension. It is what xcompmgr uses, and is generally a safe
302 fallback when you encounter rendering artifacts or instability.
303
304 • glx (OpenGL) backend performs all rendering operations with
305 OpenGL. It is more friendly to some VSync methods, and has
306 significantly superior performance on color inversion
307 (--invert-color-include) or blur (--blur-background). It
308 requires proper OpenGL 2.0 support from your driver and
309 hardware. You may wish to look at the GLX performance
310 optimization options below. --xrender-sync-fence might be
311 needed on some systems to avoid delay in changes of screen
312 contents.
313
314 • xr_glx_hybrid backend renders the updated screen contents with
315 X Render and presents it on the screen with GLX. It attempts to
316 address the rendering issues some users encountered with GLX
317 backend and enables the better VSync of GLX backends.
318 --vsync-use-glfinish might fix some rendering issues with this
319 backend.
320
321 --glx-no-stencil
322 GLX backend: Avoid using stencil buffer, useful if you don’t have a
323 stencil buffer. Might cause incorrect opacity when rendering
324 transparent content (but never practically happened) and may not
325 work with --blur-background. My tests show a 15% performance boost.
326 Recommended.
327
328 --glx-no-rebind-pixmap
329 GLX backend: Avoid rebinding pixmap on window damage. Probably
330 could improve performance on rapid window content changes, but is
331 known to break things on some drivers (LLVMpipe, xf86-video-intel,
332 etc.). Recommended if it works.
333
334 --no-use-damage
335 Disable the use of damage information. This cause the whole screen
336 to be redrawn every time, instead of the part of the screen has
337 actually changed. Potentially degrades the performance, but might
338 fix some artifacts.
339
340 --xrender-sync-fence
341 Use X Sync fence to sync clients' draw calls, to make sure all draw
342 calls are finished before picom starts drawing. Needed on
343 nvidia-drivers with GLX backend for some users.
344
345 --glx-fshader-win SHADER
346 GLX backend: Use specified GLSL fragment shader for rendering
347 window contents. See compton-default-fshader-win.glsl and
348 compton-fake-transparency-fshader-win.glsl in the source tree for
349 examples. Only works with --legacy-backends enabled.
350
351 --force-win-blend
352 Force all windows to be painted with blending. Useful if you have a
353 --glx-fshader-win that could turn opaque pixels transparent.
354
355 --dbus
356 Enable remote control via D-Bus. See the D-BUS API section below
357 for more details.
358
359 --benchmark CYCLES
360 Benchmark mode. Repeatedly paint until reaching the specified
361 cycles.
362
363 --benchmark-wid WINDOW_ID
364 Specify window ID to repaint in benchmark mode. If omitted or is 0,
365 the whole screen is repainted.
366
367 --no-ewmh-fullscreen
368 Do not use EWMH to detect fullscreen windows. Reverts to checking
369 if a window is fullscreen based only on its size and coordinates.
370
371 --max-brightness
372 Dimming bright windows so their brightness doesn’t exceed this set
373 value. Brightness of a window is estimated by averaging all pixels
374 in the window, so this could comes with a performance hit. Setting
375 this to 1.0 disables this behaviour. Requires --use-damage to be
376 disabled. (default: 1.0)
377
378 --transparent-clipping
379 Make transparent windows clip other windows like non-transparent
380 windows do, instead of blending on top of them.
381
382 --transparent-clipping-exclude CONDITION
383 Specify a list of conditions of windows that should never have
384 transparent clipping applied. Useful for screenshot tools, where
385 you need to be able to see through transparent parts of the window.
386
387 --window-shader-fg SHADER
388 Specify GLSL fragment shader path for rendering window contents.
389 Does not work when --legacy-backends is enabled. Shader is searched
390 first relative to the directory the configuration file is in, then
391 in the usual places for a configuration file. See section SHADER
392 INTERFACE below for more details on the interface.
393
394 --window-shader-fg-rule SHADER:'CONDITION'
395 Specify GLSL fragment shader path for rendering window contents
396 using patterns. Similar to --opacity-rule, arguments should be in
397 the format of SHADER:CONDITION, e.g. "shader.frag:name = 'window'".
398 Leading and trailing whitespaces in SHADER will be trimmed. If
399 SHADER is "default", then the default shader will be used for the
400 matching windows. (This also unfortunately means you can’t use a
401 shader file named "default"). Does not work when --legacy-backends
402 is enabled.
403
405 Some options accept a condition string to match certain windows. A
406 condition string is formed by one or more conditions, joined by logical
407 operators.
408
409 A condition with "exists" operator looks like this:
410
411 <NEGATION> <TARGET> <CLIENT/FRAME> [<INDEX>] : <FORMAT> <TYPE>
412
413 With equals operator it looks like:
414
415 <NEGATION> <TARGET> <CLIENT/FRAME> [<INDEX>] : <FORMAT> <TYPE> <NEGATION> <OP QUALIFIER> <MATCH TYPE> = <PATTERN>
416
417 With greater-than/less-than operators it looks like:
418
419 <NEGATION> <TARGET> <CLIENT/FRAME> [<INDEX>] : <FORMAT> <TYPE> <NEGATION> <OPERATOR> <PATTERN>
420
421 NEGATION (optional) is one or more exclamation marks;
422
423 TARGET is either a predefined target name, or the name of a window
424 property to match. Supported predefined targets are id, x, y, x2 (x +
425 widthb), y2 (like x2), width, height, widthb (width + 2 *
426 border_width), heightb (like widthb), border_width, fullscreen,
427 override_redirect, argb (whether the window has an ARGB visual),
428 focused, wmwin (whether the window looks like a WM window, i.e. has no
429 child window with WM_STATE and is not override-redirected),
430 bounding_shaped, rounded_corners (requires --detect-rounded-corners),
431 client (ID of client window), window_type (window type in string),
432 leader (ID of window leader), name, class_g (= WM_CLASS[1]), class_i (=
433 WM_CLASS[0]), and role.
434
435 CLIENT/FRAME is a single @ if the window attribute should be be looked
436 up on client window, nothing if on frame window;
437
438 INDEX (optional) is the index number of the property to look up. For
439 example, [2] means look at the third value in the property. If not
440 specified, the first value (index [0]) is used implicitly. Use the
441 special value [*] to perform matching against all available property
442 values using logical OR. Do not specify it for predefined targets.
443
444 FORMAT (optional) specifies the format of the property, 8, 16, or 32.
445 On absence we use format X reports. Do not specify it for predefined or
446 string targets.
447
448 TYPE is a single character representing the type of the property to
449 match for: c for CARDINAL, a for ATOM, w for WINDOW, d for DRAWABLE, s
450 for STRING (and any other string types, such as UTF8_STRING). Do not
451 specify it for predefined targets.
452
453 OP QUALIFIER (optional), applicable only for equals operator, could be
454 ? (ignore-case).
455
456 MATCH TYPE (optional), applicable only for equals operator, could be
457 nothing (exact match), * (match anywhere), ^ (match from start), %
458 (wildcard), or ~ (PCRE regular expression).
459
460 OPERATOR is one of = (equals), <, >, <=, =>, or nothing (exists).
461 Exists operator checks whether a property exists on a window (but for
462 predefined targets, exists means != 0 then).
463
464 PATTERN is either an integer or a string enclosed by single or double
465 quotes. Python-3-style escape sequences are supported in the string
466 format.
467
468 Supported logical operators are && (and) and || (or). && has higher
469 precedence than ||, left-to-right associativity. Use parentheses to
470 change precedence.
471
472 Examples:
473
474 # If the window is focused
475 focused
476 focused = 1
477 # If the window is not override-redirected
478 !override_redirect
479 override_redirect = false
480 override_redirect != true
481 override_redirect != 1
482 # If the window is a menu
483 window_type *= "menu"
484 _NET_WM_WINDOW_TYPE@:a *= "MENU"
485 # If the window is marked hidden: _NET_WM_STATE contains _NET_WM_STATE_HIDDEN
486 _NET_WM_STATE@[*]:a = "_NET_WM_STATE_HIDDEN"
487 # If the window is marked sticky: _NET_WM_STATE contains an atom that contains
488 # "sticky", ignore case
489 _NET_WM_STATE@[*]:a *?= "sticky"
490 # If the window name contains "Firefox", ignore case
491 name *?= "Firefox"
492 _NET_WM_NAME@:s *?= "Firefox"
493 # If the window name ends with "Firefox"
494 name %= "*Firefox"
495 name ~= "Firefox$"
496 # If the window has a property _COMPTON_SHADOW with value 0, type CARDINAL,
497 # format 32, value 0, on its frame window
498 _COMPTON_SHADOW:32c = 0
499 # If the third value of _NET_FRAME_EXTENTS is less than 20, or there's no
500 # _NET_FRAME_EXTENTS property on client window
501 _NET_FRAME_EXTENTS@[2]:32c < 20 || !_NET_FRAME_EXTENTS@:32c
502 # The pattern here will be parsed as "dd4"
503 name = "\x64\x64\o64"
504
506 This is the old condition format we once used. Support of this format
507 might be removed in the future.
508
509 condition = TARGET:TYPE[FLAGS]:PATTERN
510
511 TARGET is one of "n" (window name), "i" (window class instance), "g"
512 (window general class), and "r" (window role).
513
514 TYPE is one of "e" (exact match), "a" (match anywhere), "s" (match from
515 start), "w" (wildcard), and "p" (PCRE regular expressions, if compiled
516 with the support).
517
518 FLAGS could be a series of flags. Currently the only defined flag is
519 "i" (ignore case).
520
521 PATTERN is the actual pattern string.
522
524 This secion describes the interface of a custom shader, how it is used
525 by picom, and what parameters are passed by picom to the shader. This
526 does not apply to the legacy backends.
527
528 A custom shader is a GLSL fragment shader program, which can be used to
529 override the default way of how a window is rendered. If a custom
530 shader is used, the default picom effects (e.g. dimming, color
531 inversion, etc.) will no longer be automatically applied. It would be
532 the custom shader’s responsibility to apply these effects.
533
534 The interface between picom and a custom shader is dependent on which
535 backend is being used. The xrender backend doesn’t support shader at
536 all. Here we descibe the interface provided by the glx backend.
537
538 The shader must define a function, vec4 window_shader(), which would be
539 the entry point of the shader. The returned vec4 will be used to set
540 gl_FragColor. A function, vec4 default_post_processing(vec4 c), is
541 provided for applying the default picom effects to input color c.
542
543 The following uniform/input variables are made available to the shader:
544
545 in vec2 texcoord; // texture coordinate of the fragment
546
547 uniform float opacity; // opacity of the window (0.0 - 1.0)
548 uniform float dim; // dimming factor of the window (0.0 - 1.0, higher means more dim)
549 uniform float corner_radius; // corner radius of the window (pixels)
550 uniform float border_width; // estimated border width of the window (pixels)
551 uniform bool invert_color; // whether to invert the color of the window
552 uniform sampler2D tex; // texture of the window
553 uniform sampler2D brightness; // estimated brightness of the window, 1x1 texture
554 uniform float max_brightness; // configured maximum brightness of the window (0.0 - 1.0)
555 uniform float time; // time in milliseconds, counting from an unspecified starting point
556
557 The default behavior of picom window rendering can be replicated by the
558 following shader:
559
560 #version 330
561 in vec2 texcoord; // texture coordinate of the fragment
562
563 uniform sampler2D tex; // texture of the window
564
565 // Default window post-processing:
566 // 1) invert color
567 // 2) opacity / transparency
568 // 3) max-brightness clamping
569 // 4) rounded corners
570 vec4 default_post_processing(vec4 c);
571
572 // Default window shader:
573 // 1) fetch the specified pixel
574 // 2) apply default post-processing
575 vec4 window_shader() {
576 vec4 c = texelFetch(tex, ivec2(texcoord), 0);
577 return default_post_processing(c);
578 }
579
580 The interface is expected to be mostly stable.
581
583 picom could read from a configuration file if libconfig support is
584 compiled in. If --config is not used, picom will seek for a
585 configuration file in $XDG_CONFIG_HOME/picom.conf
586 (~/.config/picom.conf, usually), then
587 $XDG_CONFIG_HOME/picom/picom.conf, then $XDG_CONFIG_DIRS/picom.conf
588 (often /etc/xdg/picom.conf), then $XDG_CONFIG_DIRS/picom/picom.conf.
589
590 picom uses general libconfig configuration file format. A sample
591 configuration file is available as picom.sample.conf in the source
592 tree. Most of commandline switches can be used as options in
593 configuration file as well. For example, --vsync option documented
594 above can be set in the configuration file using `vsync = `. Command
595 line options will always overwrite the settings in the configuration
596 file.
597
598 Window-type-specific settings are exposed only in configuration file
599 and has the following format:
600
601 wintypes:
602 {
603 WINDOW_TYPE = { fade = BOOL; shadow = BOOL; opacity = FLOAT; focus = BOOL; blur-background = BOOL; full-shadow = BOOL; clip-shadow-above = BOOL; redir-ignore = BOOL; };
604 };
605
606 WINDOW_TYPE is one of the 15 window types defined in EWMH standard:
607 "unknown", "desktop", "dock", "toolbar", "menu", "utility", "splash",
608 "dialog", "normal", "dropdown_menu", "popup_menu", "tooltip",
609 "notification", "combo", and "dnd".
610
611 Following per window-type options are available:
612
613 fade, shadow
614 Controls window-type-specific shadow and fade settings.
615
616 opacity
617 Controls default opacity of the window type.
618
619 focus
620 Controls whether the window of this type is to be always
621 considered focused. (By default, all window types except
622 "normal" and "dialog" has this on.)
623
624 blur-background
625 Controls whether the window of this type will have its
626 transparent background blurred.
627
628 full-shadow
629 Controls whether shadow is drawn under the parts of the window
630 that you normally won’t be able to see. Useful when the window
631 has parts of it transparent, and you want shadows in those
632 areas.
633
634 clip-shadow-above
635 Controls whether shadows that would have been drawn above the
636 window should be clipped. Useful for dock windows that should
637 have no shadow painted on top.
638
639 redir-ignore
640 Controls whether this type of windows should cause screen to
641 become redirected again after been unredirected. If you have
642 --unredir-if-possible set, and doesn’t want certain window to
643 cause unnecessary screen redirection, you can set this to true.
644
646 You can configure how the window background is blurred using a blur
647 section in your configuration file. Here is an example:
648
649 blur:
650 {
651 method = "gaussian";
652 size = 10;
653 deviation = 5.0;
654 };
655
656 Available options of the blur section are:
657
658 method
659 A string. Controls the blur method. Corresponds to the
660 --blur-method command line option. Available choices are: none
661 to disable blurring; gaussian for gaussian blur; box for box
662 blur; kernel for convolution blur with a custom kernel;
663 dual_kawase for dual-filter kawase blur. Note: gaussian, box
664 and dual_kawase blur methods are not supported by the legacy
665 backends. (default: none)
666
667 size
668 An integer. The size of the blur kernel, required by gaussian
669 and box blur methods. For the kernel method, the size is
670 included in the kernel. Corresponds to the --blur-size command
671 line option (default: 3).
672
673 deviation
674 A floating point number. The standard deviation for the
675 gaussian blur method. Corresponds to the --blur-deviation
676 command line option (default: 0.84089642).
677
678 strength
679 An integer in the range 0-20. The strength of the dual_kawase
680 blur method. Corresponds to the --blur-strength command line
681 option. If set to zero, the value requested by --blur-size is
682 approximated (default: 5).
683
684 kernel
685 A string. The kernel to use for the kernel blur method,
686 specified in the same format as the --blur-kerns option.
687 Corresponds to the --blur-kerns command line option.
688
690 • picom reinitializes itself upon receiving SIGUSR1.
691
693 It’s possible to control picom via D-Bus messages, by running picom
694 with --dbus and send messages to com.github.chjj.compton.<DISPLAY>.
695 <DISPLAY> is the display used by picom, with all non-alphanumeric
696 characters transformed to underscores. For DISPLAY=:0.0 you should use
697 com.github.chjj.compton._0_0, for example.
698
699 The D-Bus methods and signals are not yet stable, thus undocumented
700 right now.
701
703 • Disable configuration file parsing:
704
705 $ picom --config /dev/null
706
707 • Run picom with client-side shadow and fading:
708
709 $ picom -cf
710
711 • Same thing as above, plus making inactive windows 80% transparent,
712 making frame 80% transparent, don’t fade on window open/close, and
713 fork to background:
714
715 $ picom -bcf -i 0.8 -e 0.8 --no-fading-openclose
716
717 • Draw white shadows:
718
719 $ picom -c --shadow-red 1 --shadow-green 1 --shadow-blue 1
720
721 • Avoid drawing shadows on wbar window:
722
723 $ picom -c --shadow-exclude 'class_g = "wbar"'
724
725 • Enable VSync with GLX backend:
726
727 $ picom --backend glx --vsync
728
730 Please submit bug reports to https://github.com/yshui/picom.
731
732 Out dated information in this man page is considered a bug.
733
735 Homepage: https://github.com/yshui/picom
736
738 xcompmgr(1), picom-trans(1)
739
740
741
742picom v10 07/21/2023 PICOM(1)