1
0
Fork 0
mirror of https://github.com/yshui/picom.git synced 2024-11-25 14:06:08 -05:00

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
commit 9b61999cae
6 changed files with 288 additions and 90 deletions

3
.gitignore vendored
View file

@ -23,7 +23,8 @@ release/
_CPack_Packages/ _CPack_Packages/
CMakeCache.txt CMakeCache.txt
CMakeFiles/ CMakeFiles/
*.cmake cmake_install.cmake
CPackSourceConfig.cmake
install_manifest.txt install_manifest.txt

View file

@ -1,10 +1,14 @@
compton - a compositor for X11 compton - a compositor for X11
Contributors
Based on xcompmgr, originally written by Keith Packard, with modifications Based on xcompmgr, originally written by Keith Packard, with modifications
from several contributors (according to the xcompmgr man page): Matthew Allum, from several contributors (according to the xcompmgr man page): Matthew Allum,
Eric Anholt, Dan Doel, Thomas Luebking, Matthew Hawn, Ely Levy, Phil Blundell, Eric Anholt, Dan Doel, Thomas Luebking, Matthew Hawn, Ely Levy, Phil Blundell,
and Carl Worth. Menu transparency was implemented by Dana Jansens. and Carl Worth. Menu transparency was implemented by Dana Jansens.
Numerous contributions to compton from Richard Grenville.
xcompmgr xcompmgr
Copyright © 2003 Keith Packard Copyright © 2003 Keith Packard

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 * shadows are now enabled for argb windows, e.g. terminals with transparency
* removed serverside shadows (and simple compositing) to clean the code, * removed serverside shadows (and simple compositing) to clean the code,
the only option that remains is clientside shadows the only option that remains is clientside shadows
* configuration files (specified with `--config`)
The above features give compton a feature set similar to the xfce compositor. * colored shadows (with `--shadow-[red/green/blue] value`)
* a new fade system
Compton has only been tested with openbox so far, but frame transparency * vsync (still under development)
should work with any window manager that properly sets `_NET_FRAME_EXTENTS`. * several more options
## Fixes from the original xcompmgr: ## Fixes from the original xcompmgr:
* fixed a segfault when opening certain window types * fixed a segfault when opening certain window types
* fixed a memory leak caused by not freeing up shadows (from the freedesktop * fixed a memory leak caused by not freeing up shadows (from the freedesktop
repo) repo)
* fixed the conflict with chromium and similar windows
* [many more](https://github.com/chjj/compton/issues)
## Building ## Building
The same dependencies as xcompmgr.
### Dependencies: ### Dependencies:
__B__ for build-time __B__ for build-time
@ -63,67 +63,147 @@ $ make
$ make install $ make install
``` ```
## Usage ## Example Usage
``` bash ``` bash
$ compton -cC -i 0.6 -e 0.6 $ compton -cC -i 0.6 -e 0.6 -f
$ compton -cC -i 0.6 -e 0.6 -fF $ compton --config ~/compton.conf
$ compton -cC -fF -I 0.065 -O 0.065 -D 6 -m 0.8 -i 0.6 -e 0.6
``` ```
### Options ### Options and Configuration
compton [-d display] [-r radius] [-o opacity] ```
[-l left-offset] [-t top-offset] compton [-d display] [-r radius] [-o opacity]
[-i opacity] [-e opacity] [-cCfFSdG] [-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__ * `-d` __display__:
Specifies the display to manage. Which display should be managed.
* `-r` __radius__ * `-r` __radius__:
Specifies the blur radius for client-side shadows. The blur radius for shadows. (default 12)
* `-o` __opacity__ * `-o` __opacity__:
Specifies the opacity for client-side shadows. The translucency for shadows. (default .75)
* `-l` __left-offset__ * `-l` __left-offset__:
Specifies the left offset for client-side shadows. The left offset for shadows. (default -15)
* `-t` __top-offset__ * `-t` __top-offset__:
Specifies the top offset for client-side shadows. The top offset for shadows. (default -15)
* `-I` __fade-in-step__ * `-I` __fade-in-step__:
Specifies the opacity change between steps while fading in. Opacity change between steps while fading in. (default 0.028)
* `-O` __fade-out-step__ * `-O` __fade-out-step__:
Specifies the opacity change between steps while fading out. Opacity change between steps while fading out. (default 0.03)
* `-D` __fade-delta__ * `-D` __fade-delta-time__:
Specifies the time (in milliseconds) between steps in a fade. The time between steps in a fade in milliseconds. (default 10)
* `-c` * `-m` __opacity__:
Enable client-side shadows on windows. The opacity for menus. (default 1.0)
* `-f` * `-c`:
When -c is specified, enables a smooth fade effect for transient windows like Enabled client-side shadows on windows.
menus, and for all windows on hide and restore events. * `-C`:
* `-C` Avoid drawing shadows on dock/panel windows.
When -c is specified, attempts to avoid painting shadows on panels and docks. * `-z`:
* `-F` Zero the part of the shadow's mask behind the window (experimental).
When -f is specified, also enables the fade effect when windows change their * `-f`:
opacity, as with transset(1). Fade windows in/out when opening/closing and when opacity
* `-i` __opacity__ changes, unless --no-fading-openclose is used.
Specifies inactive window transparency. (0.1 - 1.0) * `-F`:
* `-e` __opacity__ Equals -f. Deprecated.
Specifies window frame transparency. (0.1 - 1.0) * `-i` __opacity__:
* `-G` Opacity of inactive windows. (0.1 - 1.0)
Avoid painting shadows on DND windows. * `-e` __opacity__:
* `-b` __daemonize__ Opacity of window titlebars and borders. (0.1 - 1.0)
Attempt to daemonize process. * `-G`:
* `-S` Don't draw shadows on DND windows
Enables synchronous operation. Useful for debugging. * `-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 ## License
xcompmgr has gotten around. As far as I can tell, the lineage for this Although compton has kind of taken on a life of its own, it was originally
particular tree is something like: 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) * Keith Packard (original author)
* Matthew Hawn * Matthew Hawn
* ... * ...
* Dana Jansens * Dana Jansens
* Myself * chjj and richardgv
Not counting the tens of people who forked it in between. Not counting the tens of people who forked it in between.

