Compiz on Debian Unstable

From dankwiki
The compiz cube (+ reflection and deformation) on Debian Unstable.

Debian dropped the Compiz window manager in the 7.x "wheezy" release. Compiz 8.x is distributed for Debian Jessie by tuxfamily.org, based on the compiz-reloaded releases. As of October 2016, these source packages can be easily patched, built, and run on Debian Unstable. Compiz 9 seems closely tied to Ubuntu, and I have never successfully run it on Debian.

The tuxfamily packages live at http://download.tuxfamily.org/compiz/debian http://download.tuxfamily.org/compiz/debian. To blindly add their jessie repo, run

wget -q http://download.tuxfamily.org/compiz/apt/key.pub -O- | \
sudo apt-key add - && \
echo "deb-src http://download.tuxfamily.org/compiz/debian jessie main" | \
sudo tee /etc/apt/sources.list.d/compiz-debian.list && \
sudo apt-get update

the binary packages cannot generally be installed on sid, and I discourage attempting to do so.

I've built binaries and published them to https://nick-black.com/compiz-unstable, if you'd prefer not to build from source.

GTK

I have not successfully built compiz 8 against GTK3 in isolation, due to dependencies on libraries that depend on libgtk-2.0-dev. This is true even if --with-gtk=3.0 is provided to compiz's configure script via debian/rules. GTK includes code to determine whether an object has been linked against both GTK2 and GTK3, aborting if so. If libgtk-3-dev is installed, it will be picked up, even if --with-gtk=2.0 is provided to compiz's configure script. The build will succeed, but resulting binaries will fail when run. I have only successfully run compiz's gtk-window-decorator when built in the absence of libgtk-3-dev.

This implies we must also rebuild mate-desktop, as this is built against GTK3 in unstable, and compiz wants libmate-desktop-dev.

It is probably possible to disable GTK and MATE support, and simply run emerald as one's window decorator.

Rebuilding MATE

Acquire the source package mate-desktop, and amend it to build against GTK2.

Here's a diff against 1.16.1.

Build compiz

  • Acquire and build compiz. Install the resulting compiz-dev and libdecoration-dev packages.
  • Acquire and build libcompizconfig. Install the resulting libcompizconfig-dev package.
  • Acquire and build compizconfig-python. Install the resulting python-compizconfig package.
  • Acquire and build ccsm. Install the resulting compizconfig-settings-manager package.
  • Acquire and build compiz-fusion-bcop. Install the resulting compiz-fusion-bcop package.
  • Acquire and build compiz-fusion-plugins-main. Install the resulting compiz-fusion-plugins-main package.
  • Optionally, acquire and build compiz-fusion-plugins-extra and compiz-fusion-plugins-unsupported.
  • Install the compiz package that resulted from the first step.