I think it is fair to say that the Desktop Cube has been one of Linux’s iconic features. The cube provided both an easy way to visualise workspaces as well as a nice bit of eye-candy when using it.

However, in the current beta of Natty Narwhal, the cube is not available. The Unity plugin requires the “largedesktop” feature which is provided by Desktop Wall, an alternative workspace switcher which conflicts with the cube, and as a result trying to enable it results in the following message. Also, if you disable Unity, unsurprisingly Unity will die.

So what can you do?

Initially Unity depended on the wall plugin directly. Due to a bug report, they have changed this requirement to simply “largedesktop.” As a result it is possible to have Unity and Cube running without modifying the Unity plugin, previously you had to remove the Wall plugin requirement from Unity in the xml file.

The problem now seems to be that in order to enable the Cube, you have to disable the Wall, which can’t be done without disabling Unity, which then crashes the Unity desktop.

Instead what you’ll need to do is provide Compiz with a profile with the Cube already enabled.

It is probably worth pointing out that the fact the bug report has been recognized means that this work around will hopefully soon be obsolete. Previously the bug was just considered an opinion.

Enough already, how do I get the cube?

If you haven’t already, install the CompizConfig Settings Manager

  • sudo apt-get install compizconfig-settings-manager

Open CompizConfig Settings Manager and go to the “Preferences” page which can be found near the bottom, on the left hand side. Under the “Profile & Backend” tab, click on the Export button and save the profile as something like “compiz_with_wall”. Select yes when it asks if you want to save default settings.

Next, open up your file manager and navigate to the folder you exported the compiz settings to. Make a copy of the file compiz_with_wall.profile and call it compiz_with_cube.profile, the filename is not important as long as you don’t mix them up.

Open up this file in text editor, then when it has opened, search for “s0_active_plugins” (Control + F). It should find a line with a list of enabled plugins. In this list, where it says “…;wall;…”, change that to “…;cube;rotate;…”.

This will enable the Desktop Cube, however, you still have the 2×2 layout the Wall was set up as, not the conventional 4×1 layout for the Cube. As a result only the upper 2 workspaces will be available. This can be changed later under general settings, but it is more convenient to change it in the config file.

Do another search (Control + F), this time for the phrase “s0_hsize”. It should find the following:

s0_hsize = 2
s0_vsize = 2

Change this to:
s0_hsize = 4
s0_vsize = 1

Now save and close the file.

Go back into CompizConfig and next to the Export button you used before, there should be one which reads “Import as…”. Select this and open the file you just edited, compiz_with_cube.profile.

Where it says “Please enter a name for the new profile:”, enter, “unity”. Then select add. At this point compiz will probably restart, don’t worry, this is normal… I think. Once Compiz has reloaded, you can test your new configuration with “Control + Alt + Left” to change workspaces.

You can get the wall back by loading the compiz_with_wall.profile file in the same way.

I’m not a fan of editing config files

If you don’t like editing config files then you can download some pre-edited config files which I have created from the newest daily build of natty, as of writing. Please note that theses files are the default Compiz settings. Any other changes you have made to Compiz will be lost.

Extract these files to your home folder, or somewhere where you will be able to find them.

Next you need CompizConfig Settings Manager. If you don’t already have it, open the Ubuntu Software Centre and search for “compizconfig”. Install the “Advanced Desktop Effects Settings (ccsm)” program. Search for compiz in Unity and run “CompizConfig Settings Manager”

When it has opened, go to the “Preferences” page, you will find a link to this on the left hand side, near the bottom. Click on the button which reads “Import as…”. From the open dialog, open the file you extracted called “compiz_with_cube.profile”. When it asks you to enter a name for the profile, type “unity”. Compiz will probably restart so you may see some odd stuff happening on screen, don’t worry it should go back to normal.

To revert to the wall (default) workspace switcher, just do exactly the same as above, except with the file “compiz_with_wall.profile”

Update: An alternative gui way

Many thanks to Matt Richardson for this method.

If you would like to get the cube without doing anything with config files, you can disable the conflict handling system.

Go to “Preferences”, at the bottom on the left-hand-side. Then deselect “Automatic plugin sorting”. You will get a warning message, select “Yes”

Now find the plugins “cube” and “rotate” in the left hand list of disabled plugins. Select them, individually and click on the right arrow to enable them.

Next find the plugin “wall” in the right hand list of enabled plugins. Select it and click on the left arrow to disable it.

Now have have set the plugins, reselect the “Automatic plugin sorting” checkbox and go back to the main page.

Click on the “General Settings” icon, which is usually near the top of the page. When this has loaded, go to the “Desktop Size” tab and change “Vertical Virtual Size” to 1 and “Horizontal Virtual Size” to 4 (or however many workspaces you want).

The panel shadow can be removed by replacing /usr/share/unity/3/panel-shadow.png with an invisible image.

Source: htorque – Ask Ubuntu

As always, remember that Natty is still in beta and hence is likely to be unstable. It is always possible that changes like these will make it more unstable. For me this mod causes a crash when trying to edit the Unity plugin in the CompizConfig Settings Manager, otherwise I have noticed no other problems.

Good luck!

How To compiz cube natty Unity