View file

@ -1,16 +1,20 @@
.ds q \N'34' .ds q \N'34'
.TH compton\-trans 1 .TH compton\-trans 1
.SH NAME .SH NAME
compton\-trans \- an opacity setter tool compton\-trans \- an opacity setter tool
.SH SYNOPSIS .SH SYNOPSIS
.nf .nf
.B compton-trans [-wncs] [window] -o [opacity] .B compton-trans [-wncs] [window] -o [opacity]
.fi .fi
.SH DESCRIPTION .SH DESCRIPTION
.B compton-trans .B compton-trans
is a bash script that sets _NET_WM_WINDOW_OPACITY only using standard is a bash script that sets _NET_WM_WINDOW_OPACITY only using standard
command-line utilities for X11, including xprop(1) and xwininfo(1). command-line utilities for X11, including xprop(1) and xwininfo(1).
It is similar to other utilities like transset(1) or transset-df(1). It is similar to other utilities like transset(1) or transset-df(1).
.SH OPTIONS .SH OPTIONS
.TP .TP
.BI \-w\ window\-id .BI \-w\ window\-id
@ -31,6 +35,7 @@ Specify the new opacity value for the window. This value
can be anywhere from 1-100. If it is prefixed with a plus can be anywhere from 1-100. If it is prefixed with a plus
or minus (+/-), this will increment or decrement from the or minus (+/-), this will increment or decrement from the
target window's current opacity instead. target window's current opacity instead.
.SH EXAMPLES .SH EXAMPLES
.TP .TP
Set window id to opacity of 75%. Set window id to opacity of 75%.
@ -47,7 +52,14 @@ compton-trans -s -o 75
.TP .TP
Increment current window 5% opacity. Increment current window 5% opacity.
compton-trans -c -o +5 compton-trans -c -o +5
.SH BUGS .SH BUGS
Please report any you find to https://github.com/chjj/compton. Please report any you find to https://github.com/chjj/compton.
.SH AUTHORS .SH AUTHORS
Christopher Jeffrey (https://github.com/chjj) Christopher Jeffrey (https://github.com/chjj)
.SH SEE ALSO
.BR compton(1),
.BR xprop(1),
.BR xwininfo(1)

View file

@ -1,76 +1,177 @@
.ds q \N'34' .ds q \N'34'
.TH compton 1 .TH compton 1
.SH NAME .SH NAME
compton \- a compositor for X11 compton \- a compositor for X11
.SH SYNOPSIS .SH SYNOPSIS
.nf .B compton
.B compton [\-d display] [\-r radius] [\-o opacity] [\-l left-offset] [\-t top-offset] [\-i opacity] [\-e opacity] [\-cCfFSdG] [\-d display] [\-r radius] [\-o opacity] [\-l left\-offset]
.fi [\-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]
.SH DESCRIPTION .SH DESCRIPTION
.B compton .B compton
is a compositor based on Dana Jansens' version of xcompmgr (which itself was is a compositor based on Dana Jansens' version of xcompmgr (which itself was
written by Keith Packard). It includes many improvements over the original written by Keith Packard). It includes many improvements over the original
xcompmgr, including window frame opacity, inactive window transparency, xcompmgr, including window frame opacity, inactive window transparency,
and shadows on argb windows. and shadows on argb windows.
.SH EXAMPLE
$ compton -cC -i 0.6 -e 0.6 -f
$ compton --config ~/compton.conf
.SH OPTIONS .SH OPTIONS
.TP .TP
.BI \-d\ display .BI \-d\ display
Specifies the display to manage. Which display should be managed.
.TP .TP
.BI \-r\ radius .BI \-r\ radius
Specifies the blur radius for client-side shadows. The blur radius for shadows. (default 12)
.TP .TP
.BI \-o\ opacity .BI \-o\ opacity
Specifies the opacity for client-side shadows. The translucency for shadows. (default .75)
.TP .TP
.BI \-l\ left-offset .BI \-l\ left\-offset
Specifies the left offset for client-side shadows. The left offset for shadows. (default -15)
.TP .TP
.BI \-t\ top-offset .BI \-t\ top\-offset
Specifies the top offset for client-side shadows. The top offset for shadows. (default -15)
.TP .TP
.BI \-I\ fade-in-step .BI \-I\ fade\-in\-step
Specifies the opacity change between steps while fading in. Opacity change between steps while fading in. (default 0.028)
.TP .TP
.BI \-O\ fade-out-step .BI \-O\ fade\-out\-step
Specifies the opacity change between steps while fading out. Opacity change between steps while fading out. (default 0.03)
.TP .TP
.BI \-D\ fade-delta .BI \-D\ fade\-delta\-time
Specifies the time (in milliseconds) between steps in a fade. The time between steps in a fade in milliseconds. (default 10)
.TP
.BI \-m\ opacity
The opacity for menus. (default 1.0)
.TP .TP
.BI \-c .BI \-c
Enable client-side shadows on windows. Enabled client-side shadows on windows.
.TP
.BI \-f
When \-c is specified, enables a smooth fade effect for transient windows like
menus, and for all windows on hide and restore events.
.TP .TP
.BI \-C .BI \-C
When \-c is specified, attempts to avoid painting shadows on panels and docks. Avoid drawing shadows on dock/panel windows.
.TP .TP
.BI \-G .BI \-z
When \-c is specified, attempts to avoid painting shadows on Zero the part of the shadow's mask behind the window (experimental).
drag-and-drop windows. .TP
.BI \-f
Fade windows in/out when opening/closing and when opacity
changes, unless --no-fading-openclose is used.
.TP .TP
.BI \-F .BI \-F
When \-f is specified, also enables the fade effect when windows change their Equals -f. Deprecated.
opacity, as with transset(1).
.TP
.BI \-b
Attempt to fork to background after registering compositor.
.TP .TP
.BI \-i\ opacity .BI \-i\ opacity
Specifies inactive window transparency. (0.1 - 1.0) Opacity of inactive windows. (0.1 - 1.0)
.TP .TP
.BI \-e\ opacity .BI \-e\ opacity
Specifies window frame transparency. (0.1 - 1.0) Opacity of window titlebars and borders. (0.1 - 1.0)
.TP
.BI \-G
Don't draw shadows on DND windows
.TP
.BI \-b
Daemonize/background process.
.TP .TP
.BI \-S .BI \-S
Enables synchronous operation. Useful for debugging. Enable synchronous operation (for debugging).
.TP
.BI \-\-config\ path
Look for configuration file at the path.
.TP
.BI \-\-shadow\-red\ value
Red color value of shadow (0.0 - 1.0, defaults to 0).
.TP
.BI \-\-shadow\-green\ value
Green color value of shadow (0.0 - 1.0, defaults to 0).
.TP
.BI \-\-shadow\-blue\ value
Blue color value of shadow (0.0 - 1.0, defaults to 0).
.TP
.BI \-\-inactive\-opacity\-override
Inactive opacity set by -i overrides value of _NET_WM_OPACITY.
.TP
.BI \-\-inactive\-dim\ value
Dim inactive windows. (0.0 - 1.0, defaults to 0)
.TP
.BI \-\-mark\-wmwin\-focused
Try to detect WM windows and mark them as active.
.TP
.BI \-\-shadow\-exclude\ condition
Exclude conditions for shadows.
.TP
.BI \--mark\-ovredir\-focused
Mark over-redirect windows as active.
.TP
.BI \-\-no\-fading\-openclose
Do not fade on window open/close.
.TP
.BI \-\-shadow\-ignore\-shaped
Do not paint shadows on shaped windows.
.TP
.BI \-\-detect\-rounded\-corners
Try to detect windows with rounded corners and don't consider
them shaped windows.
.TP
.BI 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.
.SH CONFIGURATION
(A more robust sample configuration file exists in the compton
repository.)
.B Example
.B ~/compton.conf:
# Shadows
shadow = true;
# Opacity
inactive-opacity = 0.8;
frame-opacity = 0.7;
# Fades
fading = true;
.B Run with:
$ compton --config ~/compton.conf
.SH BUGS .SH BUGS
Please report any you find to https://github.com/chjj/compton. Please report any you find to https://github.com/chjj/compton.
.SH AUTHORS .SH AUTHORS
xcompmgr, originally written by Keith Packard, with contributions from xcompmgr, originally written by Keith Packard, with contributions from
Matthew Allum, Eric Anholt, Dan Doel, Thomas Luebking, Matthew Hawn, Matthew Allum, Eric Anholt, Dan Doel, Thomas Luebking, Matthew Hawn,
Ely Levy, Phil Blundell, and Carl Worth. Ely Levy, Phil Blundell, and Carl Worth.
Compton by Christopher Jeffrey, based on Dana Jansens' original work. Compton by Christopher Jeffrey, based on Dana Jansens' original work,
with numerous contributions from Richard Grenville.
.SH SEE ALSO
.BR compton-trans(1)

2
src/compton.c Executable file → Normal file
View file

@ -3318,7 +3318,7 @@ usage(void) {
" Opacity of window titlebars and borders. (0.1 - 1.0)\n" " Opacity of window titlebars and borders. (0.1 - 1.0)\n"
"-G\n" "-G\n"
" Don't draw shadows on DND windows\n" " Don't draw shadows on DND windows\n"
"-b daemonize\n" "-b\n"
" Daemonize process.\n" " Daemonize process.\n"
"-S\n" "-S\n"
" Enable synchronous operation (for debugging).\n" " Enable synchronous operation (for debugging).\n"