- Home
- Packages
- Forums
- Wiki
- Bugs
- AUR
- Download

# Compton

From ArchWiki

Summary
Introduces chjj's fork of xcompmgr (fork of fork indeed).

Compton is a fork of xcompmgr-dana by chjj, where xcompmgr-dana is a fork of xcompmgr by Dana. It is therefore, like xcompmgr, a standalone composite manager and can be used as a companion to lightweight window managers which don't do composition on themselves.

This fork fixed many bugs, and is very usable by this time of writing. Features a faster GLX (OpenGL) backend (disabled by default), default inactive/active window opacity, window frame transparency, window background blur, window color inversion, painting rate throttling, VSync, condition-based fine-tune control, configuration file reading, and D-Bus control.

## Installation

Install the compton-git package, available in the AUR.

## Usage

To start manually, just run:

    $ compton

To use fancy shadows, you can run

    $ compton -c

Additionally, -C can be used to avoid shadows on panels and docks, and -G can be used to avoid shadows on drag-and-drop objects (you probably want this).

If you want it started automatically, put this in xprofile:

    compton -cGb

where -b means to daemonize after composite manager registered.

An example of a more customised command:

    compton -cCGfF -o 0.38 -O 200 -I 200 -t 0.02 -l 0.02 -r 3.2 -D2 -m 0.88

You can also put your configuration in a file `~/.config/compton.conf` or `~/.compton.conf`.

A sample configuration file.

    ~/.compton.conf

    # Shadow
    shadow = true;			# Enabled client-side shadows on windows.
    no-dock-shadow = true;		# Avoid drawing shadows on dock/panel windows.
    no-dnd-shadow = true;		# Don't draw shadows on DND windows.
    clear-shadow = true;		# Zero the part of the shadow's mask behind the
    				# window. Fix some weirdness with ARGB windows.
    shadow-radius = 7;		# The blur radius for shadows. (default 12)
    shadow-offset-x = -7;		# The left offset for shadows. (default -15)
    shadow-offset-y = -7;		# The top offset for shadows. (default -15)
    # shadow-opacity = 0.7;		# The translucency for shadows. (default .75)
    # shadow-red = 0.0;		# Red color value of shadow. (0.0 - 1.0, defaults to 0)
    # shadow-green = 0.0;		# Green color value of shadow. (0.0 - 1.0, defaults to 0)
    # shadow-blue = 0.0;		# Blue color value of shadow. (0.0 - 1.0, defaults to 0)
    shadow-exclude = [ "n:e:Notification" ];	# Exclude conditions for shadows.
    # shadow-exclude = "n:e:Notification";
    shadow-ignore-shaped = true;	# Avoid drawing shadow on all shaped windows
    				# (see also: --detect-rounded-corners)

    # Opacity
    menu-opacity = 0.9;			# The opacity for menus. (default 1.0)
    inactive-opacity = 0.9;			# Default opacity of inactive windows. (0.0 - 1.0)
    # active-opacity = 0.8;			# Default opacity for active windows. (0.0 - 1.0)
    # frame-opacity = 0.8;			# Opacity of window titlebars and borders. (0.1 - 1.0)
    # inactive-opacity-override = true;	# Let inactive opacity set by 'inactive-opacity' overrides
    					# value of _NET_WM_OPACITY. Bad choice.
    alpha-step = 0.06;			# XRender backend: Step size for alpha pictures. Increasing
    					# it may result in less X resource usage,
    					# Yet fading may look bad.
    # inactive-dim = 0.2;			# Dim inactive windows. (0.0 - 1.0)
    # inactive-dim-fixed = true;		# Do not let dimness adjust based on window opacity.
    # blur-background = true;		# Blur background of transparent windows.
    					# Bad performance with X Render backend.
    					# GLX backend is preferred.
    # blur-background-frame = true;		# Blur background of opaque windows with transparent
    					# frames as well.
    blur-background-fixed = false;		# Do not let blur radius adjust based on window opacity.
    blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
    					# Exclude conditions for background blur.

    # Fading
    fading = true;			# Fade windows during opacity changes.
    # fade-delta = 30;		# The time between steps in a fade in milliseconds. (default 10).
    fade-in-step = 0.03;		# Opacity change between steps while fading in. (default 0.028).
    fade-out-step = 0.03;		# Opacity change between steps while fading out. (default 0.03).
    # no-fading-openclose = true;	# Avoid fade windows in/out when opening/closing.
    fade-exclude = [ ];		# Exclude conditions for fading.

    # Other
    backend = "xrender"		# Backend to use: "xrender" or "glx". GLX backend is typically
    				# much faster but depends on a sane driver.
    mark-wmwin-focused = true;	# Try to detect WM windows and mark them as active.
    mark-ovredir-focused = true;	# Mark all non-WM but override-redirect windows active (e.g. menus).
    use-ewmh-active-win = false;	# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
    				# instead of using FocusIn/Out events. Usually more reliable but
    				# depends on a EWMH-compliant WM.
    detect-rounded-corners = true;	# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
    detect-client-opacity = true;	# Detect _NET_WM_OPACITY on client windows, useful for window
    				# managers not passing _NET_WM_OPACITY of client windows to frame
    				# windows.
    refresh-rate = 0;		# For --sw-opti: Specify refresh rate of the screen. 0 for auto.
    vsync = "none";			# "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
    				# See man page for more details.
    dbe = false;			# Enable DBE painting mode. Rarely needed.
    paint-on-overlay = false;	# Painting on X Composite overlay window. Recommended.
    sw-opti = false;		# Limit compton to repaint at most once every 1 / refresh_rate.
    				# Incompatible with certain VSync methods.
    unredir-if-possible = false;	# Unredirect all windows if a full-screen opaque window is
    				# detected, to maximize performance for full-screen windows.
    focus-exclude = [ ];		# A list of conditions of windows that should always be considered
    				# focused.
    detect-transient = true;	# Use WM_TRANSIENT_FOR to group windows, and consider windows in
    				# the same group focused at the same time.
    detect-client-leader = true;	# Use WM_CLIENT_LEADER to group windows.
    invert-color-include = [ ];	# Conditions for windows to be painted with inverted color.

    # GLX backend			# GLX backend fine-tune options. See man page for more info.
    # glx-no-stencil = true;	# Recommended.
    glx-copy-from-front = false;	# Useful with --glx-swap-method,
    # glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
    # glx-no-rebind-pixmap = true;	# Recommended if it works.
    glx-swap-method = "undefined";	# See man page.

    # Window type settings
    wintypes:
    {
      tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; };
      # fade: Fade the particular type of windows.
      # shadow: Give those windows shadow
      # opacity: Default opacity for the type of windows.
      # focus: Whether to always consider windows of this type focused.
    };

