Thursday, June 5, 2008

Tips for using Compiz fusion on Ubuntu Hardy

This post is a simple how-to for adding extra plugins to Compiz, and for enabling some extra options and repositories. It would be best to read it to the end before trying to implement anything mentioned in it.

A side view of my desktop

Firstly we will need to install the following extra packages:

sudo aptitude install compizconfig-settings-manager compiz-fusion-plugins-extra compiz-fusion-plugins-main simple-ccsm

If you get an error about package not found download this Hardy repository list.
After this go to System->Preferences->Appearance->Visual Effects and click on Custom.
Optionally you can also install fusion-icon (sudo aptitude install fusion-icon) - it will allow you to control compiz from the taskbar.

The next step is to assign a different background to every side of you desktop cube. One way to do this is to use the wallpaper plugin. But it can be done without using a special plugin - you can do the same usig only the desktop cube plugin. To do this do the following: System->Preferences->Advanced Desktop Effects Settings->Desktop Cube->Appearance. You will see there an option to add background images. Add the images you want displayed (You will need one image for every side of the cube). Now press Alt+F2 and type gconf-editor. Go to apps->Nautilus->preferences and uncheck "show desktop". It is possible that you will need to log out for the changes to be activated.
You can also put any images you want on the top and bottom of the cube using the cubecups plugin.

There are a lot of plugins available in Ubuntu repositories. But the latest plugins are not there. To get them you will need to manually install them. To do this firstly get all the dependencies:

sudo aptitude install compiz-bcop compiz-dev build-essential libtool libglu1-mesa-dev libxss-dev git-core

Now type the following (make sure you are not root):
mkdir compiz
cd ~/compiz
git clone git://anongit.compiz-fusion.org/users/wodor/anaglyph
git clone git://anongit.compiz-fusion.org/fusion/plugins/atlantis
git clone git://anongit.compiz-fusion.org/users/metastability/atlantis2
git clone git://anongit.compiz-fusion.org/users/smspillaz/fireflies
git clone git://anongit.compiz-fusion.org/users/warlock/freewins
git clone git://anongit.compiz-fusion.org/users/b0le/photowheel
git clone git://anongit.compiz-fusion.org/users/pafy/screensaver
git clone git://anongit.compiz-fusion.org/fusion/plugins/snow
git clone git://anongit.compiz-fusion.org/users/metastability/snowglobe
git clone git://anongit.compiz-fusion.org/users/smspillaz/stars
git clone git://anongit.compiz-fusion.org/fusion/plugins/tile
git clone git://anongit.compiz-fusion.org/fusion/plugins/wallpaper

Now you need to compile the plugins. To do this type:
cd compiz/atlantis2
make
make install

You will need to repeat it with all of the plugins. You can also download my script that will do all of the above. Just download it and make it executable. If you will decide to uninstall, cd to the directory and type make uninstall. You can also use checkinstall instead of make install - this will produce a .deb file. Also, note that the latest version of cubeaddon plugin is not on the list - for it to work you need to install the latest Compiz version.

If you want even more plugins, you can use the Compiz SVN repository to get the latest version of all plugins and Compiz. Generally installing anything from a SVN repository is not recommended. Do this on your own risk. To do it add the repository:

deb http://download.tuxfamily.org/shames/debian-sid/desktopfx/unstable/ ./

And the GPG key:

wget http://download.tuxfamily.org/shames/A42A6CF5.gpg -O- | apt-key add -

Type:
sudo aptitude update
sudo aptitude install compiz-fusion-all


This should install the latest version of Compiz. If the install fails with a message that your libpango library is too old download and install these: libpango-common libpango libpango-dev
The order in which you install them is important - they can only be installed in correct order. Also, if you will decide to remove them from your system be warned - I nearly broke Ubuntu when I tried to remove them. By using anything in this post you agree that I am in no way responsible for any damage it may cause to your computer.

6 comments:

pauljohn said...

Impressed compiz actually works these days. I got jazzed up about it 2 years ago and it never worked well. Now I installed in Ubuntu Hardy and followed your instruction to get wall paper. Worked Fine!

Does compiz have a module for a root window menu (ala WindowMaker or Enlightenment?)

