Home Forums Wiki Doc Install Extras Screenshots IRC Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock Home
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)

Last users


JGuerette (#6447)

chinaheart (#6446)

robert.j.arthur (#6445)

frug (#6444)

nishv (#6443)

Support Us

Flattr this


Glx-Dock / Cairo-Dock

A quick overview

Cairo-Dock is a desktop interface that takes the shape of docks, desklets, panel, etc

It is designed to be light, fast and customizable, and is desktop-agnostic.

It has a powerful DBus interface, to be controlled from a terminal or another application.
Features can be added by plug-ins or applets, and applets can be written in C or in any language.
Most actions can be done from keyboard.


Cairo-Dock implements the following protocols and standards:

Cairo-Dock supports the following interfaces:

As well as interfaces provided by several well-known applications:
  • Pidgin, XChat, Tomboy/GNote, Transmission, Deluge, KTorrent, GTG, Thunderbird, Lifearea, Gnomenu/Cardapio
or websites:
  • weather.com, Twitter/Indenti.ca, GoogleTranslate

A dock for Wayland
Cairo-Dock has now a basic Wayland support.
Don't jump for joy too fast, it's really as basic as you can get.
But it highlights some interesting points, as a developper and as an user.

Cairo-Dock in Weston 1.5, with some desklets

Cairo-Dock in Weston 1.5 with the Applications Menu

What's nice

The dock and the overall desktop is quite fluid with the free drivers.
For the end-user though, but Weston is more a proof of concept and not meant to be used as your daily environment.
For the developpers however, Wayland is quite attractive, mainly because the dreadful X server-client message mechanism has been replaced by a clean collection of proxy objects (which also means it's a lot easier to extend the protocol).

What's wrong

Window placement
The biggest concern I have is that there is no window placement on the client side: an application can't position its window(s) to a given place on the desktop.
This is a serious issue: for instance, desktop widgets can't be placed on the desktop, you have to move them manually each time you start a session.
For the developpers, it means we have to reverse-engineer the placement algorithms of every applications to use relative coordinates (for instance, to position a menu at a given place).

Which is leading us towards some ugly hack, like adding a 'set_panel_position' method, to allow a panel to be placed where it wants (at some predefined positions).

Also, no equivalent of strut partial (the zone that maximized windows can't overlap); Weston supposes that a panel automatically defines a strut given by its dimensions, which is obviously wrong in the case of an auto-hiding panel or a dock that can zoom.
Hence maximized windows being not placed correctly.

It seems Wayland wants to outsmart the applications developpers, and so far the result is not convincing at all.

The desktop shell
The other big concern is about the desktop shell.
It's the interface the compositor offers to applications wanting to interact with the desktop.
As much the compositor part is refined, as much this part is very much in-progress.

For instance, there is still no way to access the list of surfaces (=windows) and manipulate them from another application, which means no taskbar.
Or more precisely, only the Compositor can do the job.
And not only this job, but a lot of others too, like changing the resolution, adding/removing a workspace dynamically, etc.
Note also that having global shortkeys is impossible (as you can see on the pictures in the terminal).
A wayland compositor just doesn't expose enough of its internals (is it for security ? it's way too extreme then), making it a hostile environment for third-party tools.

Because of that, Mir may be ready for the desktop before Wayland (at least they have already planned to expose a taskbar API through BAMF), which makes their move much more understandable.

I'll let aside some other bugs I could see, like artefacts in the menus (visible on the pictures), wrong mouse position on Leave/Enter events, or EGL being linked to GLX only in the current packages; I'm confident that they will be fixed quickly.


We definitely need a replacement for X (it doesn't fit well on smartphones, cars, etc), but on the desktop Wayland is currently missing too many features. Let's not forget that the good reasons (like security) will be of no help if people don't use the product. And they will not if the user experience is not superior or equal as with X (and I'm not talking about having smooth transitions between the desktop and the tty consoles).

Also, let's hope that all these efforts put into porting everything to Wayland will not eclipse some other problems, cheaper and yet important, like Gnome adopting the StatusNotifier protocol, or having a portable global menu.

Want to test ?
Install the latest build of Cairo-Dock, Wayland and Weston.
Add your user to the weston-launch group, then go to tty1, and type weston-launch.
Open a terminal.
Now start a session bus if not already done (this is not required, but several applets make use of Dbus):
/usr/bin/dbus-daemon --session --address=unix:path=/tmp/dbus-session-socket&

and export the socket name:
export DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-session-socket

Finally, launch the dock:

fabounet, Saturday 21 June 2014 à 14:15

See all previous news

Cairo-Dock has started in July 2007, when Fabounet proposed a first version on the ubuntu-fr.org forum.

Since then, new versions have followed at an intensive pace with many innovative features like sub-docks, desklets or OpenGL effects.
Many people have joined the project, each one bringing its competences in graphics(themes), applets development, or translation.

One can always make the dock better. You are invited to take part and make proposals for future evolutions on the forum !

See here to follow the progress of the work.

Friendly, the Cairo-dock's team

Glx-Dock / Cairo-Dock Home Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.