-h, --help
Get the usage text embedded in program code, which may be more up-to-date than this man page.
-dDISPLAY
Display to be managed.
-r, --shadow-radius=RADIUS
The blur radius for shadows, in pixels. (defaults to 12)
-o, --shadow-opacity=OPACITY
The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
-l, --shadow-offset-x=OFFSET
The left offset for shadows, in pixels. (defaults to -15)
-t, --shadow-offset-y=OFFSET
The top offset for shadows, in pixels. (defaults to -15)
-I, --fade-in-step=OPACITY_STEP
Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
-O, --fade-out-step=OPACITY_STEP
Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
-D, --fade-delta=MILLISECONDS
The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
-m, --menu-opacity=OPACITY
Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
-c, --shadow
Enabled client-side shadows on windows. Note desktop windows (windows with
_NET_WM_WINDOW_TYPE_DESKTOP) never get shadow.
-C, --no-dock-shadow
Avoid drawing shadows on dock/panel windows.
-z, --clear-shadow
Zero the part of the shadow’s mask behind the window. Note this may not work properly on ARGB windows
with fully transparent areas.
-f, --fading
Fade windows in/out when opening/closing and when opacity changes, unless --no-fading-openclose is
used.
-F
Equals to -f. Deprecated.
-i, --inactive-opacity=OPACITY
Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
-e, --frame-opacity=OPACITY
Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
-G, --no-dnd-shadow
Don’t draw shadows on drag-and-drop windows.
-b, --daemon
Daemonize process. Fork to background after initialization. Causes issues with certain
(badly-written) drivers.
-S
Enable synchronous X operation (for debugging).
--show-all-xerrors
Show all X errors (for debugging).
--configPATH
Look for configuration file at the path. See CONFIGURATIONFILES section below for where compton
looks for a configuration file by default. Use /dev/null to avoid loading configuration file.
--write-pid-pathPATH
Write process ID to a file.
--shadow-redVALUE
Red color value of shadow (0.0 - 1.0, defaults to 0).
--shadow-greenVALUE
Green color value of shadow (0.0 - 1.0, defaults to 0).
--shadow-blueVALUE
Blue color value of shadow (0.0 - 1.0, defaults to 0).
--inactive-opacity-override
Let inactive opacity set by -i overrides the windows' _NET_WM_OPACITY values.
--active-opacityOPACITY
Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
--inactive-dimVALUE
Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
--mark-wmwin-focused
Try to detect WM windows (a non-override-redirect window with no child that has WM_STATE) and mark
them as active.
--mark-ovredir-focused
Mark override-redirect windows that doesn’t have a child window with WM_STATE focused.
--no-fading-openclose
Do not fade on window open/close.
--no-fading-destroyed-argb
Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
--shadow-ignore-shaped
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.
--detect-rounded-corners
Try to detect windows with rounded corners and don’t consider them shaped windows. The accuracy is
not very high, unfortunately.
--detect-client-opacity
Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of
client windows to frame windows.
--refresh-rateREFRESH_RATE
Specify refresh rate of the screen. If not specified or 0, compton will try detecting this with X
RandR extension.
--vsyncVSYNC_METHOD
Set VSync method. VSync methods currently available:
• none: No VSync
• drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some (DRI-based) drivers.
• opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers.
• opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers.
• opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works
only with GLX backend. Known to be most effective on many drivers. Does not guarantee to control
paint timing.
• opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as
opengl-swc above, except the extension we use.
(Note some VSync methods may not be enabled at compile time.)
--vsync-aggressive
Attempt to send painting request before VBlank and do XFlush() during VBlank. Reported to work pretty
terribly. This switch may be lifted out at any moment.
--alpha-stepVALUE
X Render backend: Step for pregenerating alpha pictures. (0.01 - 1.0, defaults to 0.03)
--dbe
Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. Reported to
have no effect, though.
--paint-on-overlay
Painting on X Composite overlay window instead of on root window.
--sw-opti
Limit compton 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.
--use-ewmh-active-win
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.
--respect-prop-shadow
Respect _COMPTON_SHADOW. This a prototype-level feature, which you must not rely on.
--unredir-if-possible
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.
--paint-on-overlay may make the flickering less obvious.
--unredir-if-possible-delayMILLISECONDS
Delay before unredirecting the window, in milliseconds. Defaults to 0.
--unredir-if-possible-excludeCONDITION
Conditions of windows that shouldn’t be considered full-screen for unredirecting screen.
--shadow-excludeCONDITION
Specify a list of conditions of windows that should have no shadow.
--fade-excludeCONDITION
Specify a list of conditions of windows that should not be faded.
--focus-excludeCONDITION
Specify a list of conditions of windows that should always be considered focused.
--inactive-dim-fixed
Use fixed inactive dim value, instead of adjusting according to window opacity.
--detect-transient
Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same
time.
--detect-client-leader
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.
--blur-background
Blur background of semi-transparent / ARGB windows. Bad in performance, with driver-dependent
behavior. The name of the switch may change without prior notifications.
--blur-background-frame
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.
--blur-background-fixed
Use fixed blur strength rather than adjusting according to window opacity.
--blur-kernMATRIX
Specify the blur convolution kernel, with the following format:
WIDTH,HEIGHT,ELE1,ELE2,ELE3,ELE4,ELE5...
The element in the center must not be included, it will be forever 1.0 or changing 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.
A 7x7 Gaussian blur kernel (sigma = 0.84089642) looks like:
--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'
May 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 . You may use the accompanied compton-convgen.py to generate blur kernels.
--blur-background-excludeCONDITION
Exclude conditions for background blur.
--resize-damageINTEGER
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 --dbe or
--glx-swap-method, 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.
--invert-color-includeCONDITION
Specify a list of conditions of windows that should be painted with inverted color. Resource-hogging,
and is not well tested.
--opacity-ruleOPACITY:'CONDITION'
Specify a list of opacity rules, in the format PERCENT:PATTERN, like 50:name *= "Firefox".
compton-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.
--shadow-exclude-regGEOMETRY
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.
--xinerama-shadow-crop
Crop shadow of a window fully on a particular Xinerama screen to the screen.
--backendBACKEND
Specify the backend to use: xrender, glx, or xr_glx_hybrid. xrender is the default one.
• 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.
• 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 and --xrender-sync-fence might be needed on some systems to avoid delay in changes
of screen contents.
• 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.
--glx-no-stencil
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.
--glx-copy-from-front
GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. My tests with
nvidia-drivers show a 10% decrease in performance when the whole screen is modified, but a 20%
increase when only 1/4 is. My tests on nouveau show terrible slowdown. Useful with --glx-swap-method,
as well.
--glx-use-copysubbuffermesa
GLX backend: Use MESA_copy_sub_buffer to do partial screen update. My tests on nouveau shows a 200%
performance boost when only 1/4 of the screen is updated. May break VSync and is not available on
some drivers. Overrides --glx-copy-from-front.
--glx-no-rebind-pixmap
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.
--glx-swap-method undefined/exchange/copy/3/4/5/6/buffer-age
GLX backend: GLX buffer swap method we assume. Could be undefined (0), copy (1), exchange (2), 3-6,
or buffer-age (-1). undefined is the slowest and the safest, and the default value. copy is
fastest, but may fail on some drivers, 2-6 are gradually slower but safer (6 is still faster than 0).
Usually, double buffer means 2, triple buffer means 3. buffer-age means auto-detect using
GLX_EXT_buffer_age, supported by some drivers. Useless with --glx-use-copysubbuffermesa. Partially
breaks --resize-damage. Defaults to undefined.
--glx-use-gpushader4
GLX backend: Use GL_EXT_gpu_shader4 for some optimization on blur GLSL code. My tests on GTX 670 show
no noticeable effect.
--xrender-sync
Attempt to synchronize client applications' draw calls with XSync(), used on GLX backend to ensure
up-to-date window content is painted.
--xrender-sync-fence
Additionally use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend
for some users. May be disabled at compile time with NO_XSYNC=1.
--glx-fshader-winSHADER
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.
--force-win-blend
Force all windows to be painted with blending. Useful if you have a --glx-fshader-win that could turn
opaque pixels transparent.
--dbus
Enable remote control via D-Bus. See the D-BUSAPI section below for more details.
--benchmarkCYCLES
Benchmark mode. Repeatedly paint until reaching the specified cycles.
--benchmark-widWINDOW_ID
Specify window ID to repaint in benchmark mode. If omitted or is 0, the whole screen is repainted.