Anatoly said...

Hello Paul,
I don't use WindowMaker or Enlightenment, so I am not sure I understand what you are looking for.
There is a list of all Compiz plugins here. Some of them may require the latest version of Compiz to work.

Anonymous said...

Nice job on the script! I finally managed to install most of the extra compiz plugins! However I still can't get the screensaver to work :(, got any ideas on that?

this is what I got in my terminal:

atlantis.c: In function ‘atlantisFiniScreen’:
atlantis.c:528: error: dereferencing pointer to incomplete type
atlantis.c:528: error: dereferencing pointer to incomplete type
atlantis.c:533: error: ‘donePaintScreen’ undeclared (first use in this function)
atlantis.c:534: error: ‘preparePaintScreen’ undeclared (first use in this function)
atlantis.c:535: error: ‘cs’ undeclared (first use in this function)
atlantis.c:535: error: ‘clearTargetOutput’ undeclared (first use in this function)
atlantis.c:536: error: ‘paintInside’ undeclared (first use in this function)
atlantis.c: At top level:
atlantis.c:542: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘atlantisInit’
atlantis.c: In function ‘atlantisFini’:
atlantis.c:556: warning: implicit declaration of function ‘freeDisplayPrivateIndex’
atlantis.c:556: warning: nested extern declaration of ‘freeDisplayPrivateIndex’
atlantis.c: In function ‘atlantisGetVersion’:
atlantis.c:562: error: ‘ABIVERSION’ undeclared (first use in this function)
atlantis.c:563: warning: control reaches end of non-void function
atlantis.c: At top level:
atlantis.c:565: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘atlantisVTable’
atlantis.c:584: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
make: *** [build/atlantis.lo] Error 1
cvnico@bitchslaptop:~/compiz/atlantis$ cd
cvnico@bitchslaptop:~$ cd compiz/atlantis2
cvnico@bitchslaptop:~/compiz/atlantis2$ make
convert : atlantis.xml.in -> build/atlantis.xml
bcop'ing : build/atlantis.xml -> build/atlantis_options.h
bcop'ing : build/atlantis.xml -> build/atlantis_options.c
schema : build/atlantis.xml -> build/compiz-atlantis.schema
compiling : coral.c -> build/coral.lo
compiling : util.c -> build/util.lo
compiling : atlantis.c -> build/atlantis.lo
compiling : fish2.c -> build/fish2.lo
compiling : shark.c -> build/shark.lo
compiling : whale.c -> build/whale.lo
compiling : scuttle.c -> build/scuttle.lo
compiling : coral2.c -> build/coral2.lo
compiling : bubble.c -> build/bubble.lo
compiling : swim.c -> build/swim.lo
compiling : bfish.c -> build/bfish.lo
compiling : dolphin.c -> build/dolphin.lo
compiling : water.c -> build/water.lo
compiling : fish.c -> build/fish.lo
compiling : chromis.c -> build/chromis.lo
compiling : crab.c -> build/crab.lo
compiling : float.c -> build/float.lo
compiling : build/atlantis_options.c -> build/atlantis_options.lo
linking : build/libatlantis.la
cvnico@bitchslaptop:~/compiz/atlantis2$ make install
install : /home/cvnico/.compiz/plugins/libatlantis.so
install : /home/cvnico/.compiz/metadata/atlantis.xml
install : build/compiz-atlantis.schema
cvnico@bitchslaptop:~/compiz/atlantis2$ cd
cvnico@bitchslaptop:~$ cd compiz/fireflies
cvnico@bitchslaptop:~/compiz/fireflies$ make
convert : fireflies.xml.in -> build/fireflies.xml
bcop'ing : build/fireflies.xml -> build/fireflies_options.h
bcop'ing : build/fireflies.xml -> build/fireflies_options.c
schema : build/fireflies.xml -> build/compiz-fireflies.schema
compiling : fireflies.c -> build/fireflies.lofireflies.c: In function ‘snowInitScreen’:
fireflies.c:551: error: incompatible type for argument 2 of ‘compAddTimeout’
fireflies.c:551: error: too many arguments to function ‘compAddTimeout’
fireflies.c: In function ‘snowDisplayOptionChanged’:
fireflies.c:618: error: incompatible type for argument 2 of ‘compAddTimeout’
fireflies.c:618: error: too many arguments to function ‘compAddTimeout’
make: *** [build/fireflies.lo] Error 1
cvnico@bitchslaptop:~/compiz/fireflies$ make install
compiling : fireflies.c -> build/fireflies.lofireflies.c: In function ‘snowInitScreen’:
fireflies.c:551: error: incompatible type for argument 2 of ‘compAddTimeout’
fireflies.c:551: error: too many arguments to function ‘compAddTimeout’
fireflies.c: In function ‘snowDisplayOptionChanged’:
fireflies.c:618: error: incompatible type for argument 2 of ‘compAddTimeout’
fireflies.c:618: error: too many arguments to function ‘compAddTimeout’
make: *** [build/fireflies.lo] Error 1
cvnico@bitchslaptop:~/compiz/fireflies$ cd
cvnico@bitchslaptop:~$ cd compiz/freewins
cvnico@bitchslaptop:~/compiz/freewins$ make
convert : freewins.xml.in -> build/freewins.xml
bcop'ing : build/freewins.xml -> build/freewins_options.h
bcop'ing : build/freewins.xml -> build/freewins_options.c
schema : build/freewins.xml -> build/compiz-freewins.schema
compiling : util.c -> build/util.lo
compiling : events.c -> build/events.lo
compiling : freewins.c -> build/freewins.lo
compiling : input.c -> build/input.lo
compiling : paint.c -> build/paint.lo
compiling : action.c -> build/action.lo
compiling : build/freewins_options.c -> build/freewins_options.lo
linking : build/libfreewins.la
cvnico@bitchslaptop:~/compiz/freewins$ make install
install : /home/cvnico/.compiz/plugins/libfreewins.so
install : /home/cvnico/.compiz/metadata/freewins.xml
install : build/compiz-freewins.schema
cvnico@bitchslaptop:~/compiz/freewins$ cd
cvnico@bitchslaptop:~$ cd compiz/photowheel
cvnico@bitchslaptop:~/compiz/photowheel$ make
convert : photo.xml.in -> build/photo.xml
bcop'ing : build/photo.xml -> build/photo_options.h
bcop'ing : build/photo.xml -> build/photo_options.c
schema : build/photo.xml -> build/compiz-photo.schema
compiling : photo.c -> build/photo.lo
compiling : build/photo_options.c -> build/photo_options.lo
linking : build/libphoto.la
cvnico@bitchslaptop:~/compiz/photowheel$ make install
install : /home/cvnico/.compiz/plugins/libphoto.so
install : /home/cvnico/.compiz/metadata/photo.xml
install : build/compiz-photo.schema
cvnico@bitchslaptop:~/compiz/photowheel$ cd
cvnico@bitchslaptop:~$ cd compiz/screensaver
cvnico@bitchslaptop:~/compiz/screensaver$ make
compiling : rotatingcube.cpp -> build/rotatingcube.loIn file included from rotatingcube.h:4,
from rotatingcube.cpp:1:
screensaver_internal.h:5:18: error: cube.h: No such file or directory
In file included from matrix.h:6,
from screensaver_internal.h:7,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
vector.h: In member function ‘Vector Vector::toScreenSpace(CompScreen*) const’:
vector.h:37: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
vector.h:38: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
vector.h: In member function ‘Vector Vector::toCoordsSpace(CompScreen*) const’:
vector.h:46: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
vector.h:47: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
In file included from screensaver_internal.h:7,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
matrix.h: At global scope:
matrix.h:15: error: expected ‘,’ or ‘...’ before ‘*’ token
matrix.h:15: error: ISO C++ forbids declaration of ‘CompTransform’ with no type
matrix.h: In constructor ‘Matrix::Matrix(int)’:
matrix.h:15: error: ‘mat’ was not declared in this scope
matrix.h: In member function ‘Matrix& Matrix::rotate(float, float, float, float)’:
matrix.h:30: error: ‘CompTransform’ was not declared in this scope
matrix.h:30: error: expected primary-expression before ‘)’ token
matrix.h:30: error: ‘matrixRotate’ was not declared in this scope
matrix.h: In member function ‘Matrix& Matrix::scale(float, float, float)’:
matrix.h:38: error: ‘CompTransform’ was not declared in this scope
matrix.h:38: error: expected primary-expression before ‘)’ token
matrix.h:38: error: ‘matrixScale’ was not declared in this scope
matrix.h: In member function ‘Matrix& Matrix::translate(float, float, float)’:
matrix.h:46: error: ‘CompTransform’ was not declared in this scope
matrix.h:46: error: expected primary-expression before ‘)’ token
matrix.h:46: error: ‘matrixTranslate’ was not declared in this scope
In file included from screensaver_internal.h:9,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
build/screensaver_options.h: At global scope:
build/screensaver_options.h:19: error: expected constructor, destructor, or type conversion before ‘*’ token
build/screensaver_options.h:58: error: expected constructor, destructor, or type conversion before ‘*’ token
build/screensaver_options.h:59: error: ‘CompActionCallBackProc’ has not been declared
build/screensaver_options.h:60: error: ‘CompActionCallBackProc’ has not been declared
build/screensaver_options.h:68: error: ‘Bool’ does not name a type
build/screensaver_options.h:84: error: expected constructor, destructor, or type conversion before ‘*’ token
build/screensaver_options.h:88: error: ‘Bool’ does not name a type
build/screensaver_options.h:100: error: ‘Bool’ does not name a type
In file included from rotatingcube.h:4,
from rotatingcube.cpp:1:
screensaver_internal.h:45: error: ‘Bool’ does not name a type
screensaver_internal.h:46: error: ‘Bool’ does not name a type
screensaver_internal.h:47: error: ‘Bool’ does not name a type
screensaver_internal.h:53: error: ‘Bool’ does not name a type
screensaver_internal.h:62: error: ‘HandleEventProc’ does not name a type
screensaver_internal.h:72: error: ‘CubeGetRotationProc’ does not name a type
screensaver_internal.h:73: error: ‘PreparePaintScreenProc’ does not name a type
screensaver_internal.h:74: error: ‘DonePaintScreenProc’ does not name a type
screensaver_internal.h:75: error: ‘PaintOutputProc’ does not name a type
screensaver_internal.h:76: error: ‘PaintWindowProc’ does not name a type
screensaver_internal.h:77: error: ‘PaintTransformedOutputProc’ does not name a type
screensaver_internal.h:78: error: ‘PaintBackgroundProc’ does not name a type
screensaver_internal.h:94: error: ‘GLushort’ does not name a type
screensaver_internal.h:102: error: ‘XEvent’ has not been declared
screensaver_internal.h:106: error: expected ‘,’ or ‘...’ before ‘*’ token
screensaver_internal.h:106: error: ISO C++ forbids declaration of ‘ScreenPaintAttrib’ with no type
screensaver_internal.h:110: error: ‘Bool’ does not name a type
screensaver_internal.h:114: error: ‘Bool’ does not name a type
screensaver_internal.h:117: error: ‘Region’ has not been declared
In file included from screensaver_internal.h:119,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
wrapper.h:12: error: ‘XEvent’ has not been declared
wrapper.h:28: error: expected ‘,’ or ‘...’ before ‘*’ token
wrapper.h:28: error: ISO C++ forbids declaration of ‘ScreenPaintAttrib’ with no type
wrapper.h:31: error: ‘Bool’ does not name a type
wrapper.h:34: error: ‘Region’ has not been declared
wrapper.h:46: error: ‘Bool’ does not name a type
In file included from rotatingcube.cpp:1:
rotatingcube.h:17: error: ‘Bool’ does not name a type
rotatingcube.cpp: In member function ‘bool ScreenRotatingCube::loadCubePlugin()’:
rotatingcube.cpp:5: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:6: error: ‘findActivePlugin’ was not declared in this scope
rotatingcube.cpp:11: error: invalid use of incomplete type ‘struct _CompPlugin’
/usr/include/compiz/compiz.h:46: error: forward declaration of ‘struct _CompPlugin’
rotatingcube.cpp:14: error: invalid use of incomplete type ‘struct _CompPlugin’
/usr/include/compiz/compiz.h:46: error: forward declaration of ‘struct _CompPlugin’
rotatingcube.cpp:16: error: ‘getIntOptionNamed’ was not declared in this scope
rotatingcube.cpp:16: error: ‘CUBE_ABIVERSION’ was not declared in this scope
rotatingcube.cpp:18: error: ‘CompLogLevelError’ was not declared in this scope
rotatingcube.cpp:19: error: ‘compLogMessage’ was not declared in this scope
rotatingcube.cpp:23: error: ‘getIntOptionNamed’ was not declared in this scope
rotatingcube.cpp: In member function ‘virtual bool ScreenRotatingCube::enable()’:
rotatingcube.cpp:32: error: ‘CUBE_SCREEN’ was not declared in this scope
rotatingcube.cpp:37: error: ‘cs’ was not declared in this scope
rotatingcube.cpp:37: error: ‘RotationManual’ was not declared in this scope
rotatingcube.cpp:38: error: ‘WRAP’ was not declared in this scope
rotatingcube.cpp: In member function ‘virtual void ScreenRotatingCube::clean()’:
rotatingcube.cpp:54: error: ‘CUBE_SCREEN’ was not declared in this scope
rotatingcube.cpp:55: error: ‘cs’ was not declared in this scope
rotatingcube.cpp:55: error: ‘RotationNone’ was not declared in this scope
rotatingcube.cpp:56: error: ‘UNWRAP’ was not declared in this scope
rotatingcube.cpp: In member function ‘virtual void ScreenRotatingCube::preparePaintScreen(int)’:
rotatingcube.cpp:72: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:75: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:77: error: ‘struct ScreenSaverState’ has no member named ‘fadingIn’
rotatingcube.cpp:80: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:82: error: ‘struct ScreenSaverState’ has no member named ‘fadingOut’
rotatingcube.cpp:89: error: ‘struct ScreenSaverState’ has no member named ‘fadingOut’
rotatingcube.cpp: In member function ‘virtual void ScreenRotatingCube::donePaintScreen()’:
rotatingcube.cpp:100: error: ‘damageScreen’ was not declared in this scope
rotatingcube.cpp: At global scope:
rotatingcube.cpp:104: error: ‘Bool’ does not name a type
make: *** [build/rotatingcube.lo] Error 1
cvnico@bitchslaptop:~/compiz/screensaver$ make install
compiling : rotatingcube.cpp -> build/rotatingcube.loIn file included from rotatingcube.h:4,
from rotatingcube.cpp:1:
screensaver_internal.h:5:18: error: cube.h: No such file or directory
In file included from matrix.h:6,
from screensaver_internal.h:7,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
vector.h: In member function ‘Vector Vector::toScreenSpace(CompScreen*) const’:
vector.h:37: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
vector.h:38: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
vector.h: In member function ‘Vector Vector::toCoordsSpace(CompScreen*) const’:
vector.h:46: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
vector.h:47: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
In file included from screensaver_internal.h:7,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
matrix.h: At global scope:
matrix.h:15: error: expected ‘,’ or ‘...’ before ‘*’ token
matrix.h:15: error: ISO C++ forbids declaration of ‘CompTransform’ with no type
matrix.h: In constructor ‘Matrix::Matrix(int)’:
matrix.h:15: error: ‘mat’ was not declared in this scope
matrix.h: In member function ‘Matrix& Matrix::rotate(float, float, float, float)’:
matrix.h:30: error: ‘CompTransform’ was not declared in this scope
matrix.h:30: error: expected primary-expression before ‘)’ token
matrix.h:30: error: ‘matrixRotate’ was not declared in this scope
matrix.h: In member function ‘Matrix& Matrix::scale(float, float, float)’:
matrix.h:38: error: ‘CompTransform’ was not declared in this scope
matrix.h:38: error: expected primary-expression before ‘)’ token
matrix.h:38: error: ‘matrixScale’ was not declared in this scope
matrix.h: In member function ‘Matrix& Matrix::translate(float, float, float)’:
matrix.h:46: error: ‘CompTransform’ was not declared in this scope
matrix.h:46: error: expected primary-expression before ‘)’ token
matrix.h:46: error: ‘matrixTranslate’ was not declared in this scope
In file included from screensaver_internal.h:9,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
build/screensaver_options.h: At global scope:
build/screensaver_options.h:19: error: expected constructor, destructor, or type conversion before ‘*’ token
build/screensaver_options.h:58: error: expected constructor, destructor, or type conversion before ‘*’ token
build/screensaver_options.h:59: error: ‘CompActionCallBackProc’ has not been declared
build/screensaver_options.h:60: error: ‘CompActionCallBackProc’ has not been declared
build/screensaver_options.h:68: error: ‘Bool’ does not name a type
build/screensaver_options.h:84: error: expected constructor, destructor, or type conversion before ‘*’ token
build/screensaver_options.h:88: error: ‘Bool’ does not name a type
build/screensaver_options.h:100: error: ‘Bool’ does not name a type
In file included from rotatingcube.h:4,
from rotatingcube.cpp:1:
screensaver_internal.h:45: error: ‘Bool’ does not name a type
screensaver_internal.h:46: error: ‘Bool’ does not name a type
screensaver_internal.h:47: error: ‘Bool’ does not name a type
screensaver_internal.h:53: error: ‘Bool’ does not name a type
screensaver_internal.h:62: error: ‘HandleEventProc’ does not name a type
screensaver_internal.h:72: error: ‘CubeGetRotationProc’ does not name a type
screensaver_internal.h:73: error: ‘PreparePaintScreenProc’ does not name a type
screensaver_internal.h:74: error: ‘DonePaintScreenProc’ does not name a type
screensaver_internal.h:75: error: ‘PaintOutputProc’ does not name a type
screensaver_internal.h:76: error: ‘PaintWindowProc’ does not name a type
screensaver_internal.h:77: error: ‘PaintTransformedOutputProc’ does not name a type
screensaver_internal.h:78: error: ‘PaintBackgroundProc’ does not name a type
screensaver_internal.h:94: error: ‘GLushort’ does not name a type
screensaver_internal.h:102: error: ‘XEvent’ has not been declared
screensaver_internal.h:106: error: expected ‘,’ or ‘...’ before ‘*’ token
screensaver_internal.h:106: error: ISO C++ forbids declaration of ‘ScreenPaintAttrib’ with no type
screensaver_internal.h:110: error: ‘Bool’ does not name a type
screensaver_internal.h:114: error: ‘Bool’ does not name a type
screensaver_internal.h:117: error: ‘Region’ has not been declared
In file included from screensaver_internal.h:119,
from rotatingcube.h:4,
from rotatingcube.cpp:1:
wrapper.h:12: error: ‘XEvent’ has not been declared
wrapper.h:28: error: expected ‘,’ or ‘...’ before ‘*’ token
wrapper.h:28: error: ISO C++ forbids declaration of ‘ScreenPaintAttrib’ with no type
wrapper.h:31: error: ‘Bool’ does not name a type
wrapper.h:34: error: ‘Region’ has not been declared
wrapper.h:46: error: ‘Bool’ does not name a type
In file included from rotatingcube.cpp:1:
rotatingcube.h:17: error: ‘Bool’ does not name a type
rotatingcube.cpp: In member function ‘bool ScreenRotatingCube::loadCubePlugin()’:
rotatingcube.cpp:5: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:6: error: ‘findActivePlugin’ was not declared in this scope
rotatingcube.cpp:11: error: invalid use of incomplete type ‘struct _CompPlugin’
/usr/include/compiz/compiz.h:46: error: forward declaration of ‘struct _CompPlugin’
rotatingcube.cpp:14: error: invalid use of incomplete type ‘struct _CompPlugin’
/usr/include/compiz/compiz.h:46: error: forward declaration of ‘struct _CompPlugin’
rotatingcube.cpp:16: error: ‘getIntOptionNamed’ was not declared in this scope
rotatingcube.cpp:16: error: ‘CUBE_ABIVERSION’ was not declared in this scope
rotatingcube.cpp:18: error: ‘CompLogLevelError’ was not declared in this scope
rotatingcube.cpp:19: error: ‘compLogMessage’ was not declared in this scope
rotatingcube.cpp:23: error: ‘getIntOptionNamed’ was not declared in this scope
rotatingcube.cpp: In member function ‘virtual bool ScreenRotatingCube::enable()’:
rotatingcube.cpp:32: error: ‘CUBE_SCREEN’ was not declared in this scope
rotatingcube.cpp:37: error: ‘cs’ was not declared in this scope
rotatingcube.cpp:37: error: ‘RotationManual’ was not declared in this scope
rotatingcube.cpp:38: error: ‘WRAP’ was not declared in this scope
rotatingcube.cpp: In member function ‘virtual void ScreenRotatingCube::clean()’:
rotatingcube.cpp:54: error: ‘CUBE_SCREEN’ was not declared in this scope
rotatingcube.cpp:55: error: ‘cs’ was not declared in this scope
rotatingcube.cpp:55: error: ‘RotationNone’ was not declared in this scope
rotatingcube.cpp:56: error: ‘UNWRAP’ was not declared in this scope
rotatingcube.cpp: In member function ‘virtual void ScreenRotatingCube::preparePaintScreen(int)’:
rotatingcube.cpp:72: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:75: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:77: error: ‘struct ScreenSaverState’ has no member named ‘fadingIn’
rotatingcube.cpp:80: error: invalid use of incomplete type ‘struct _CompScreen’
/usr/include/compiz/compiz.h:47: error: forward declaration of ‘struct _CompScreen’
rotatingcube.cpp:82: error: ‘struct ScreenSaverState’ has no member named ‘fadingOut’
rotatingcube.cpp:89: error: ‘struct ScreenSaverState’ has no member named ‘fadingOut’
rotatingcube.cpp: In member function ‘virtual void ScreenRotatingCube::donePaintScreen()’:
rotatingcube.cpp:100: error: ‘damageScreen’ was not declared in this scope
rotatingcube.cpp: At global scope:
rotatingcube.cpp:104: error: ‘Bool’ does not name a type
make: *** [build/rotatingcube.lo] Error 1
cvnico@bitchslaptop:~/compiz/screensaver$ cd
cvnico@bitchslaptop:~$ cd compiz/snow
cvnico@bitchslaptop:~/compiz/snow$ make
convert : snow.xml.in -> build/snow.xml
bcop'ing : build/snow.xml -> build/snow_options.h
bcop'ing : build/snow.xml -> build/snow_options.c
schema : build/snow.xml -> build/compiz-snow.schema
compiling : snow.c -> build/snow.losnow.c: In function ‘snowInitScreen’:
snow.c:545: error: incompatible type for argument 2 of ‘compAddTimeout’
snow.c:545: error: too many arguments to function ‘compAddTimeout’
snow.c: In function ‘snowDisplayOptionChanged’:
snow.c:613: error: incompatible type for argument 2 of ‘compAddTimeout’
snow.c:613: error: too many arguments to function ‘compAddTimeout’
make: *** [build/snow.lo] Error 1
cvnico@bitchslaptop:~/compiz/snow$ make install
compiling : snow.c -> build/snow.losnow.c: In function ‘snowInitScreen’:
snow.c:545: error: incompatible type for argument 2 of ‘compAddTimeout’
snow.c:545: error: too many arguments to function ‘compAddTimeout’
snow.c: In function ‘snowDisplayOptionChanged’:
snow.c:613: error: incompatible type for argument 2 of ‘compAddTimeout’
snow.c:613: error: too many arguments to function ‘compAddTimeout’
make: *** [build/snow.lo] Error 1
cvnico@bitchslaptop:~/compiz/snow$ cd
cvnico@bitchslaptop:~$ cd compiz/snowglobe
cvnico@bitchslaptop:~/compiz/snowglobe$ make
convert : snowglobe.xml.in -> build/snowglobe.xml
bcop'ing : build/snowglobe.xml -> build/snowglobe_options.h
bcop'ing : build/snowglobe.xml -> build/snowglobe_options.c
schema : build/snowglobe.xml -> build/compiz-snowglobe.schema
compiling : snowman.c -> build/snowman.lo
compiling : snowglobe.c -> build/snowglobe.lo
compiling : movement.c -> build/movement.lo
compiling : water.c -> build/water.lo
compiling : snowflake.c -> build/snowflake.lo
compiling : build/snowglobe_options.c -> build/snowglobe_options.lo
linking : build/libsnowglobe.la
cvnico@bitchslaptop:~/compiz/snowglobe$ make install
install : /home/cvnico/.compiz/plugins/libsnowglobe.so
install : /home/cvnico/.compiz/metadata/snowglobe.xml
install : build/compiz-snowglobe.schema
cvnico@bitchslaptop:~/compiz/snowglobe$ cd
cvnico@bitchslaptop:~$ cd compiz/stars
cvnico@bitchslaptop:~/compiz/stars$ make
convert : star.xml.in -> build/star.xml
bcop'ing : build/star.xml -> build/star_options.h
bcop'ing : build/star.xml -> build/star_options.c
schema : build/star.xml -> build/compiz-star.schema
compiling : star.c -> build/star.lostar.c: In function ‘snowInitScreen’:
star.c:589: error: incompatible type for argument 2 of ‘compAddTimeout’
star.c:589: error: too many arguments to function ‘compAddTimeout’
star.c: In function ‘snowDisplayOptionChanged’:
star.c:656: error: incompatible type for argument 2 of ‘compAddTimeout’
star.c:656: error: too many arguments to function ‘compAddTimeout’
make: *** [build/star.lo] Error 1
cvnico@bitchslaptop:~/compiz/stars$ make install
compiling : star.c -> build/star.lostar.c: In function ‘snowInitScreen’:
star.c:589: error: incompatible type for argument 2 of ‘compAddTimeout’
star.c:589: error: too many arguments to function ‘compAddTimeout’
star.c: In function ‘snowDisplayOptionChanged’:
star.c:656: error: incompatible type for argument 2 of ‘compAddTimeout’
star.c:656: error: too many arguments to function ‘compAddTimeout’
make: *** [build/star.lo] Error 1
cvnico@bitchslaptop:~/compiz/stars$ cd
cvnico@bitchslaptop:~$ cd compiz/tile
cvnico@bitchslaptop:~/compiz/tile$ make
convert : tile.xml.in -> build/tile.xml
bcop'ing : build/tile.xml -> build/tile_options.h
bcop'ing : build/tile.xml -> build/tile_options.c
schema : build/tile.xml -> build/compiz-tile.schema
compiling : tile.c -> build/tile.lo
compiling : build/tile_options.c -> build/tile_options.lo
linking : build/libtile.la
cvnico@bitchslaptop:~/compiz/tile$ make install
install : /home/cvnico/.compiz/plugins/libtile.so
install : /home/cvnico/.compiz/metadata/tile.xml
install : build/compiz-tile.schema
cvnico@bitchslaptop:~/compiz/tile$ cd
cvnico@bitchslaptop:~$ cd compiz/wallpaper
cvnico@bitchslaptop:~/compiz/wallpaper$ make
convert : wallpaper.xml.in -> build/wallpaper.xml
bcop'ing : build/wallpaper.xml -> build/wallpaper_options.h
bcop'ing : build/wallpaper.xml -> build/wallpaper_options.c
schema : build/wallpaper.xml -> build/compiz-wallpaper.schema
compiling : wallpaper.c -> build/wallpaper.lo
compiling : build/wallpaper_options.c -> build/wallpaper_options.lo
linking : build/libwallpaper.la
cvnico@bitchslaptop:~/compiz/wallpaper$ make install
install : /home/cvnico/.compiz/plugins/libwallpaper.so
install : /home/cvnico/.compiz/metadata/wallpaper.xml
install : build/compiz-wallpaper.schema
cvnico@bitchslaptop:~/compiz/wallpaper$

Anatoly said...

Hello Nicoline,
I think that the reason is that the screensaver plugin requires a newer compiz version.
When you used the script you got the latest version of the screensaver, but you compiz is still on the default ubuntu version.

I am now in the process of trying to find a way to get the latest version in compiz. If all goes well I will write a new how-to.

Anatoly said...

By the way, the screensaver plugin is available in the official repository. If you installed all the extra packages i recommended you have it already installed.

Unknown said...

GENIUS! add your your 1300 lines of fail onto a nice comment! SMART.

anyway
compiz-bcop
is now
compiz-fusion-bcop