Merge branch 'master' into richardgv-dev

Merged the documentation changes. Program code unchanged.
This commit is contained in:
Richard Grenville
2012-10-29 09:53:38 +08:00
6 changed files with 288 additions and 90 deletions

188
README.md
View File

@ -17,22 +17,22 @@ partially doing this out of a desire to learn Xlib.
* 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`.
* configuration files (specified with `--config`)
* colored shadows (with `--shadow-[red/green/blue] value`)
* a new fade system
* vsync (still under development)
* several 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](https://github.com/chjj/compton/issues)
## Building
The same dependencies as xcompmgr.
### Dependencies:
__B__ for build-time
@ -63,67 +63,147 @@ $ make
$ make install
```
## Usage
## Example Usage
``` bash
$ 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
$ compton -cC -i 0.6 -e 0.6 -f
$ compton --config ~/compton.conf
```
### Options
### Options and Configuration
compton [-d display] [-r radius] [-o opacity]
[-l left-offset] [-t top-offset]
[-i opacity] [-e opacity] [-cCfFSdG]
```
compton [-d display] [-r radius] [-o opacity]
[-l left-offset] [-t top-offset]
[-i opacity] [-e opacity] [-cCfFSdG]
[--config path] [--shadow-red value]
[--shadow-green value] [--shadow-blue value]
[--inactive-opacity-override] [--inactive-dim value]
[--mark-wmwin-focused] [--shadow-exclude condition]
[--mark-ovredir-focused] [--no-fading-openclose]
[--shadow-ignore-shaped] [--detect-round-corners]
```
* `-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.
* `-d` __display__:
Which display should be managed.
* `-r` __radius__:
The blur radius for shadows. (default 12)
* `-o` __opacity__:
The translucency for shadows. (default .75)
* `-l` __left-offset__:
The left offset for shadows. (default -15)
* `-t` __top-offset__:
The top offset for shadows. (default -15)
* `-I` __fade-in-step__:
Opacity change between steps while fading in. (default 0.028)
* `-O` __fade-out-step__:
Opacity change between steps while fading out. (default 0.03)
* `-D` __fade-delta-time__:
The time between steps in a fade in milliseconds. (default 10)
* `-m` __opacity__:
The opacity for menus. (default 1.0)
* `-c`:
Enabled client-side shadows on windows.
* `-C`:
Avoid drawing shadows on dock/panel windows.
* `-z`:
Zero the part of the shadow's mask behind the window (experimental).
* `-f`:
Fade windows in/out when opening/closing and when opacity
changes, unless --no-fading-openclose is used.
* `-F`:
Equals -f. Deprecated.
* `-i` __opacity__:
Opacity of inactive windows. (0.1 - 1.0)
* `-e` __opacity__:
Opacity of window titlebars and borders. (0.1 - 1.0)
* `-G`:
Don't draw shadows on DND windows
* `-b`:
Daemonize/background process.
* `-S`:
Enable synchronous operation (for debugging).
* `--config` __path__:
Look for configuration file at the path.
* `--shadow-red` __value__:
Red color value of shadow (0.0 - 1.0, defaults to 0).
* `--shadow-green` __value__:
Green color value of shadow (0.0 - 1.0, defaults to 0).
* `--shadow-blue` __value__:
Blue color value of shadow (0.0 - 1.0, defaults to 0).
* `--inactive-opacity-override`:
Inactive opacity set by -i overrides value of _NET_WM_OPACITY.
* `--inactive-dim` __value__:
Dim inactive windows. (0.0 - 1.0, defaults to 0)
* `--mark-wmwin-focused`:
Try to detect WM windows and mark them as active.
* `--shadow-exclude` __condition__:
Exclude conditions for shadows.
* `--mark-ovredir-focused`:
Mark over-redirect windows as active.
* `--no-fading-openclose`:
Do not fade on window open/close.
* `--shadow-ignore-shaped`:
Do not paint shadows on shaped windows.
* `--detect-rounded-corners`:
Try to detect windows with rounded corners and don't consider
them shaped windows.
### Format of a condition:
`condition = <target>:<type>[<flags>]:<pattern>`
`<target>` is one of `"n"` (window name), `"i"` (window class
instance), and `"g"` (window general class)
`<type>` is one of `"e"` (exact match), `"a"` (match anywhere),
`"s"` (match from start), `"w"` (wildcard), and `"p"` (PCRE
regular expressions, if compiled with the support).
`<flags>` could be a series of flags. Currently the only defined
flag is `"i"` (ignore case).
`<pattern>` is the actual pattern string.
### Configuration
A more robust
[sample configuration file](https://raw.github.com/chjj/compton/master/compton.sample.conf)
is available in the repository.
#### Example
~/compton.conf:
```
# Shadows
shadow = true;
# Opacity
inactive-opacity = 0.8;
frame-opacity = 0.7;
# Fades
fading = true;
```
Run with:
``` bash
$ compton --config ~/compton.conf
```
## License
xcompmgr has gotten around. As far as I can tell, the lineage for this
particular tree is something like:
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
* Myself
* chjj and richardgv
Not counting the tens of people who forked it in between.