Installing Compiz Reloaded

:bangbang: Things to know before installing

Works for 19.10!
May cause isssues on 20.04.:radioactive: :

:radioactive: Information for Focal Fossa

prerequisites needs editing to be compatible. This is explained further down this guide. There are issues with this, beware as this may not work on all machines.

:warning: Information for Eoan Ermine

Using the latest Ubuntu as of this edit? Excellent. Skip right to installation:arrow_up: since Compiz isn't a thing that ships with Ubuntu MATE anymore. (Sadly, off goes Compton too, but hey, priorities.)

:arrow_up: If you upgraded to Eoan, you will still have residual 19.04 assets like Compiz 0.9 installed, so the above only really applies to people starting fresh with 19.10. If this is you, treat it like 19.04.

If you're uncomfortable making wide-sweeping changes to your operating system's pre-installed content, then don't do this. It's as simple as that.

For most people, desktop effects like what Compiz Reloaded provide are not worth the long-term hassle of needing to reinstall every Ubuntu update, and it sort of condemns you to doing this all over again per major update just so your desktop does not break:crossed_swords: . More information about how to prevent issues between system upgrades are presented in the section When upgrading Ubuntu.

If you're trying to reinstall this and for some reason you get errors, try to install dependent packages and autocompleting with <Tab> in terminal until you find the package that is unavailable. This may happen on occasion, especially if the build routines for the copy of Compiz 0.8 being compiled uses packages older than what is available as of present, which can be had from package archives for either your main distribution or root distribution.

:ubuntu_mate: Introduction

If you're really interested, expand this.

Compiz Reloaded is certainly a passion project. Combining together the previous development of Compiz 0.8 with the present combined efforts of the MATE team and Compiz community, with esoteric compiz scripts you previously had to scour the web for, entirely maintained by enthusiasts who believe their community-maintained backport still functions better, the "Compositor that refuses to die" presents itself as the one downgrade you must perform to get the most out of it because Compiz 0.9 was published by Canonical expressly for Unity, and whatever else you could do with it was gravy but the old plugins that hardcore users come to expect way back pre-Unity hadn't been updated to use the new Compiz for various technical reasons.

Before, you had to figure out how to compile it all together yourself. But lots of people aren't that smart to compile it all themselves, which left the fancy stuff to the geeks who really knew what they were doing with time to burn. Sounds like a lot of people, doesn't it?[/s] Jokes aside, while previously backporting was out of reach for most people, it's now been super-simplified since you don't need to go about searching for plugins to make the experience worthwhile.

It also helps that with Ubuntu MATE, there's no Unity to be had, so you don't need to worry about uninstalling that before you do this, as replacing Compiz 0.9 with this backport will most certainly break Unity. When you are finished, you'll have the following suite of software;
Compiz 0.8.x (compiz)
CompizConfig Settings Manager for Compiz 0.8.x (ccsm)
Emerald window decorator (emerald)
Emerald Theme Manager (emerald-theme-manager)

:arrow_down: Preparing for downgrade

This is rather destructive. When finished, you'll have gutted your present install of Compiz 0.9, which may also remove ubuntu-mate-desktop.:dagger: ubuntu-mate-desktop is only a metapackage, and it is not required for your system to function, but you must not install that package, or any packages associated with Compiz 0.9 and its dependencies thereafter.

:dagger: That use to be the case in older versions. In newer versions Compiz is either entirely separate or excluded completely, which means the above will not remove the metapackage. Any further discussion about this being an issue should be ignored for newer Ubuntu versions.

Before you do this, you really should open mate-tweak and under the Windows section, change your window manager to Marco if you're using Compiz 0.9 presently.

Perform the following to remove Compiz completely:

:heavy_dollar_sign: In x-terminal-emulator:

sudo apt-get --purge autoremove emerald #In case you have it
sudo apt-get --purge autoremove 'compiz*' libdecoration0

:install: Installation / Downgrading

You'll need to fetch the scripts from git which allow you to install this:pencil: :

:heavy_dollar_sign: In x-terminal-emulator:

sudo apt-get install git #You really should have this already
mkdir -p ~/git/compiz && cd ~/git/compiz #Modify to preference for organization
git clone git://northfield.ws/compiz/scripts && cd scripts
git checkout master #Just in case, though probably entirely unnecessary
./go

:radioactive: There are still issues with 20.04. While this information is preserved for integrity and explanation, this advice should not be followed until all 20.04 issues are resolved. When resolved, this warning will be removed with updated information. Thank you for understanding.

:pencil: scripts/prerequisites requires modification in 20.04 to be useful. To install Compiz 0.8 in 20.04, the following changes must be made in prerequisites:

