Friday, September 7, 2007

Integrate Compiz Fusion with Kubuntu

I keep a private list of all the changes I make to my system, so that if I have to reinstall I can look at it and remember how I did things. It seems to me that it makes much more sense to keep this list online, so that maybe someone else can see it and benefit.

So, you've figured out that your graphics card can run compiz fusion (beyond the scope of this article), and you've got it installed (you can find a guide for that on Feisty here.) But when you run it on Kubuntu, the system automatically loads the default window manager, kwin. So when you start Compiz Fusion, there's a brief flash where the wallpaper goes black -- which is ugly. Besides, loading kwin when you don't intend to use it is a waste of resources and time. So let's get Kubuntu to load Fusion when you log in, instead of kwin.

First, open up a terminal and type:
kdesu kwrite /usr/bin/startcompiz.sh

Now, what you have to put in here will vary by your video card manufacturer. Choose the correct one, enter the following, and save:

Nvidia
#!/bin/bash
compiz --replace --indirect-rendering --sm-disable ccp &
sleep 5
emerald --replace &

ATI
#!/bin/bash
LIBGL_ALWAYS_INDIRECT=1 compiz --replace --indirect-rendering --sm-disable ccp &
sleep 5
emerald --replace &

Intel
#!/bin/bash
INTEL_BATCH=1 LIBGL_ALWAYS_INDIRECT=1 compiz --replace --indirect-rendering --force-aiglx --sm-disable ccp &
sleep 5
emerald --replace &

Now make it executable:
sudo chmod 755 /usr/bin/startcompiz.sh
Ok, now check to see that it works. At a terminal type:
./startcompiz.sh
And see if Fusion loads as you want it to. If it does, great, onto the next step. Open the file:
kdesu kwrite ~/.bashrc
Now add the line:
export KDEWM=startcompiz.sh
Save, and you're done! Log out and then back in, and Compiz Fusion should automatically be loaded as your window manager.

2 comments:

Anonymous said...

Hi,

You created the script /usr/bin/startcompiz.sh and then you try to run ./compizfusion.sh is that a typo?

DarkOx said...

Yes, it's a typo and you're right, it should be startcompiz.sh

Also, and I probably should have mentioned this is in the post, the "./" bit can used to execute the script if you're in the /usr/bin/ directory at the terminal. If you're having trouble running the script, you should be able to run it by typing just "startcompiz.sh" at any location in the terminal, since it's in /usr/bin/.