Compton is a compositor for X, and a fork of xcompmgr-dana.
I was frustrated by the low amount of standalone lightweight compositors. Compton was forked from Dana Jansens' fork of xcompmgr and refactored. I fixed whatever bug I found, and added features I wanted. Things seem stable, but don't quote me on it. I will most likely be actively working on this until I get the features I want. This is also a learning experience for me. That is, I'm partially doing this out of a desire to learn Xlib.
Changes from xcompmgr:
- OpenGL backend (
--backend glx), in addition to the old X Render backend.
- Inactive window transparency (
-i) / dimming (
- Titlebar/frame transparency (
- Menu transparency (
-m, thanks to Dana).
- shadows are now enabled for argb windows, e.g. terminals with transparency
- removed serverside shadows (and simple compositing) to clean the code, the only option that remains is clientside shadows
- configuration files (see the man page for more details)
- colored shadows (
- a new fade system
- VSync support (not always working)
- Blur of background of transparent windows, window color inversion (bad in performance)
- Some more options...
Fixes from the original xcompmgr:
- fixed a segfault when opening certain window types
- fixed a memory leak caused by not freeing up shadows (from the freedesktop repo)
- fixed the conflict with chromium and similar windows
- many more
B for build-time
R for runtime
- libx11 (B,R)
- libxcomposite (B,R)
- libxdamage (B,R)
- libxfixes (B,R)
- libXext (B,R)
- libxrender (B,R)
- libXrandr (B,R)
- libXinerama (B,R) (Can be disabled with
NO_XINERAMAat compile time)
- pkg-config (B)
- make (B)
- xproto / x11proto (B)
- sh (R)
- xprop,xwininfo / x11-utils (R)
- libpcre (B,R) (Can be disabled with
NO_REGEX_PCREat compile time)
- libconfig (B,R) (Can be disabled with
NO_LIBCONFIGat compile time)
- libdrm (B) (Can be disabled with
NO_VSYNC_DRMat compile time)
- libGL (B,R) (Can be disabled with
NO_VSYNC_OPENGLat compile time)
- libdbus (B,R) (Can be disabled with
NO_DBUSat compile time)
- asciidoc (B) (and docbook-xml-dtd-4.5, libxml-utils, libxslt, xsltproc, xmlto, etc. if your distro doesn't pull them in)
How to build
To build, make sure you have the dependencies above:
# Make the main program $ make # Make the man pages $ make docs # Install $ make install
(Compton does include a
_CMakeLists.txt in the tree, but we haven't decided whether we should switch to CMake yet. The
Makefile is fully usable right now.)
Our FAQ covers some known issues.
VSync does not work too well. You may check the VSync Guide for how to get (possibly) better effects.
--unredir-if-possibleis enabled, when compton redirects/unredirects windows, the screen may flicker. Using
--paint-on-overlayminimizes the problem from my observation, yet I do not know if there's a cure.
compton may not track focus correctly in all situations. The focus tracking code is experimental.
--use-ewmh-active-winmight be helpful.
The performance of blur under X Render backend might be pretty bad. OpenGL backend could be faster.
--blur-backgroundyou may sometimes see weird lines around damaged area.
--resize-damage YOUR_BLUR_RADIUSmight be helpful in the case.
Please refer to the Asciidoc man pages (
man/compton-trans.1.asciidoc) for more details and examples.
Note a sample configuration file
compton.sample.conf is included in the repository.
Bug reports and feature requests should go to the "Issues" section above.
Our (semi?) official IRC channel is #compton on FreeNode.
Although compton has kind of taken on a life of its own, it was originally an xcompmgr fork. xcompmgr has gotten around. As far as I can tell, the lineage for this particular tree is something like:
- Keith Packard (original author)
- Matthew Hawn
- Dana Jansens
- chjj and richardgv
Not counting the tens of people who forked it in between.
Compton is distributed under MIT license, as far as I (richardgv) know. See LICENSE for more info.