tricks to use Cairo-Dock

Here are some few tricks to use Cairo-Dock efficiently within Unity.

Note: You need ccsm to configure Compiz and Unity:

sudo apt-get install compizconfig-settings-manager

Turn off Unity

Notes

This method turns off Unity completely, which means the left bar, the top panel, and the Dash and Hud.
Note that the Recent-Events applet contains most of the Dash features. About the Hud, it will maybe be part of the next version of Cairo-Dock
Also note the Global-menu applet can handle the global-menu and the window buttons in the dock. (only if you’re using the development version)
Another good alternative to the Dash is Synapse (available in the repositories).
Finally, most of the indicators are also available in the dock (Sound-menu, Messaging-menu, etc).

Cairo-Dock Session

The best way to do that is to use our Cairo-Dock Session.
Note that this also disable of lot (and by lot I really mean it) of daemons that you probably never use, so you get a very light session.

Fallback method

You can also disable Unity in 1 click like this but we do NOT recommend that, it’s much better to use the Cairo-Dock session but if there is a problem:

  • Open ccsm (see the introduction)
  • Find the Unity plug-in, and disable it (if the check button is missing, enter the unity plug-in and then you will have it in the left pane).

FAQ

Enabling alt+Tab

If you notice that alt+tab is not working any more (or anything else), open ccsm (you’ll maybe need to install this package: compizconfig-settings-manager), and enable the extensions you need.
For instance, alt-tab is handled by the Shift-switcher extension or the Application switcher extension.
If you don’t have them, just install this package: compiz-plugins.

No window decorations

If you don’t see any window decorations (at the top of all windows), it’s maybe because this “Windows Decoration” Compiz’s plugin is disabled. Simply open the CCSM (more info here above) and enable this plugin.

Trigger the Exposé of windows and desktops

The Switcher and Show-desktop applets can trigger this event (on middle-click).
Also, when grouping the windows of a given application in a sub-dock (an option of the dock’s taskbar), clicking on the main icon will trigger the Exposé of all the windows of the given application.
To allow that, the dock needs to talk to Compiz through DBus.
Open ccsm (see the introduction).
Look for the Dbus plug-in. If it’s not present, you have to install it (it’s in the package compiz-plugins).
Now enable it. That’s all

Remove the left Unity dock/bar

If you want to only use the top panel of Unity and remove the dock on the left, you can not remove it… but you can hide it!
Open ccsm (see the introduction) or Unity Tweak Tool.
Enter the Unity plug-in, set the “Hide launcher” to “Autohide” and the “Reveal trigger” to “Top left corner”.
Now go to the 3rd tab (“Experimental”) and set the “Launcher reveal edge responsiveness” to the minimum (0.2).
You should probably not be annoyed by the left bar again

Make a launcher to show the Dash

If you have removed the left bar as explained above, you might want to have a launcher to show the Dash.
It’s easy: add a custom launcher (right-click on the dock -> cairo-dock -> add), and set the command to <Super>.
Set an image and a name at your convenience, and you’re done.

Remove the top panel

Unfortunately, that’s not possible except if you turn off Unity completely (see here above).
However, you can make it empty and transparent, and place a dock above.
The top panel holds the global menu and indicators. So we’ll disable them.
(About the global menu, cairo-dock has an applet to handle this. Unfortunately the global menu on Ubuntu is not very convenient because a windows that is not maximized still has its menu at the top of the screen).
So let’s disable it: create a file /etc/X11/Xsession.d/90no_global_menu as root. In this file, write:

unset UBUNTU_MENUPROXY

Save and close, and restart the session.
To disable the indicators, we’ll set the service as non-executable:

sudo chmod -x /usr/lib/unity/unity-panel-service
pkill unity-panel-service

Note that you’ll have to do that each time it is updated from the update-manager.
Ok, so the top panel is now empty, we can make it transparent:
Open ccsm (see the introduction).
Enter the Unity plug-in, go to the 3rd tab (“Experimental”) and set the “Panel Opacity” to 0.
It is now transparent. If a shadow remains, open ccsm, go to Window decorations, set the window shadow filter from “any” to “!dock”.
You can now place a dock at the top; the to ppanel is still here though, so on startup it might be above the dock; clicking on the dock will make it goes above.
Note: if you’re adventurous, here is a hack to disable it completely while keeping Dash and Hud
First install all the dependencies:

sudo apt-get install libstartup-notification0-dev libbamf3-dev libnux-3.0-dev compiz-dev libdee-dev libunity-misc-dev libsigc++-2.0-dev libjson-glib-dev libnotify-dev libunity-protocol-private0 libgeis-dev xsltproc

Grab the sources of Unity (from https://launchpad.net/unity).
Unpack and go to the folder.
Edit the file panel/PanelController.cpp, look for the function OnScreenChanged, and on the first line, add a return:

void Controller::Impl::OnScreenChanged(unsigned int primary_monitor,
std::vector<nux::Geometry>& monitors,
Introspectable *iobj)
{
return;
std::vector<BaseWindowPtr>::iterator it;

Now open a terminal, go to the sources folder, and do the usual building process:

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

Finally, restart Unity:

compiz –replace&