Go to file
Richard Grenville 40178702ef Improvement: Change clear_shadow implementation
- Implement clear_shadow with painting region limitation instead of
  calculation in shadow image, to make it work correctly on windows with
  rounded corners, requested by funeral1988. This might cause more load
  on CPU, but could mean less load for GPU. The original implementation
  is kept but commented out.

- Code cleanup.
2012-10-28 17:02:07 +08:00
bin rename settrans to compton-trans, add manpage. 2012-06-23 17:39:49 -05:00
man rename settrans to compton-trans, add manpage. 2012-06-23 17:39:49 -05:00
src Improvement: Change clear_shadow implementation 2012-10-28 17:02:07 +08:00
.gitignore Improvement: Pregenerate alpha pictures 2012-10-13 19:11:25 +08:00
CMakeLists.txt Feature: #7: VSync 2012-10-08 10:36:28 +08:00
CPackConfig.cmake Misc: #49: Add CPack configuration 2012-10-02 22:01:22 +08:00
LICENSE readme, etc 2011-11-06 22:03:18 -06:00
Makefile Misc: Code clean-up 2012-10-10 21:17:48 +08:00
README.md Feature: #7: VSync 2012-10-08 10:36:28 +08:00
compton.sample.conf Improvement: Change clear_shadow implementation 2012-10-28 17:02:07 +08:00
desc.txt Misc: #49: Add CMake support 2012-10-03 13:34:54 +08:00

README.md

Compton

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:

  • inactive window transparency (specified with -i)
  • titlebar/frame transparency (specified with -e)
  • menu transparency (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

The above features give compton a feature set similar to the xfce compositor.

Compton has only been tested with openbox so far, but frame transparency should work with any window manager that properly sets _NET_FRAME_EXTENTS.

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)

Building

The same dependencies as xcompmgr.

Dependencies:

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)
  • pkg-config (B)
  • make (B)
  • xproto / x11proto (B)
  • bash (R)
  • xprop,xwininfo / x11-utils (R)
  • libpcre (B,R) (Will probably be made optional soon)
  • libconfig (B,R) (Will probably be made optional soon)
  • libdrm (B) (Will probably be made optional soon)
  • libGL (B,R) (Will probably be made optional soon)

To build, make sure you have the above dependencies:

$ make
$ make install

Usage

$ compton -cC -i 0.6 -e 0.6
$ compton -cC -i 0.6 -e 0.6 -fF
$ compton -cC -fF -I 0.065 -O 0.065 -D 6 -m 0.8 -i 0.6 -e 0.6

Options

compton [-d display] [-r radius] [-o opacity]
        [-l left-offset] [-t top-offset]
        [-i opacity] [-e opacity] [-cCfFSdG]
  • -d display Specifies the display to manage.
  • -r radius Specifies the blur radius for client-side shadows.
  • -o opacity Specifies the opacity for client-side shadows.
  • -l left-offset Specifies the left offset for client-side shadows.
  • -t top-offset Specifies the top offset for client-side shadows.
  • -I fade-in-step Specifies the opacity change between steps while fading in.
  • -O fade-out-step Specifies the opacity change between steps while fading out.
  • -D fade-delta Specifies the time (in milliseconds) between steps in a fade.
  • -c Enable client-side shadows on windows.
  • -f When -c is specified, enables a smooth fade effect for transient windows like menus, and for all windows on hide and restore events.
  • -C When -c is specified, attempts to avoid painting shadows on panels and docks.
  • -F When -f is specified, also enables the fade effect when windows change their opacity, as with transset(1).
  • -i opacity Specifies inactive window transparency. (0.1 - 1.0)
  • -e opacity Specifies window frame transparency. (0.1 - 1.0)
  • -G Avoid painting shadows on DND windows.
  • -b daemonize Attempt to daemonize process.
  • -S Enables synchronous operation. Useful for debugging.

License

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
  • Myself

Not counting the tens of people who forked it in between.

See LICENSE for more info.