2019-10-25 06:06:15 -04:00
picom
2022-04-12 08:48:21 -04:00
=====
2011-11-04 14:52:05 -04:00
2022-04-12 08:48:21 -04:00
__picom__ is a compositor for X, and a [fork of Compton ](History.md ).
2018-12-21 16:23:45 -05:00
2022-04-12 08:48:21 -04:00
**This is a development branch, bugs to be expected**
2020-12-16 19:25:57 -05:00
2022-04-12 08:48:21 -04:00
You can leave your feedback or thoughts in the [discussion tab ](https://github.com/yshui/picom/discussions ).
2011-11-04 14:52:05 -04:00
2019-05-21 17:16:09 -04:00
## Change Log
2018-12-15 14:57:57 -05:00
2019-10-24 14:24:38 -04:00
See [Releases ](https://github.com/yshui/picom/releases )
2018-12-15 14:57:57 -05:00
2018-10-01 09:26:57 -04:00
## Build
### Dependencies
2019-08-18 17:39:18 -04:00
Assuming you already have all the usual building tools installed (e.g. gcc, python, meson, ninja, etc.), you still need:
2018-10-01 09:26:57 -04:00
* libx11
2018-12-16 11:36:15 -05:00
* libx11-xcb
2018-10-01 09:26:57 -04:00
* libXext
* xproto
* xcb
* xcb-damage
* xcb-xfixes
* xcb-shape
* xcb-renderutil
* xcb-render
* xcb-randr
* xcb-composite
* xcb-image
2018-11-03 18:15:38 -04:00
* xcb-present
2019-05-21 17:16:09 -04:00
* xcb-xinerama
2020-03-31 00:59:44 -04:00
* xcb-glx
2018-10-01 09:26:57 -04:00
* pixman
2018-10-14 19:47:24 -04:00
* libdbus (optional, disable with the `-Ddbus=false` meson configure flag)
* libconfig (optional, disable with the `-Dconfig_file=false` meson configure flag)
2022-08-23 00:48:21 -04:00
* libGL, libEGL (optional, disable with the `-Dopengl=false` meson configure flag)
2018-10-14 19:47:24 -04:00
* libpcre (optional, disable with the `-Dregex=false` meson configure flag)
2018-10-02 20:09:37 -04:00
* libev
2019-04-03 03:36:02 -04:00
* uthash
2018-10-01 09:26:57 -04:00
2021-01-04 16:52:43 -05:00
On Debian based distributions (e.g. Ubuntu), the needed packages are
2019-08-18 17:39:18 -04:00
```
2022-08-23 00:48:21 -04:00
libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl-dev libegl-dev libpcre2-dev libpcre3-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev meson
2019-08-18 17:39:18 -04:00
```
2021-01-04 16:52:43 -05:00
On Fedora, the needed packages are
```
2022-08-23 00:48:21 -04:00
dbus-devel gcc git libconfig-devel libdrm-devel libev-devel libX11-devel libX11-xcb libXext-devel libxcb-devel libGL-devel libEGL-devel meson pcre-devel pixman-devel uthash-devel xcb-util-image-devel xcb-util-renderutil-devel xorg-x11-proto-devel
2021-01-04 16:52:43 -05:00
```
2018-10-01 09:26:57 -04:00
To build the documents, you need `asciidoc`
2019-02-21 13:24:46 -05:00
### To build
2018-10-01 09:26:57 -04:00
```bash
2019-05-24 19:13:47 -04:00
$ git submodule update --init --recursive
2018-10-15 06:12:45 -04:00
$ meson --buildtype=release . build
2018-10-14 19:47:24 -04:00
$ ninja -C build
2018-10-01 09:26:57 -04:00
```
2019-04-14 08:32:33 -04:00
Built binary can be found in `build/src`
If you have libraries and/or headers installed at non-default location (e.g. under `/usr/local/` ), you might need to tell meson about them, since meson doesn't look for dependencies there by default.
You can do that by setting the `CPPFLAGS` and `LDFLAGS` environment variables when running `meson` . Like this:
2019-03-27 15:31:50 -04:00
```bash
2019-04-14 08:32:33 -04:00
$ LDFLAGS="-L/path/to/libraries" CPPFLAGS="-I/path/to/headers" meson --buildtype=release . build
2019-03-27 15:31:50 -04:00
```
2019-04-14 08:32:33 -04:00
As an example, on FreeBSD, you might have to run meson with:
```bash
2020-10-24 22:57:34 -04:00
$ LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" meson --buildtype=release . build
2019-04-14 08:32:33 -04:00
$ ninja -C build
```
2018-10-14 19:47:24 -04:00
2019-02-21 13:24:46 -05:00
### To install
``` bash
$ ninja -C build install
```
Default install prefix is `/usr/local` , you can change it with `meson configure -Dprefix=<path> build`
2018-10-01 09:26:57 -04:00
## How to Contribute
### Code
2019-11-04 15:43:18 -05:00
You can look at the [Projects ](https://github.com/yshui/picom/projects ) page, and see if there is anything that interests you. Or you can take a look at the [Issues ](https://github.com/yshui/picom/issues ).
2018-10-01 09:26:57 -04:00
### Non-code
Even if you don't want to contribute code, you can still contribute by compiling and running this branch, and report any issue you can find.
2018-10-03 17:14:51 -04:00
2019-05-21 17:16:40 -04:00
Contributions to the documents and wiki will also be appreciated.
2018-10-03 17:14:51 -04:00
## Contributors
See [CONTRIBUTORS ](CONTRIBUTORS )
2022-04-12 08:48:21 -04:00
The README for the [original Compton project ](https://github.com/chjj/compton/ ) can be found [here ](History.md#Compton ).
## Licensing
picom is free software, made available under the [MIT ](LICENSES/MIT ) and [MPL-2.0 ](LICENSES/MPL-2.0 ) software
licenses. See the individual source files for details.