Updated: October 2, 2019
In a perfect world, desktops are complete solutions. Alas, we live in a world that is far from perfect. If you look across different Linux desktop environments, only Plasma (and Unity) offer a fully consistent layout. Gnome requires modifications, and Xfce never mastered the dock idea that well.
Indeed, while testing Manjaro, I decided to retry my notion of a handsome Xfce desktop with a top panel featuring global menu and a pleasant dock at the bottom of the screen. In Gnome, the latter part would be satisfied using extensions, the likes of either Dash to Dock or Dash to Panel, Plasma would give you icons-only task manager or Latte, MATE would give you its own plankified dock version, and Xfce ... well. To that end, I decided to test and explore Cairo Dock. Hence, this article.
This is the first question you should ask. Linux being Linux, it has 10 solutions to every problem, almost all of them incomplete. The proof is in the pudding, because the simple desktop formula continues to elude most desktop environments. But I don't want to discuss the philosophy of that right now - you know my stance. The solution to the issue of not being able to have a compact and yet information-rich desktop-panel setup in Xfce meant I needed a dock. And this proved more difficult than I expected.
Once upon a time, there were many docks - Awn, Docky, Cairo, Plank. Awn disappeared, and so did Docky. Plank came to life, and seemingly, it was just what I needed, simple and effective. But quite often, I'd come across bugs and inconsistencies. In many an installation, Plank would not have a right-click menu through which I could access preferences (I had to run a separate command from the terminal). In other cases, it would crash when trying to rearrange icons (drag & drop). The bugs seem to have increased recently.
Then, new docks get born out of the ashes of open-source, like Latte or Icing. But some of these are restricted to specific desktop environments. Well, most are, actually. With Xfce, this pretty much leaves me with Cairo. And while I always found it to be perfectly functional, it's also the most complicated of them all. So in essence, this review is also a no-choice setup, but I'd like to make the best of it and talk about how one goes about setting up the Cairo Dock to be pretty, stylish and functional. This was all done in Manjaro Illyria, but the idea is relevant for different distros.
Cairo Dock can be overwhelming, because it comes with so many options and too many animations. The single bottom-placed dock you get by default features several sections, with separators, and one or two applets that are displaced around the desktop in their own individual spots. The keys to this clutter lie under the right mouse click. Choose any icon or spot in the dock. Right click.
You will have tons of options - the ability to close the app if running, maximize the window, make it into a launcher, which means pinning/anchoring the app to the dock (for pinned ones, you can remove them), change the icon, and also launch the dock configuration menu. It's a bit nerdy that both options are available. To make things worse, the Cairo-Dock sub-menu has its own dazzling array of options, like the ability to add new docks, add Cairo to the desktop session startup, lock icons, install plugins, and more. Why some of these options are here and not under the app-specific settings is puzzling. For instance, wouldn't icon lock work better in the previous menu?
Once you launch the Configure menu, you will have several highly detailed tabs to go through and adjust how the dock behaves. This can take a while, so be patient. Under Behaviour (notice hard-coded spelling), you can set the dock position, visibility (tons of options) for both the main dock and any sub-docks, tweak the taskbar and select any effects and animations you like for icons.
The Taskbar configuration is important - if you choose Integrated, it will show non-docked applications as icons you can turn into Launchers, and you can position them before or after your docked icons. If you choose none, you won't have a list of currently running applications.
Animations wise, you can also choose not to have any, but again, rather non-intuitively, you need to select a blank line above the other listed options - there's no title that says None. The list is also longer (or taller) than the actual number of available animations, so the scroll up and down can be somewhat of a hit and miss. Effects may not be available for the selected animation.
Under Appearance, you can change the style of the dock. Now annoyingly, you can't separately tweak the dock color, text color or notifications - it's all in one. If you want transparency, you will need to choose a custom color, and then move the slider accordingly. I found that a nice, transparent dock also means barely visible text against the desktop background. You can change the wallpaper, increase opacity or suffer in calm silence.
When you switch to Themes, the order of the tabs will change, to make things more confusing. I tried different themes, and I found most of them to be very mid-2000s - bling-blingy to the core, with an overload of transparency, gradients and animations. Hardly what I wanted or needed. Default it is. My changes were not saved, so I had to do some of the tweaks again.
Cairo Dock comes with a hefty repertoire of applets you can add to any one of the docks. These offer extra functionality, like sub-folder view, RSS reader, network and session control, and more. This is actually a rather useful and powerful aspect of the software. It's just the workflow is a bit clunky.
And if you ever feel you don't have enough options, you can tweak each applet individually. For example, in the current dock, you can change the position and size of any icon, integrate it into the dock (or yank it free), and quite a few other bits and pieces. For most people, this is an overkill.
After a while, I had a nice, pretty, functioning dock doing everything I needed. Well, almost.
Problems remain ...
There are some things that simply don't make sense. For example, the zoom effect also shows the name of the adjacent icons, and this creates visual clutter. Why not just display the name of the one that is under the mouse focus? The color issue remains, and I'd like to be able to only change the dock theme/style without affecting the notifications.
Cairo Dock is feature-rich, no scratch that, feature-ultra-rich dock software that allows you to adorn your desktop with any number of docks, however custom and fancy you like, replete with their own individual behavior, animations, themes, icons, and applets. Not for the weak or the impatient. But it surely does more than pretty much any other dock program out there. Very cool.
And yet, therein lies its weakness. Most people, if they need a dock, only want something simple and elegant. They want consistent behavior and pleasant, integrated theming. When it comes to using an Xfce desktop that has a dock-like behavior, Cairo provides the best (and only viable results), but it's also super-complicated and there are some outstanding visual issues that you just can't work around easily. In general, Cairo does wonders, it's a really mighty dock tool, but it's perhaps too powerful for its own good. Still, I think it's definitely worth using and testing, and I hope it will remain around, and maybe even get some fresh, modern themes. We're done.