Now, don't get me wrong - when it comes to choice of desktop interface it's a very subjective matter and often a matter of taste and what you, as the user, finds most comfortable and/or productive. Still, browse through various forums, comment sections or blogs across the internet concerning Unity or even Linux desktops in general and you'll still likely find plenty of negativity towards Canonical's flagship desktop offering. However, I do believe some of the common criticisms leveled at Unity are based on some of the early incarnations of that desktop. Is it really so bad nowadays?

Of course, amongst all the perceived 'hate' and general negativity for Unity, there are also users with positive reactions who either are new to Unity and find it to be a good, stable and easy to use desktop or they are users who once disliked Unity based on it's earlier versions but since trying out the Unity of today (say, Unity as it stands in Ubuntu 14.04) have had a change of heart.

From a personal standpoint, I have to admit I'd fall in the latter category.

The Unity desktop in Ubuntu 14.04

My personal experience with Unity is that pre-Ubuntu 12.04 LTS, it genuinely wasn't a great experience. Slow, buggy and awkward are some of the criticisms leveled at those early versions of Unity you would see in releases of Ubuntu such as 11.04 and 11.10 and I believe that is fairly accurate. Although, it has to be said, the issues are perhaps understandable given Unity was in it's infancy.

Since Ubuntu 12.04 LTS, though, Unity finally showed it had matured and become much more cohesive.

A Keyboard-Centric Users' Dream?

One of the more interesting things I've come to find about the Unity desktop is that while it aims to be user-friendly and easy to use from a 'point-and-click' perspective, it also really provides an impressive keyboard driven interface out of the box and this had gotten better with every release.

It wouldn't necessarily impress the more hardcore users who like to be able to create their own custom keybinds for, well, pretty much anything, but Unity does seem to sport a pretty neat array of keyboard driven functionality right from the get-go. For example, a simple press of the Super key (also known as the "Windows" key) brings up the Unity Dash, where a bunch of your recently used applications and files and folders are shown. If you start typing a search query, the items in the Dash then show the results to your query, whether it be the name of a program or a file/folder etc. While you can use the mouse to click on any of these resulting items, you can just as easily use the arrow keys on your keyboard to navigate around them. Pressing Enter on your selection will then obviously activate it, as if you had clicked. Actually, the arrow keys navigation and Enter key selection/activation works for all the elements in the Unity Dash, including the "Filter" section and changing to a different Unity Lens.

It's not just the Dash though, if you hold down the Super key instead of just pressing it, an overlay of numbers appear on the items in the Unity Launcher (unofficially known as a dock) on the left of the screen. For example, depending on the order of the items in your Launcher, Super + Num1 (the number 1 key) would launch the Nautilus File Browser (or switch to the running instance if you have already got a window open) and Super + Num2 might launch the Firefox Web Browser.

Similarly, you have default shortcuts such as Super + W for "Expo" mode (show all windows from current workspace) and Super + S for activating the Workspace Switcher.

