Sawfish
Documentation quick access

For development info, see Composite & Transparency page.

Configure XServer[]

Add new code to /etc/X11/xorg.conf:

Section "Extensions"
        Option          "Composite"     "Enable"
EndSection

If you have nvidia card, then add to Section "Device" this:

   Driver          "nvidia" # don't add this, it's already there
   Option          "AddARGBGLXVisuals"     "True"
   Option          "AllowGLXWithComposite" "True"

If you have an ATI card and an version of FGLRX older than 8.5, then make sure you have disabled the Textured2D Option as follows

   Driver "fglrx" # don't add this it's already there.
   #Option "Textured2D" "on"

There are also a plenty of options, which may increase the speed of the compositing manager.

The Following is for ATI Cards:

Section "ServerFlags"
        Option "AllowMouseOpenFail" "on" # Don't care about if there's no mouse
        Option "IgnoreABI" "off" # This option "on" to use an driver which officialy 
                                 # does not support your xorg version
        Option "AIGLX" "on"      # Enable the 3D XServer AIGLX
EndSection

Section "Module"
        Load "dbe"
        Load "type1"
        Load "freetype"
        Load "extmod"
        Load "glx"
        Load "dri"
        Load "record"
        Load "fbdevhw"
        Load "GLcore"
EndSection

Section "Device"
        Identifier "ATI RADEON X1600"
        Driver "fglrx"
        Option "UseInternalAGPGART" "no"
        Option "VideoOverlay" "off"
        Option "TexturedVideo" "on"
        #Option "Textured2D" "on" # Disable this with FGLRX < 8.5
        Option "TexturedXRender" "on"
        Option "OpenGLOverlay" "on"
        Option "UseFastTLS" "1"
        Option "EnablePrivateBackZ" "on"
        Option "XAANoOffscreenPixmaps"
        Option "KernelModuleParm" "agplock=0"
        Option "KernelModuleParm" "agpgart=3"
        Option "KernelModuleParm" "su_flags=0xdead0003"
        Option "backingstore" "true"
        Option "DRI" "true"
EndSection

Section "Extensions"
        Option "DAMAGE" "on"
        Option "Composite" "on"
        Option "RENDER" "on"
        Option "XVideo" "on"
EndSection

Section "DRI"
    Mode 0666
EndSection

If Firefox crashes when viewing Flashvideos and Composite is enabled, add the following to the firefox startup-script (normally /usr/bin/firefox) [or iceweasel in case of Debian].

export XLIB_SKIP_ARGB_VISUALS=1

The same may be required when using XMMS in "double-size" mode, add a startup script (eg. /usr/bin/xmms-start)

#!/bin/bash
XLIB_SKIP_ARGB_VISUALS=1 xmms $@

If the output of MPlayer flickers, change the video driver to gl2. Either via the settings dialog or mplayer -vo gl2 on the terminal. That solves the issue in most cases.

Software[]

Cairo-Composite-Manager[]

The CCM is a compositing Manager, which uses the CAIRO Vector Graphics Library for drawing Operations. Compared to the XCompMgr it has more features, several backends and much more options. Most important: It has a better performance and does not leak or start working incorrectly at some point.

Installing the CCM:


git clone git://git.tuxfamily.org/gitroot/ccm/cairocompmgr.git cairo-compmgr

cd cairo-compmgr

./autogen.sh --prefix=/usr

make

sudo make install [or] su -c "make install"

Then start it by running cairo-compmgra new icon will appear in your panel (CAIRO's scarabeus). Right Click on it -> Composite Desktop -> Now you have a compisted environment with the default options.

Use the GConf-Editor ( apps / cairo-compmgr / screen_[0-9] ) to setup the CCM, you'll have to completly restart it afterwards. (killall -qw cairo-compmgr && cairo-compmgr)

compton[]

A fork of xcompmgr-dana (which itself is a fork of the reference xcompmgr). compton tries to fix xcompmgr bugs and other shortcomings, while still keeping a low profile without big dependencies.

XCompMgr[]

The XCompMgr is an example Composite-Manager, with a lot of disadvantages. It's leaking, it stops working correctly at some point (see possible workaround below) and not very configurable. OTOH, it's easy to install as it's avaliable with some distros needing no extra tools, and you get things like flicker free video and windows when windows overlap. Please refer to the CCM if possible.

wget http://xorg.freedesktop.org/releases/individual/app/xcompmgr-1.1.4.tar.bz2

tar xf xcompmgr-1.1.4.tar.bz2

cd xcompmgr-1.1.4

./configure --prefix=/usr

make

sudo make install [or] su -c "make install"

If you use the native-focus-transparency.jl then xcompmgr is enough.

But if you use the focus-transparency.jl repeat the installation steps for transset.

Advanced XCompMgr Configuration[]

Just starting "xcompmgr" will give you a plain 3D Desktop, without fancy effects (except the ones from 3rdparty apps like gnome-panel/awn).

Basic modes

-a -> force server side, no drop shadows, useful with some apps that will look washed out like old GTK1 ones

-n -> force client side, no drop shadows

Enabling Drop-Shadows

-c -> Enable drop shadows

-C -> Don't draw drop shadows on Docks/Panels

-r -> Shadow Blurring radius

-l -> left offset of Shadows

-t -> top offset of Shadows

-o -> Opacity of Shadows

Enabling Fading Animations

-f -> Fade when Opening/Closing a Windows

-F -> Fade when the Opacity Changes

-I -> Fade-in Steps

-O -> Fade-out Steps

Example

xcompmgr -cCfF -r7 -o 0.65 -l-10 -t-8 -D7 -I 0.020 -O 0.020

run "xcompmgr --help" or "man xcompmgr" for a full list of options and adjust your autostart entry.

Typical problems

It's reported (ie Debian bug 484830) that sometimes zones will not be refreshed. They will draw fine again if you move a window over them, or run "xrefresh". Probably Sawfish should run this cmd, or do what it does (even if that is against the Sawfish optimizations that try to minimize redraws), in things like workspace change, as that seems to be one time where stale pixels happens regularly.

Scripts[]

External links[]

Links useful when dealing with XComposite extension