To run compton with config file:

    $ compton --config ~/.compton.conf

To automatically start compton put following in any of your Startup files:

    compton --config ~/.compton.conf -b

## Transparency

Besides what is provided in xcompmgr, compton introduces two new auto-transparency options:

          -i opacity
                 Specifies inactive window transparency. (0.1 - 1.0)
          -e opacity
                 Specifies window frame transparency. (0.1 - 1.0)

Try them out on your own.

### Problem with slock

(Note using --focus-exclude may be a cleaner solution.)

Note that inactive window transparency (-i option) will make all inactive window became transparent, and if you use slock it may not be a good result. Try this in config file instead:

    inactive-dim = 0.2;

This will work with slock better.

## Multihead

If you use a multihead configuration without Xinerama, which means you start a X server with more than one screen, then compton will start on only one screen by default. You can start on all screen by starting multiple compton on all screens with -d. For example, if you have 4 monitors then you can start compton by:

    seq 0 3 | xargs -l1 -I@ compton -b -d :0.@

## Conky without shadows

If you use conky, there may be shadows, you don't want around conky's windows. To get rid of it, add this line to your conky configuration file:

    own_window_class conky

then in your compton configuration file edit the following line

    shadow-exclude = "class_g = 'conky'";

Retrieved from "https://wiki.archlinux.org/index.php?title=Compton&oldid=268026"
Categories:

- X Server
- Eye candy

## Navigation menu