:spiral_notepad: With text eidtor of preference, in prerequisites @ line 37:
Replace:

dependencies+="python-dev "

With:snake: :

dependencies+="python-dev-is-python2 "

:snake: Beware, python-dev-is-python3 breaks everything. I will let Scott know about this and see what he's going to do about it.

Once modified and saved, you can execute ./go without encountering any issues.

When scripts/go is executed, you'll see an absolute freightload of text. If you want to see all of it, you'll have to write it somewhere on your system; Instead of ./go on its own, you might want to do this;

:heavy_dollar_sign: In x-terminal-emulator:

./go > ~/compiz-install.log #Modify filepath and intended filename to preference.

When it is done compiling and you have control of your terminal back, here's all you need to do for testing, in list order;

  • If you feel you must, check version; compiz --version (Should be 0.8.*)
  • Check if compizconfig-settings-manager from the Compiz Reloaded git works; ccsm
  • Check if Compiz works; compiz --replace &
  • Return to Marco; marco --replace &
  • Enable at login in one of two ways;
    • Open mate-tweak and specify to use Compiz; compiz is version 0.8 at this point
    • Make a new launcher in mate-session-properties, executing compiz --replace so Marco remains active as fallback

Pick either method for running Compiz at login, and that's all there is to it. If you choose to use mate-tweak and look again afterward, you may notice this message;
"You are currently using an unknown and unsupported window manager.
Thus we cannot guarantee that changes mare here will be effective."

...Alright, fine and dandy, Compiz still executes when you type in compiz so that's no problem.

:x: Post-install failure

If it so happens everything failed to install correctly the first time and ccsm happens to either segfault or show no icons for most plugins (like what happened to me one time), then you can do the following as a "Nuke it from orbit" redo;

:fast_forward: This assumes you're in /scripts already, where you executed ./go.

:heavy_dollar_sign: In x-terminal-emulator:

./uninstall #Remove it...
sudo rm -rf /usr/lib/compiz /usr/include/compiz /usr/share/compiz /usr/share/man/man1/compiz.1.gz /usr/lib/emerald/ /usr/include/emerald /usr/share/emerald /usr/share/ccsm #And its associated files since uninstall doesn't clean up after itself that well.
sudo apt-get install compiz
sudo apt-get --purge autoremove 'compiz*' libdecoration0

Then you can give it another ./go to see if the above helps install Compiz Reloaded correctly.

:warning: Caveats

I found that backporting Compiz might interfere with the dock applet pre-supplied in 16.04. If you rely on it for your workflow, do not attempt this quite yet. I am still investigating the issue as best I can.

:gear: Post-install configuration

There is a lot of stuff here. Expand this, and your mind.

ccsm, or the compizconfig-settings-manager for short allows for modifying how Compiz functions through a GUI. Since there may still be some people new to compiz, here are some plugins that may be of interest;

Extra WM Actions

Because Emerald now supports a "Super maximize" toggle which removes window decoration, you need to enable this plugin and set the shortcut for toggling fullscreen to disable "Super maximize" mode.

Window Decoration + Place WIndows + Window Rules

Specify either of the following in Window Decoration as commands;

  • emerald
    Requires emerald-theme-manager to modify the titlebar
    Can be used with Marco, if one desires, though it may require adding emerald --replace in mate-session-properties
    Previously exclusive to the Beryl window manager until Beryl merged with Compiz to make Compiz Fusion; Themes from Beryl-oriented websites during its one year of independence should still function with it.
  • gtk-window-decorator
    Allows for mate-appearance-properties to modify the titlebar
    Most often associated with the Metacity window manager, back when vanilla Ubuntu still used GTK2, but will also work for Marco.

For some windows where decoration makes no sense, yet there is no option to remove said decoration, you can also add exceptions for which windows are decorated.

Place Windows allows users to define how a window is positioned when opened on the present workspace and can also define which windows have specific positioning, and which workspace (in numerical order; Requires experimentation) some windows appear at.

Window Rules are additional options for windows. If you wanted to use a screensaver as a desktop background, for instance, you could set rules to fullscreen a window that cannot be moved or resized, and remove decoration of that window via Window Decoration.

Wobbly Windows

You can specify a shortcut for Snap Windows so you can have attraction to other windows and screen edges without the Snapping Windows plugin enabled, which will demand to supersede Wobbly Windows. You can even invert this behaviour so the shortcut disables snapping, rather than enabling it.

Unfortunately, it appears the snapping behaviour disappears if you don't allow for moved windows to wobble, but that may be a failure to configure it properly. This will be updated if I can figure it out.

