Date

I have put together a few pointers on the things that are required to get the compositor to work in xfce4. I have tried to include both 4.2.x and 4.4, but I might have missed something.

First you need an X server that supports composite, e.g. Xorg 7. You need to edit your xorg.conf file so that it contains.

Section “Extensions”
Option “Composite” “Enable”
EndSection

Then you need a version of xfwm4 that supports compositing. If you are compiling from source then you need to use the –enable-compositor switch (default in 4.4). You also need libxdamage-dev, libxfixes-dev, libxrender-dev and libxcomposite-dev (or whatever your distro calls them). When you are compiling you need to see

checking for xcomposite >= 1.0 xfixes xdamage xrender… yes
checking COMPOSITOR_CFLAGS… -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/X11R6/include
checking COMPOSITOR_LIBS… -L/usr/X11R6/lib -lXcomposite -lXdamage -lXfixes -lXrender -lX11 -lXext

in the output. If not then I have probably missed a dependency.

If you are using a packaged version then you need to find out if it was compiled with this support, recent packages probably are.

Now you need to start xfwm4 with the compositor on, I think this is the default in all versions, but if not when you are running you can do

$ pkill xfwm4
$ xfwm4 –compositor=on

If it’s not on by default and you want it to be then there are two ways.

  1. If you are using the session manager then simply logging in, enabling saving of sessions, doing the above to start xfwm4 with the compositor then logging out and back in again, and disabling saving of sessions again should do the trick. I would find it easier to edit the files in ~/.cache/sessions, but each to their own
  2. If you are not using the session manager then edit ~/.xinitrc or /etc/xdg/xfce4/xinitrc

Once you have the compositor on then you will want something to do with it. There are some settings in window manager tweaks that may be of interest. Also try ALT+scroll wheel on the title bar of an app. You could also look into transset-df (or simply transset), or transd, which is kind of like devilspie for transparency. You could also look at my transparent Terminal patches. I also have patches the implement making inactive windows semi transparent.