Compton
Compton is a lightweight, standalone composite manager, suitable for use with window managers that do not natively provide compositing functionality. Compton itself is a fork of xcompmgr-danaAUR, which in turn is a fork of xcompmgr. See the compton github page for further information.
Compton in particular is notable for fixing numerous bugs found in its predecessors, and as such, is popular due to its reliability and stability. Numerous additional improvements and configuration options have also been implemented, including 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 comptonAUR or its git version, compton-gitAUR.
Use
Compton may be manually enabled or disabled at any time during a session, or autostarted as a background (Daemon) process for sessions. There are also several optional arguments that may be used to tweak the compositing effects provided. These include:
-
-b
: Run as a background (Daemon) process for a session (e.g. when autostarting for a window manager such as Openbox) -
-c
: Enable shadow effects -
-C
: Disable shadow effects on panels and docks -
-G
: Disable shadow effects for application windows and drag-and-drop objects -
--config
: Use a specified configuration file
Many more options are availble, including to set timing, displays to be managed, and the opacity of menus, window borders, and inactive application menus. See the Compton Man Page for further information.
Autostarting
How compton would be autostarted as a Daemon process will depend on the desktop environment or window manager used. For example, for Openbox the ~/.config/openbox/autostart
file must be edited, while for i3 it would be the ~/.i3/config
file. Where necessary, compton may also be autostarted from xprofile or Xinitrc. Read the startup files article for further information.
Command only
To manually enable default compositing effects during a session, use the following command:
$ compton
Alternatively, to disable all shadowing effects during a session, the -C
and -G
arguments must be added:
$ compton -CG
To autostart compton as a background (Daemon) process for a session, the -b
argument must be used:
compton -b
To disable all shadowing effects from the Daemon process, the -C
and -G
arguments must again be added:
compton -CGb
Finally, this is an example where additional arguments that require values to be set have been used:
compton -cCGfF -o 0.38 -O 200 -I 200 -t 0 -l 0 -r 3 -D2 -m 0.88
Using a configuration file
To use a custom configuration file with compton during a session, use the following command:
compton --config <path/to/compton.conf>
To auto-start compton as a background (Daemon) process for a session, the -b
argument must again be used:
compton --config <path/to/compton.conf> -b
It is recommended to either create the configuration file in the hidden ~/.config
directory (~/.config/compton.conf
) or as a hidden file in the Home
directory (~/.compton.conf
). A sample config file can be found here: Compton Sample Config
Disable conky shadowing
To disable shadows around conky windows - where used - first amend the conky configuration file ~/.conkyrc
as follows:
own_window_class conky
Then amend the compton configuration file as follows:
shadow-exclude = "class_g = 'conky'";
Multihead
If a multihead configuration is used without xinerama - meaning that X server is started with more than one screen - then compton will start on only one screen by default. It can be started on all screens by using the -d
argument. For example, compton can be executed for 4 monitors with the following command:
seq 0 3 | xargs -l1 -I@ compton -b -d :0.@
Troubleshooting
The use of compositing effects may on occasion cause issues such as visual glitches when not configured correctly for use with other applications and programs.
Slock
Where inactive window transparency has been enabled (the -i
argument when running as a command), this may provide troublesome results when also using slock. The solution is to amend the transparency to 0.2
. For example, where running compton arguments as a command:
compton <any other arguments> -i 0.2
Otherwise, where using a configuration file:
inactive-dim = 0.2;
Dual shadow on some GTK3 applications
Since gtk3 version 3.12.1, some GTK+ 3 windows and dialogs render a double shadow when used with Compton. This is because both shadows from GTK+ 3 and Compton are applied concurrently. See GTK+#Client-side decorations.
To disable Compton shadows on all GTK +3 windows, add a new rule to compton.conf
:
shadow-exclude = [ "_GTK_FRAME_EXTENTS@:c" ]
or run compton
with the following arguments: --shadow-exclude 'argb && _NET_WM_OPAQUE_REGION@:c'
Unable to change the background color with xsetroot
Currently, compton is incompatible with xsetroot
's -solid
option, a workaround is to use hsetrootAUR to set the background color:
$ hsetroot -solid '#000000'
For a detailed explaination, please see https://github.com/chjj/compton/issues/162.
Screen artifacts/screenshot issues when using AMD's Catalyst driver
Try running compton with
--backend xrender
or adding
backend = "xrender";
to your compton.conf file.
For more info, please see https://github.com/chjj/compton/issues/208
High CPU use with nvidia drivers
When facing high CPU use with --backend glx
or tearing with --vsync
enabled, install nvidia-libgl as described in NVIDIA.