Expo + Desktop Wall

These two plugins compliment each other, as Desktop Wall provides a visual indication for when you move to a new workspace, and acts as a short-term mini-map larger than your workspace switcher in taskbar, without the need to always zoom out to see all of your workspaces at once.

Desktop Cube + Rotate Cube + Cube Reflection and Deformation + 3D Windows

These four plugins compliment each other, as while Desktop Cube is enabled to render all of your desktops in 3D space, Rotate Cube allows you to rotate the cube freely. Cube Reflection and Deformation allows you to manipulate the contours of the cube, so much as to make your 3D workspace a sphere if you really wanted, and 3D Windows gives stacked windows depth, by elevating stacked windows to a specified height away from one another.

Static Windows

This now works with Expo!
This addon works with both Desktop Cube and Expo. Static windows are rendered as a texture that is above other active elements, and whatever windows defined will not be affected by manipulating the cube or (should not but does affect windows within) Expo.

By default, all docks (such as mate-panel, docky, dockbar etc) will not be rendered in the cube, instead appearing as if rendered on a top layer. If you find everything in your desktop rotating being a distraction, or if there is an important sticky window you don't want affected by manipulation of your 3D / Extended 2D workspace, then this is the plugin you want.

Magnifier + Zoom Desktop + Enhanced Zoom Desktop

All of these functions are enhancers that will enlarge either a portion of the desktop, or the entire desktop depending on how you want to magnify it. All three of these functions are similar to Windows 8's default magnifier program.

Any of the five window switchers in Window Management

There vary in effect and functionality. Try them out, as they range from basic and plain to ornate and fancy. In order from what I believe is most basic to most advanced;

  • Application switcher
    Basic, ordinary, does the job.
  • Static application switcher
    A more personalized and capable version of the basic Application Switcher.
  • Ring switcher
    A switcher that arranges your open windows into a ring menu.
  • Stack Window Switcher
    A switcher that acts as a flat version of the 3D Windows plugin expressly for switching between applications.
  • Shift Window Switcher
    A switcher that acts like OS X's Cover Flow, Windows Vista's Aero Switcher, or anything in between.

You have plenty of options, so take your time with this. You could (in theory) use multiple switchers, but since they all do the same thing, you might be better off sticking to one.

All the other things

There is too much stuff to cover here, but a lot of it might be useful to you. Some plugins will also influence how windows appear when certain actions are taking place, some plugins affect the appearance of the desktop or of individual windows, some are dependent of other plugins, and must be enabled to show extra options in the plugins they depend on. Due to all of this complexity, something is bound to break, and when it does, hopefully you can find yourself back to the Marco compositor so you can resolve issues via ccsm, or you may have to trash directory ~/.config/compiz to get your desktop back.

:arrow_up: When upgrading Ubuntu

:crossed_swords: Compiz no longer ships with 19.10, so if you're starting with that then none of this matters and you can upgrade in the future while retaining your Compiz 0.8 installation. From 19.10 onward, there is no reason to follow any of the below advice, which makes this way easier.

Don't forget, to prevent any and all issues with upgrading Ubuntu, before you commit, change your window manager back to Marco. This will ensure you still have a desktop when all is said and done, and then you'll need to re-execute all of the above before switching back to Compiz, at least until an underlying library breaks this, which in all likelihood probably won't happen, but you never know with Canonical.

:information_source: Information sources

http://blog.northfield.ws/compiz-release-announcement-0-8-12/
All the time I spent with soreau in #compiz-reloaded when I was trying to figure this crap out.

8 Likes

Alternatively, you can use marco as a fallback; Leave everything alone or revert to marco, but then add a new launcher in mate-session-properties, so it runs compiz --replace after sign-in.

This way, if things go wrong post-update you can delete it in terminal; User-made post-login launchers are located in ~/.config/autostart. Afterward marco will take over.

Thanks :slight_smile: You’re the best!! Thanks for helping me out!! My tutorial was awful.

You would also need to configure compiz after the installation process.

Hey, at least you tried. That’s better than what I did as I couldn’t even had figured out how to install it in ubuntu MATE without soreau’s help.

We’re just going through Reloaded’s breaking-in period where all the information for different systems needs to be written up. If it wasn’t for you, I’m sure Compiz Reloaded would had went under my radar. (Or maybe not as I might had take a look at Spatry’s videos about the subject but props to you for raising awareness.)

1 Like

Configuration is a given with Compiz. Most people who care about this began using Ubuntu pre-Unity.

1 Like

I believe I added enough guff to this thread.

1 Like

