Go to file
Richard Grenville ebfd4c9bd5 Misc: Adjust inverter.sh slightly
- inverter.sh: Fix the incorrect rejection of hexadecimal window IDs.

- inverter.sh: Use "invert_color" instead of "invert_color_force" to
  determine target window inversion status.
2014-01-08 21:42:27 +08:00
bin Misc: Small fix for regex in compton-trans 2013-05-11 08:13:06 +08:00
dbus-examples Misc: Adjust inverter.sh slightly 2014-01-08 21:42:27 +08:00
man Misc: --write-pid-path & small changes 2013-11-09 21:38:31 +08:00
src Fix typo: s/hybird/hybrid/ 2014-01-02 12:33:57 -06:00
.gitignore Bug fix: GLX: ARGB texture too dark & Jitter when resize & others 2013-03-18 13:29:14 +08:00
CPackConfig.cmake Misc: Update CMake files & docs 2013-09-06 23:18:44 +08:00
Doxyfile Feature #51: Re-initialize when SIGUSR1 is received 2012-11-19 11:44:58 +08:00
LICENSE update readme and man page. 2012-10-22 07:50:18 -05:00
Makefile Bug fix #153: Possible fix for a rare timing issue 2013-10-21 22:17:01 +08:00
README.md Misc: Add missing configuration file options and switches 2013-08-26 22:00:53 +08:00
_CMakeLists.txt Misc: Update CMake files & docs 2013-09-06 23:18:44 +08:00
compton.desktop Misc #134: Fix compton.desktop 2013-08-13 22:34:39 +08:00
compton.sample.conf Bug fix #149: --opacity-rule misbehaves on 32-bit systems & others 2013-10-01 23:20:22 +08:00
desc.txt Misc: #49: Add CMake support 2012-10-03 13:34:54 +08:00
make-release.sh Misc: Add make-release.sh 2013-09-16 22:36:51 +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:

  • OpenGL backend (--backend glx), in addition to the old X Render backend.
  • Inactive window transparency (-i) / dimming (--inactive-dim).
  • Titlebar/frame transparency (-e).
  • 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 (--shadow-[red/green/blue])
  • 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

Building

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)
  • libXinerama (B,R) (Can be disabled with NO_XINERAMA at 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_PCRE at compile time)
  • libconfig (B,R) (Can be disabled with NO_LIBCONFIG at compile time)
  • libdrm (B) (Can be disabled with NO_VSYNC_DRM at compile time)
  • libGL (B,R) (Can be disabled with NO_VSYNC_OPENGL at compile time)
  • libdbus (B,R) (Can be disabled with NO_DBUS at 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.)

Known issues

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

  • If --unredir-if-possible is enabled, when compton redirects/unredirects windows, the screen may flicker. Using --paint-on-overlay minimizes 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-win might be helpful.

  • The performance of blur under X Render backend might be pretty bad. OpenGL backend could be faster.

  • With --blur-background you may sometimes see weird lines around damaged area. --resize-damage YOUR_BLUR_RADIUS might be helpful in the case.

Usage

Please refer to the Asciidoc man pages (man/compton.1.asciidoc & man/compton-trans.1.asciidoc) for more details and examples.

Note a sample configuration file compton.sample.conf is included in the repository.

Support

  • Bug reports and feature requests should go to the "Issues" section above.

  • Our (semi?) official IRC channel is #compton on FreeNode.

  • Some information is available on the wiki, including FAQ, VSync Guide, and Performance Guide.

License

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.