2011-11-04 14:52:05 -04:00
|
|
|
# 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`)
|
2011-11-05 23:33:50 -04:00
|
|
|
* __titlebar/frame transparency__ (specified with `-e`)
|
2011-11-06 20:29:23 -05:00
|
|
|
* menu transparency (thanks to Dana)
|
2011-11-04 14:52:05 -04:00
|
|
|
* 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
|
|
|
|
|
2011-11-05 23:33:50 -04:00
|
|
|
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`.
|
|
|
|
|
2011-11-04 14:52:05 -04:00
|
|
|
## 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
|
|
|
|
|
2011-11-06 23:03:18 -05:00
|
|
|
The same dependencies as xcompmgr.
|
2011-11-04 14:52:05 -04:00
|
|
|
|
|
|
|
### Dependencies:
|
|
|
|
|
|
|
|
* libx11
|
|
|
|
* libxcomposite
|
|
|
|
* libxdamage
|
|
|
|
* libxfixes
|
|
|
|
* libxrender
|
2011-11-06 23:03:18 -05:00
|
|
|
* pkg-config
|
|
|
|
* make
|
2011-11-04 14:52:05 -04:00
|
|
|
|
|
|
|
To build, make sure you have the above dependencies:
|
|
|
|
|
|
|
|
``` bash
|
|
|
|
$ make
|
2011-11-06 19:20:45 -05:00
|
|
|
$ make install
|
2011-11-04 14:52:05 -04:00
|
|
|
```
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
``` bash
|
2011-11-16 01:04:38 -05:00
|
|
|
$ compton -cC -i 0.6 -e 0.6
|
2011-12-09 09:46:40 -05:00
|
|
|
$ compton -cC -i 0.6 -e 0.6 -fF
|
2011-11-16 01:12:42 -05:00
|
|
|
$ compton -cC -fF -I 0.065 -O 0.065 -D 6 -m 0.8 -i 0.6 -e 0.6
|
2011-11-04 14:52:05 -04:00
|
|
|
```
|
2011-11-06 23:03:18 -05:00
|
|
|
|
2011-11-16 01:04:38 -05:00
|
|
|
### Options
|
|
|
|
|
|
|
|
compton [-d display] [-r radius] [-o opacity]
|
|
|
|
[-l left-offset] [-t top-offset]
|
|
|
|
[-i opacity] [-e opacity] [-cCfFS]
|
|
|
|
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-d` display
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the display to manage.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-r` radius
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the blur radius for client-side shadows.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-o` opacity
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the opacity for client-side shadows.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-l` left-offset
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the left offset for client-side shadows.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-t` top-offset
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the top offset for client-side shadows.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-I` fade-in-step
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the opacity change between steps while fading in.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-O` fade-out-step
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the opacity change between steps while fading out.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-D` fade-delta
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies the time (in milliseconds) between steps in a fade.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-c`
|
2011-11-16 01:04:38 -05:00
|
|
|
Enable client-side shadows on windows.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-f`
|
2011-11-16 01:04:38 -05:00
|
|
|
When -c is specified, enables a smooth fade effect for transient windows like
|
|
|
|
menus, and for all windows on hide and restore events.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-C`
|
2011-11-16 01:04:38 -05:00
|
|
|
When -c is specified, attempts to avoid painting shadows on panels and docks.
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-F`
|
2011-11-16 01:04:38 -05:00
|
|
|
When -f is specified, also enables the fade effect when windows change their
|
|
|
|
opacity, as with transset(1).
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-i` opacity
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies inactive window transparency. (0.1 - 1.0)
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-e` opacity
|
2011-11-16 01:04:38 -05:00
|
|
|
Specifies window frame transparency. (0.1 - 1.0)
|
2011-11-16 01:12:42 -05:00
|
|
|
* `-S`
|
2011-11-16 01:04:38 -05:00
|
|
|
Enables synchronous operation. Useful for debugging.
|
|
|
|
|
2011-11-06 23:03:18 -05:00
|
|
|
## 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.
|