- Add multipass blur support. Note GLX Framebuffer support is required. My benchmark shows multipass blur brings 5% performance boost for X Render backend (3x3box). On GLX backend it brings 10% performance boost for 5x5box but negatively affects performance for 3x3box. Thanks to jrfonseca for advice. (#107) - GLX backend: Cache blur texture for each window, for a 12% performance boost. - Add D-Bus fading control. Thanks to yulan6248 for testing. (#112) - Fix FAQ link in README.md. Thanks to lorenzos for report. (#111) - Correctly deinitialize VSync on on-the-fly VSync method switch. - X Render backend: Normalize blur kernel. - Code clean-up. - Known issue: Linear corruption on border of a window may appear with X Render multi-pass blur. Possible to fix but probably not worthwhile.
4.4 KiB
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)
- 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)
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.