Ok. Sorry I missed it :slight_smile: . Anyway I found something for debian Distros. http://compiz-debian.tuxfamily.org/

I was referring to the OP I recently updated with some basic Compiz plugin stuff. Anyway, I checked that out before but I think something was stopping be from using it earlier.

I’ll take another peek at it.

Edit: This happens;
W: The repository 'http://download.tuxfamily.org/compiz/debian xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. E: Failed to fetch http://download.tuxfamily.org/compiz/debian/dists/xenial/main/binary-amd64/Packages 404 Not Found [IP: 88.191.250.171 80]

Expo + Static works. If you already installed this, then do the following;
cd ~/src/compiz-reloaded/compiz-plugins-experimental && git pull && make && sudo make install

That should rebuild all of the “Experimental” plugins (including static), which will update key files to make static work perfectly with not just Expo, but also Enhanced Zoom Desktop.

1 Like

Hey, i can’t start compiz, get this error
kurokid@kurokid-pc:~$ compiz --replace --debug compiz (core) - Debug: Could not stat() file /home/kurokid/.compiz/plugins/libcore.so : No such file or directory compiz (core) - Debug: Could not stat() file /usr/lib/compiz/libcore.so : No such file or directory compiz (core) - Error: Another composite manager is already running on screen: 0 compiz (core) - Fatal: No manageable screens found on display :0

I would suggest referring to section Post-install failure and following the removal advice therein up to reinstalling Compiz 0.9. If Compiz 0.9 works, revert to Marco, remove Compiz completely (with purge), run ./go again and seeing if that fixes your issue.

If you’ve already done this, or if you’ve attempted install from live and there are still issues, try playing around with ccsm after installing Compiz 0.8 and see if anything in Workarounds might help.

After follow instruction in Post-install failure, still no luck, compiz 0.9 work, compiz 0.8 same error message.

I do not know what you are doing wrong then. Maybe later on you can message soreau in irc.freenode.net/#compiz and see if he cannot assist you. (For access in your web browser, use Freenode’s qWebIRC client or access the channel directly via KiwiIRC.)

He has Teamviewer, so maybe you can provide him your session details for that after you install Teamviewer from http://teamviewer.com and get assistance from the publisher himself.

If he can’t do that, I can; best way to get in touch with me these days outside of the forum is on Discord, though I will be AFK for a fair bit of the day later on. (No registration required; just skip setup.)

There are a few things you forgot, There are two Marco settings, One is Marco (No Compositor), and the other is Marco (Compositing). Which one did you use? The problem I noticed in using Marco (Compositing) is that it interferes with Compiz Which is also as you know a Compositing Window Manager and it interferes at start up if Marco (Compositing) is still selected. Symptoms are usually the Mate Panel does not load correctly or not at all, Selecting Marco (No Compositor) fixes this.
Also, keep in mind, the scripts that were originally posted were just fine and works like a charm. That is, if you had only purged Compiz 0.9 first completely before installing Compiz Revisited. Then again, it is always a wise thing to do by uninstalling, completely removing, purging, and deleting any related source codes in your source list before installing any kind of program or installing over something. Just start with a clean system. Also, one does not need to uninstall the Mate desk top, it is only replaced by compiz by using the Fusion Icon to start compiz and toggle between the two window managers. You might know this already, but in your posts I had a feeling you might not. Anyways, hope this clears up a lot of confusion. Of course, if desired of course, the Mate Desktop Environment can be totally removed and only compiz used, but it is not for the faint hearted. Just trying to help, no offense. Cheers.

1 Like

Thanks!! It is awesome!
Works well on ubuntu mate 16.04
But additional mouse keys (back/forward) don’t work with compiz. How can I fix it?

You need to see if it’s even being picked up by the system first. You can do this with xev and just push the buttons without moving the mouse (since xev will output mouse movement too).

Short of that, if you know it already works through other use, see if they’re bound to something else, or just experiment and figure out which button CCSM recognizes those mouse clicks as. Else, you might (and I am not sure about this) need to use xmodmap or similar to rebind the buttons as something “safe” not used by any programs you already have and lack devices for, such as any function key past F12 (13-24).

Then, after rebinding, you will need to remap functions you already used those mouse buttons for. If you use Firefox there is an extension still only acquired through the Mozillazine forums (to my knowledge) called Keyconfig, everything else, you’re at the mercy of the program developers.

Very informative :+1:

Thanks for the tutorial!

It works on 17.04 as well. :smiley:

Thanks for the tutorial. Unfortunately it didn’t really want to work for me so I ended up using this PPA here:

https://launchpad.net/~adamsmith/+archive/ubuntu/compiz-reloaded