About two weeks ago my work laptop died. The motherboard just bricked itself to pieces and there was no rescuing it. As my old machine was old and decrepit, and I was going to be replacing it with something with an entirely different hard drive profile I opted to do a clean install of Ubuntu 12.4. Previously I’ve been running Kubuntu 10.4 and it’s been high time to move on.
Why not 13.4 you ask? Well, I’m in my 30′s now which means I’m living on an accelerated time-space curve now. Time simply flows faster than it did when I was in my teens or twenties. For example, I recently refereed to an event that happened back in 2010 as “the other day” because that’s honestly how it felt to me. From that you can probably extrapolate that I am not a huge fan of upgrading my OS every other day (which is roughly how 6 months seems to me). I can hardly give half of a fuck what quirky adjective-animal combination is the most up-to-date one. I just want something semi-stable that is regularly patched, and that has a decent sized package library. I’ve ran non-LTS versions of the OS before, and I was always unpleasantly surprised when Canonical end-of-lifed them and “vanished” the repositories leaving me stranded every 6 months or so. To put it plainly, anything that is not an LTS is not worth my time.
12.4 ships with Unity – Cannonical’s new window manager and desktop environment. There has been a lot of discussion about it when it was first released, and it seems that Ubuntu community has been torn apart between those who like it and those who hate it. Previously I didn’t really have an opinion in the discussion, because I haven’t really used it for anything substantial. I of course checked it out back when it was new, and it looked kinda sleek and a tad bit showy for my tastes but I didn’t outright hate it.
With my switch to 12.4 I decided to give it a fair shake and see how it performs in regular day-to-day usage. Unfortunately, it turns out that all the haters were right: Unity is not that great. It is style over substance. It seems to try so hard to be OSX like that it makes things that used to be simple needlessly difficult.
Here are my biggest complaints about Unity in order of severity:
- Poor performance
- No functional pager
- Terrible application awareness
Let me tackle each of these in turn.
The machine I replaced my old laptop with wasn’t top of the line. It was one of the rank and file laptops we had in stock, and I might be able to swap it to a beefier dev machine at some point soon. Still, the hardware was nothing to scoff at – a respectable Intel i5 CPU and 4GB of RAM. Nothing to write home about, but we usually run Win 7 with full-blown Areo effects on this hardware, and it handles it without breaking a sweat. Unity was making it work for its money: the fan was whining full speed most of the time, and launching applications would actually freeze up the desktop for a few seconds. Switching desktops was literally painful.
You could argue that it’s not Unity but Ubuntu itself being an unoptimized resource hog. I was concerned by this too, but then I decided to do an experiment and ran the following command:
sudo aptitude install gnome-panel
I then logged out, logged back in and all my performance issues went away. Applications were now launching normally, and switching desktops wen from 1 second lag, followed by jerky animation to an instantaneous flick.
It’s probably also worth mentioning that after trying Gnome Panel, I went back and booted up in the Unity 2D mode to see how it stacks up. It was a big improvement on the default setup and the machine was actually usable. So if you do want to give Unity a whirl, I highly recommend using the 2D mode unless you have a top of the line rig. Of course half of Unity’s charm is how pretty it looks so you will be getting a diluted experience. Along with my other issues, I decided it just wasn’t worth it.
Lack of Pager
Both KDE and Gnome has always had excellent pagers. You know – those little widgets that sit in your task bar and let you switch between your virtual desktops. I always loved the fact that I could just glance onto said pager in the corner of my screen and see the rough layout of my windows on each desktop. Not only that, but I could just click on any arbitrary desktop to switch to it, or grab any of said windows and drag it to a different desktop letting me organize my shit without any hassle. In Unity that functionality is replaced with OSX inspired “workspace switcher” which does the pan-and-zoom-out kind of animation every time you activate it. It’s icon in the dock is static and doesn’t give you that at-a-glance preview which seems like a downgrade.
I liked seeing window outlines in my KDE/Gnome pager. I liked being able to drag windows between desktops without actually switching to those desktops via the pager. The pager was always one of the best features of a Linux desktop. I always miss it whenever I’m working on Windows of OSX. In the past I have tried third party solutions that would add virtual desktops to Windows and pager like functionality of OSX but none of these have ever worked as well as the native KDE/Gnome task-bar widgets.
One could argue that removing the pager in not unorthodox because it mimics OSX behavior that users might be more familiar with. The fact that it was aped from Apple however doesn’t make it good. Personally I am not a huge fan of OSX spaces. I’m glad the functionality exists, but I often find myself wishing it worked more like traditional Gnome/KDE style virtual desktops. It is admirable that Cannonical is trying to learn from the best, but I think in this case they got it wrong. They took something that was working well, and replaced it with something similar but less functional.
Unity is also missing a task bar. I don’t know about you but I like task bars. I’m very fond of the traditional, one entry per window task management. One of the first things I do when I install Windows is to disable collapsing in the task bar. I like to be able to see how many windows I have open, and be able to switch between them easily with a mouse. Collapsing applications into a single icon on the task bar hides vital information that I need to work efficiently.
OSX doesn’t have a traditional task bar, but it provides some alternatives. When you minimize windows in OSX, you essentially iconify them into custom doc entries. So as long as you command-M your windows instead of letting them go out of focus, you have yourself a functional task bar with one entry per minimized window.
Unity implementation combines worst features from both worlds and ends up with Launcher which is barely workable. Instead of showing you what windows are open on current desktop, Unity adds dots to the left of the icons of apps. One dot per open window on the current desktop… But only up to three dots in total for some reason. Instead of collapsing minimized windows into their own entries it simply hides them. So the only way to find out you have minimized windows on current desktop is to count the dots, then count open windows and subtract.
You can of course trigger Apple-expose like windows splay by clicking on said dots, but that shows you a preview of all the windows, without differentiating which ones were open, which were in focus and which were minimized. It seems a very haphazard, unfocused take on window management. With a traditional task-bar I can glance on the bottom of my screen and I instantly know how many windowed applications I’m running and on which desktops I have open windows. With Unity I always felt like I was flying blind, never having full awareness of my work environment.
In my honest opinion, Unity is mostly broken by design. I don’t blame Cannonical for trying to design a desktop environment that is easy to use and intuitive. I don’t blame them for abstracting and hiding away a lot of configuration details in lieu of a streamlined and unified look and feel. I don’t mind that they came up with an opinionated desktop environment that makes bold design choices. This is actually a good thing. Linux desktop needs this sort of focus on usability and user friendly environments. I’m glad that Unity exists because it allows us to have discussions about usability and user centric design on Linux desktop – something that used to be an almost foreign concept few years ago.
That said, when you come up with an opinionated framework that makes bold decisions, you risk using established power users. I am unfortunately one of them. I’ve been an Ubuntu user for many years now, but Unity is just not for me. I like traditional task-bars and pagers and I want them to be part of my desktop experience. If I didn’t like them I would probably be using a tiled window manager like real men are supposed to (or so I’m told).
That said, I can see how Unity could provide better user experience for novice users who have not yet developed habits such as juggling many virtual desktops and displays. If you are the type of person who usually runs one or two applications at a time, Unity 2D might actually be a viable option. The large icons on the launcher and search based application finder make it very easy for a Linux novice to find a program they might need for a particular task.
It’s a pity that Unity offers next to nothing to us power users.