• Stars
    star
    2,247
  • Rank 20,493 (Top 0.5 %)
  • Language
    C
  • License
    Other
  • Created about 13 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A compositor for X11.

Compton

Join the chat at https://gitter.im/chjj/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)
  • libXinerama (B,R) (Can be disabled with NO_XINERAMA at compile time)
  • 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) (and docbook-xml-dtd-4.5, libxml-utils, libxslt, xsltproc, xmlto, etc. if your distro doesn't pull them in)

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.

More Repositories

1

blessed

A high-level terminal interface library for node.js.
JavaScript
11,297
star
2

tty.js

A terminal for your browser, using node/express/socket.io
JavaScript
4,194
star
3

ttystudio

A terminal-to-gif recorder minus the headaches.
JavaScript
3,239
star
4

term.js

A terminal written in javascript.
JavaScript
1,550
star
5

pty.js

Bindings to forkpty(3) for node.js.
C++
857
star
6

mako

Bitcoin node written in C
C
578
star
7

termcoin

A bitcoin wallet and blockchain explorer for your terminal.
JavaScript
481
star
8

liburkel

Authenticated key-value store (i.e. an urkel tree)
C
315
star
9

zest

An absurdly fast CSS selector engine.
JavaScript
238
star
10

slock

Fork of suckless screen locker for the extremely paranoid.
C
152
star
11

tiny

A small database for node.js.
JavaScript
111
star
12

lcdb

LevelDB implemented in C (unofficial -- not affiliated with Google in any way)
C
98
star
13

bns

Recursive DNS server and resolver for node.js
JavaScript
65
star
14

parted

Streaming body parser for node.js.
JavaScript
63
star
15

bthreads

worker threads for javascript
JavaScript
48
star
16

bpkg

Bundler and release tool for node.js
JavaScript
46
star
17

tng

A full-featured PNG renderer for the terminal.
JavaScript
41
star
18

coined

A high-level wrapper around BCoin
JavaScript
25
star
19

node-uo

A UO server for node.js
JavaScript
25
star
20

n64

Int64 object for javascript
JavaScript
24
star
21

liquor

A templating engine minus the code.
JavaScript
19
star
22

daemonic

A dead-simple module to daemonize a node. No compilation required.
JavaScript
19
star
23

node-telnet2

Telnet implementation for node.js, based on node-telnet
JavaScript
18
star
24

gitj

gitk in your terminal.
JavaScript
15
star
25

node-pingback

pingbacks for node.js
JavaScript
15
star
26

dilated

A blog for node.js.
JavaScript
14
star
27

csslike

A CSS preprocessor for node.js, designed to conform to the most recent www-style proposals.
CSS
12
star
28

cmake-node

node.js toolchain for cmake
C
11
star
29

rondo

DOM library and app framework.
JavaScript
11
star
30

st

A fork of st implementing scrollback, keyboard selection, and tabs.
C
11
star
31

highlighter.js

a quick and dirty JS highlighter
JavaScript
10
star
32

charged

High-level Chargify API binding for node.js
JavaScript
10
star
33

supersha

Fast SHA256 for node.js
C
10
star
34

dwm

My dwm fork and configuration.
C
10
star
35

tmux

A fork of tmux implementing xterm behavior.
C
8
star
36

vanilla

A framework for node.js.
JavaScript
8
star
37

Live-Stylesheets

small google chrome extension for editing a page's raw css
JavaScript
8
star
38

shim.htc

An HTML5 Shim in an HTML Component
JavaScript
8
star
39

epsilon-not

Weblog
PHP
5
star
40

unbound

Bindings to libunbound for node.js
C
5
star
41

evilpart

A Node multipart parser that is positively evil
JavaScript
5
star
42

N

pretty control for js
JavaScript
5
star
43

nmterm

A wicd-curses-like interface for NetworkManager
JavaScript
5
star
44

pulsemixer.js

An alsamixer-like interface for PulseAudio
JavaScript
4
star
45

rocksdown

RocksDB backend for LevelUP
C++
4
star
46

bsert

Minimal assertions for javascript
JavaScript
4
star
47

bitcoind.js

bitcoind.js has moved to https://github.com/bitpay/bitcoind.js
C++
4
star
48

wazm

WASM abstraction and EMCC preamble
JavaScript
3
star
49

babylonia

zero-dependency babel
JavaScript
3
star
50

bslint

eslint with less (or more) bullshit
JavaScript
3
star
51

bdoc

zero-dependency jsdoc
JavaScript
3
star
52

pkg-verify

Dependency verifier for node.js
JavaScript
3
star
53

buffer-map

Buffer-keyed map for javascript
JavaScript
2
star
54

loady

dynamic loader for node.js
JavaScript
2
star
55

leasedump

Dump dhcpcd lease files
C
1
star
56

qrsuite

jsqrcode and qr.js rolled into one package
JavaScript
1
star