The improvements to Expo mode (also now known as Unity Spread) are particularly interesting and something even I have found quite useful whilst my hands have been on the keyboard for a while (and hence, I don't feel like grabbing the mouse. Or in this case, moving to a touchpad) is keyboard filtering. Take the below image as an example of Unity Spread in it's usual default mode.

Now, this is a small example as I have a few windows open and one could just use the arrow keys to select a running application. Say, VLC Media Player. However, if you want to very quickly get specific results and/or have a large number of windows to choose from, there is another way.

So, just start typing the letters that correspond to the window in question. In this case, a quick tap of "VLC" brings up the running VLC window into focus, as you can see in the image below.

Bam. Too easy. It isn't just the name of the program either, it seems to be very much focused on the name of the program window. So if you're chatting with a friend in a program such as Empathy or Pidgin, you could start typing the first letters of your friend's name instead of "Empathy" or "Pidgin" to quickly get the result you want.

Then there is the HUD (Heads Up Display). This probably needs no introduction. Ubuntu's HUD has been around since it's introduction in Ubuntu 12.04 LTS and while it hasn't really changed all that much, it has improved in it's performance. One of my previous annoyances with HUD was that during initialization (default is simply pressing the ALT key) and as I would start typing, often HUD would miss out on the first one or two letters of my search word, as HUD could not launch quick enough to keep up with my typing.

However, this has been the same for the Unity Dash itself. Simply launching the Dash and typing a search would often exhibit the same behavior, which would make sense since the HUD seems to be a part of the Unity Dash.

In Ubuntu 12.04, there definitely seemed to be that aforementioned lag. 12.10 brought some slight improvements and then 13.04 and up really seemed to bring a much more responsive Unity. Of course, for many users who may be a bit more patient or slower in the way they navigate their operating system, even the earlier versions of Unity probably seemed more than fast enough. For a power user or someone like myself who seems to like getting around the system at ridiculous speed, Unity is still not perfect, but it is still very, very usable in this regard.

Anyway, in terms of keyboard functionality, the ability to search and execute program menu functions is quite nice. For some, no doubt it's really just a bit of a gimmick and not useful for how they use their computer and those that argue that the HUD way of accessing menus lacks item discovery have a point. But still, again, when I found myself sticking to the keyboard more than anything, the ability to access a program menu function purely by keyboard is pretty neat.

So, as per the sub-heading, a keyboard-centric users' dream? Well, perhaps not, it would depend on the user and as I alluded to earlier in this article, for those who use minimal and/or tiling window managers and love to bind keys and custom commands in every way known to mankind, Unity would most likely never appeal to them.

But nevertheless, there is good keyboard control in Unity if you want it. Even lesser known shortcuts such as ALT+F8 (resize window, with the arrow keys as movement), ALT+F7 (move window) or CTRL+Super+arrow keys to maximize or even tile windows vertically along the screen edges, there's plenty of interesting key commands to explore. The best way is to launch "Help" from the Unity Dash and look up the section "Keyboard navigation". Also, the Keyboard section of the System Settings let's you view common keyboard shortcuts as well as adding your own.

Customization friend, customization...

This is a major sticking point for some users. The introduction of Unity (and the likes of GNOME-Shell, too) seemed to go against everything they loved in the likes of GNOME 2.x.

Things have improved, but to be honest, the out of the box experience of both Unity and GNOME-Shell is still not likely to impress users looking for a decent amount of desktop customization. Still, GNOME-Shell does offer extensions to install and for Unity you can install various different Unity "lenses" or Indicator Applets.

Plus, these days there is the Unity Tweak Tool. Seriously try that one, it gives you a plethora of customization options.

So, while you may have to turn to some third-party tools, customization is still possible to an extent.

Online search results..?

Ah. Perhaps one of the more controversial points regarding Unity in recent times. Indeed this isn't one of those things I was talking about being one the negative views stemming from older versions of Unity, as this is fairly recent.

Well, I'll be honest. My views toward the likes of the integrated Amazon search results in the Unity Dash being enabled by default were definitely more on the negative side. Well, they still are.

Simply, whenever I've installed a recent version of Ubuntu Unity, I disable the online search results. For me, I have no interest in Amazon or other such services being included with my search results. If I wanted to search Amazon or other shopping services in the Unity Dash, I'm sure there would be a specific (non-intrusive) Lens available to do just that. But for every search from the default Home view of the Unity Dash? No thanks.

No Amazon online search results here...

For me, having the online search results turned off is a total win situation. The Unity Dash is faster for a start, not having to pull in online results for every search query. Plus there's less clutter and the Dash can be filled with more relevant local results.

Of course, as I alluded to above, specific Lenses that retrieve online results still work. For example, the social network lens that allows you to see results such as recent Tweets from your Twitter account still works fine (see below image).

Social networking lens in action

The very presence of the Amazon search results, whether you can turn them off or not, is a deal-breaker for some. Which is fine, each to their own. For me, it isn't a deal-breaker but I do find the current implementation unfortunate.

Thankfully, however, future versions of Ubuntu are reported to have the Amazon search results opt-in.

Conclusion

All in all, I believe Unity as it stands today is a much, much improved desktop interface and if you give it a chance you may find it to be quite a pleasure to work within.

There's a lot of talk (or shall we say, criticism) nowadays how modern desktop interfaces are often more designed for touch. Think phones, tablets etc. The likes of GNOME Shell and of course, Unity, have received their fair share of this criticism.

Regarding Unity, though, I'm not sure that's entirely fair. In the section above describing Unity's keyboard controls, you can see that Unity is actually quite suitable for a keyboard power user and in my opinion at least, Canonical's flagship desktop actually manages to strike a pretty good balance between user-friendliness and still managing to accommodate power users.

It's not all sunshine and lollipops though. The Unity Dash in terms of menu discovery whether it be program menus or applications isn't perfect and still sometimes feels quite awkward and while the Dash is no doubt picked up on a lot of speed as newer releases have come along, occasionally it still has a slow or hesitating moment, even with online results disabled.

Plus, there are some lingering issues such as the non-responsive auto-hide of the Unity Launcher, if you choose to use the auto-hide option.

However, thankfully while you will still encounter a bug or two occasionally, generally stability seems to be quite good and performance seems to range from adequate to very good, depending where your hardware hails from somewhere within the last decade.

Having said all that though, there is one last point that needs to be made...

The future... Unity 8

In this article, I have mainly been writing about Unity as it stands now in the (as of writing) latest Ubuntu 14.04 LTS, which is Unity 7.

In the not too-distant future, Canonical will be bringing Unity 8 to the desktop as they strive for "convergence" between the desktop and their mobile touch version of Ubuntu Unity.

The irony here is probably quite obvious. Unity 8 on the desktop actually WILL be essentially an interface that was originally designed for touch devices, such as phones and tablets. The key will be just how well Canonical can pull off the responsive design aspect and also still accommodate keyboard and mouse usage. The latter point being one I feel is a current strength of Unity 7, rather than a weakness.

It will also be interesting to see how users react to the new Unity 8. It's not inconceivable that some may dislike the design of Unity 8 and wish to have Unity 7 back, in a similar way that we saw users desire to have GNOME 2 instead of Unity or GNOME-Shell when those transitions first took place.

However, there's a lot of water to pass under that bridge yet and Unity 8 is still in heavy development, especially the desktop side of things. If you wish to see Unity 8 on the desktop as it looks at the moment, check out the below YouTube video.

One last thing - while I may believe Unity has very much improved the last couple of years, I know it's not for everyone. For many of you, your chosen desktop whether it be XFCE, LXDE, KDE or simply one of the many minimal window managers, is what you prefer and that's the beauty of the choice we have in Linux. I use Ubuntu Unity on my laptop, yet to be honest I do not use it on my desktop PC. Why? I'm not entirely sure.

For one thing I do generally run Arch Linux on my desktop PC and have for quite some time, which may be a factor. Although one can install Unity for Arch, which usually does work quite well (as long as you don't mind installing a number of Ubuntu-patched versions of system packages). Still, on my desktop I either run XFCE + KWin (see my tutorial on this if that interests you) or the complete KDE. A lot of it is simply what I am accustomed to but I am sure I could live with Unity on my desktop PC as well.

What do you think of Unity and has it changed your mind? Does the upcoming Unity 8 worry you? Let me know in the comments!