15 years of GNOME

Tagged with , , , , , , | Comments Off

I can’t believe it’s been five years since I wrote my “10 years of GNOME” post, but it seems to be true! Actually, the anniversary was yesterday already, but I didn’t get the chance to write about it then. So, I’m doing that now.

I’m not going to spend too much of your time reminiscing the past. I’ll leave it to Havoc’s excellent comment on LWN’s 15th anniversary article, firstly because he actually knows what he’s talking about, and secondly because he does it so eloquently.  From GNOME 1 through GNOME 2 to GNOME 3, we’ve come a long way in usability, elegance, and community building.

GNOME is people

GNOME is people! Image from Luis Villa’s gallery.

May there be many more years of success for my favorite free desktop!


In a very short while, I have had the opportunity to try three new desktops. KDE 4 (not new but completely unknown to me previously), Unity on Ubuntu Natty (not a new desktop, but a novel shell nevertheless), and GNOME 3. I have previously documented my experiences on KDE 4 and Unity, and in this third and final installation it is GNOME 3′s turn.

As I revealed before, I’m no stranger to GNOME by any means, having used it since the first stable version was released. I remember the desperation, bewilderment, and uproar from a portion of the user community when the transition from 1.4 to 2.0 happened in 2002. Many configuration options were removed from the user interface, which was interpreted by many as functionality being removed. Visual clutter was removed both in the GTK+ widgets and the GNOME applications and dialogs, due to developers beginning to follow the newly created GNOME Human Interface Guidelines, themselves largely a result of professional usability testing done by Sun.  Some users and developers rebelled against such preposterous dumbing down of the interface and removal of 290 of their 300 panel configuration options, and there briefly existed even a fork of GNOME, trying to fight back change.

Panel options in GNOME 1.4

Panel options in GNOME 1.4 (image: LinuxSelfHelp.com)

Panel configuration in GNOME 2.32

Panel configuration in GNOME 2.32 (image: Techtopia.com)

Eventually, the ruckus died down. Some of the loudest critics of “dumbing down” GNOME probably went to other desktops that retained their configuration options in the UI, others realized that the functionality did not in fact diminish but was actually greatly improved. The defaults were accepted by those who liked them, and those who did not learned to change the hidden gconf keys that controlled them.

GNOME 3 has officially been in development for five long years, having been announced in the 2008 GUADEC. I remember jdub giving talks on ToPaZ (Three Point Zero) at even earlier GUADECs, possibly as early as 2004 but certainly in Stuttgart in 2005. The first mockups were blue-sky visions of a future desktop where people and tasks come first, with applications and interface elements disappearing from your work-flow. I loved it.

Now that GNOME 3.0 is finally out, I’m surprised by the relatively mild protest from old GNOME users. To be sure, the perceived pain in the Ubuntu community over Unity has been much louder. This may be because I live in the Ubuntu community so I can hear the yelling better. Or perhaps because a large portion of Ubuntu users simply have never lived through any significant user interface change before. After all, Ubuntu 11.04 even offers the exact same GNOME 2.32 as the previous release, with a slightly different shell! Surely GNOME 3.0 should be a greater shock.

I must find out!

In at the deep end: going ToPaZ

Ubuntu did not offer me GNOME 3.0, so I went off to obtain a system that does. I first downloaded Fedora 15, which had just graduated to stable status. However, I was unable to get my wireless chip tamed under Fedora, because RPMFusion did not yet have either the free driver nor NDISwrapper. I had last used Red Hat in 2000 (Zoot) and never touched Fedora, so I thought I would skip the learning session. I knew that Debian has GNOME 3.0 in experimental, so I used this as an excuse to run Debian again, quickly proceeded to install Sid and grab GNOME from experimental.

GNOME 3 works hard to put the application window you’re working in to the forefront and keep the interface out of your way. The applications themselves have of course received their own share of new functionality, as with every six-month increment that is the GNOME release cycle. The fast release cycle guarantees that there almost never are great, big, upgrades to your apps, but that the changes drop in little by little, which makes it easy for users to move on to the next version. I love that.

The biggest change this time is GTK+ 3.0 and the accompanying breakage of old themes. Many of your favorite GTK 2.x themes simply won’t work anymore, because the theme authors have not yet ported their theme to the new toolkit, and I assume many themes will never be ported. This was also a problem with the move from 1.x to 2.x – you just need to find a tolerable theme that does work on both versions. By default, my Debian desktop used the new default Adwaita theme for GTK 3.0 and the old default Clearlooks for 2.x applications. Naturally, being on Sid and pulling GNOME 3.0 from experimental also means that I’m running a collection of 2.x applications from Sid and the 3.0 apps that ship with the official GNOME  release. I found a solution from gnome-look.org in the form of “Aldabra“, which copies the Adwaita look for 3.0 and ports it very well to 2.x. This looks very consistent, and Qt apps assume the look as well, thanks to Qt’s ability to assume the GTK+ 2.x look in use.

Adwaita itself looks wonderful, but it also serves a couple of annoyances. While the menu bar on focused windows blends beautifully into the title bar, the latter’s color change on unfocused windows breaks the illusion. The toolbars are huge, with lots of padding around icons. I assume this is for the benefit of touchscreen users and learned from Meego developers. Big, fat toolbars probably are the way to go on touch devices, but it’s a terrible waste of space on other small screens such as netbooks. The scroll bar is also likely the fattest I have ever witnessed. Adwaita is only a theme though, and not a very good whining object.

The shell

GNOME apps are GNOME apps, and there isn’t very much to talk about after each six month development cycle. The great disruption in GNOME 3 is the GNOME Shell, which does away with the panel, the main menu system, and the Metacity window manager, and replaces the whole lot with a completely new desktop metaphor. Is it any good? It is absolutely fantastic. The GNOME team (and the shell developers in particular) deserve a big hat tip for having the patience to develop such a comprehensive, re-imagined vision for computer desktops, and the courage to execute on that vision.

Before you start the clean desktop is just that: clean. The first impression of GNOME 3 is provided by the beautiful look. It looks very smart, neat, and professional. “GNOME 3 looks expensive,” in the words of one reviewer. (Who happens to otherwise absolutely hate GNOME 3. We shall see whether or not I agree.) The shell team also threw away the panel menu concept altogether, but placed a single “Activities” button at the left end of the top panel, which is very discoverable and begs a new user to click on it. In fact you don’t have to even click if you’re too lazy, just throw your mouse in the corner, which will bring out the Activities view.

The Activities view of GNOME Shell

The Activities view of GNOME Shell

The Activities view needs no manual to operate, it is very discoverable, giving access to everything. Open windows on the current workspace are represented by big thumbnails with clear captions. Running applications on all workspaces have glowing icons on the dock on the left. You can pin favorite applications to the dock via drag and drop or the dock’s context menu. Hovering over the partially obscured workspace pager on the right hand side lets you switch workspaces. You can launch new applications by clicking on the “Applications” headline at the top row and selecting one from a smartphone-like matrix, which you can also filter by traditional menu categories. You can also launch applications by simply typing, which will activate the search field. The same search can even search Google or Wikipedia. If you don’t feel like clicking, you can bring up the Activities view also by hitting the Super key (A.K.A Windows key). It’s the only user interface you’ll need, and to be clear, it’s also all you get.

The Activities view is the heart of the Shell, and naturally, it is also the home of most of GNOME 3.0′s annoyances and regressions.

You can bring up the view with a keyboard shortcut, and you can launch an application by searching and hitting enter. You can even change workspaces with keyboard shortcuts. But you can only select a window from the Activities view by clicking it. This makes me absolutely mad. The shell has potentially the best window management system ever, but this regression ruins it. I only hope it will be fixed in 3.2. Fortunately, you don’t have to use Activities to switch windows on a workspace. Alt-Tab has been greatly improved. Plain old Alt-Tab cycles between applications, and brings up the latest active window belonging to the application. Switching through individual windows is implemented with an Alt-<above-Tab> shortcut instead (above the Tab key on my Finnish keyboard lives the ‘§’ key, Americans tell me they have ‘`’ in there). But once hitting the Super key and entering Activities for everything got into my muscle memory, I keep missing this opportunity and have to come back from Activities for Alt-Tab action.

While Shell in general works very smoothly on my little netbook, bringing up the Applications selector takes forever. Populating the GNOME menu for the first time in a session always took a while, but since you now get all the apps by default instead of single categories, this is a real pain. Debian doesn’t make this easier by duplicating everything with both the Debian menu and the GNOME menu items. Fortunately, the search is my default way of launching anything anyway.

Workspace management is the best ever. The virtual desktop concept has been pretty much entirely reformed, and is another success in addition to window management. For the first time, I am actually using each workspace as a task-specific “activity”, something that the KDE “activities” system so ingeniously tries to do, but in there I somehow failed to use it. You leave windows for each task open and switch to the next desktop when starting a new task, or indeed, activity. New workspaces are dynamically created and deleted as needed. I love that. Who knows in the morning how many desktops they want or need by the end of the day? Well, you don’t need to, as they just magically come and go, following your work-flow.

Annoyingly, the use of virtual desktops is somewhat brutally enforced on users by the removal of the minimize button from windows by default. I ended up re-adding both minimize and maximise buttons, although maximising also works easily by dragging a window to the top of the screen à la Windows 7. As one reviewer put it, “Basically, the designers of GNOME 3 have decided that users will use activities, regardless of whether they want to or not.” Well, I do want to use them, but I don’t like being forced.

The notification system is simply brilliant. GNOME 3 has a standards-compliant notification area, but it’s hidden “under” the bottom right corner of the screen until you throw your mouse to the corner. Old apps, even KDE apps such as Quassel use the notification area seamlessly, as well as the pop-up notifications that briefly inform you that the system or an application has something to say. You can ignore the notifications if you so choose, and they stay hidden in the notification area until you’re ready to take a look. Integrating chat into the notifications is a very nice touch as well: you can reply to a chat message directly from the notification bubble and get back to work, or postpone it and come back to it later. Two annoyances plague this otherwise great system: the Empathy notification icon will keep blinking even after I react to the initial notification until I actually click on the icon to bring up Empathy. The other thing is that notification area icons are moving targets, because when you hover over one, a descriptive text appears beside it, moving the icon and every other icon to the left of it. I don’t think it is acceptable to make me hit and miss like this.

If you do not like the default settings, GNOME 3 is not going to be much to your liking before you learn how to change things. Just as you learned to find the hidden gconf keys that let you change the more esoteric settings in GNOME 2, things change with the introduction of gsettings and dconf. This will be cured in time, as you do find out how things work. The “System Settings” dialog doesn’t let you change very much, and even gnome-tweak-tool is rather limited right now. This is an x.0 release though, and I’m sure things will improve. The defaults are very bold and very “Gnomish”, and I can’t complain too much even though a few things make me scratch my head.

  • I like creating new virtual desktops for each activity, but suppose someone would rather work on just one desktop? By default, they cannot minimize windows.
  • There is no Nautilus desktop by default: right clicking does nothing. No way to put files on the desktop while working on them. No right-click menu by which to create new files from templates. I’m used to doing both of these things all day. To make things weirder, the ~/Desktop directory still exists. I promptly re-enabled Nautilus desktop and restored my productivity.
  • While the defaults are undoubtedly fine for most users, especially casual users, why do the GNOME designers suddenly think “most users” are all disabled in one way or another? The accessibility menu on the panel is nice and works well, but why can’t I remove it?
  • The only “shutdown-like” option visible on the session menu is Suspend. Suspend? Even Windows defaults to Hibernate. And the “shutdown” and “hibernate” options are not discoverable at all, but are hidden behind a hover-suspend-option-and-press-alt dance. Infinite energy is not here quite yet, guys. Batteries do run out.

Whining about annoyances aside, I am insanely happy with GNOME 3.0. Being the first release in the 3.x series of GNOME, 3.0 makes me full of hope and trust in the future of my favorite desktop environment. It is definitely still GNOME and retains its nature and tradition, mostly just vastly improving the window and workspace management and even further simplification and workflow streamlining than the 2.x series. The interface is extremely unobtrusive, contributing to the user’s greater focus on the task at hand and increased productivity. I can wholeheartedly recommend trying out this new desktop vision that I might even call a paradigm change of some degree.

GNOME 3 is the most radical of the three desktops I reviewed in this three-part marathon, but still manages to stay GNOME. I salute the team who had the courage and skill to make it happen, and I look forward to 3.2, which is likely to fix many of the annoyances I complained about above.


In a very short while, I have had the opportunity to try three new desktops. KDE 4 (not new but completely unknown to me previously), Unity on Ubuntu Natty (not a new desktop, but a novel shell nevertheless), and GNOME 3. I shall describe my experiences in a big review of each, in three parts.

Part 1 concerned my experience as a KDE newbie and also provided some historical background on my desktop habits. This one is about Unity, Ubuntu’s new desktop shell.

I originally moved to Ubuntu because I have always been a GNOME lover. I was using Debian at the time. The current stable version of Debian was 3.0 (woody), and it was not a happy time, because woody was such a famously long-lived distribution that sported a version of GNOME that seemed frozen in amber, GNOME 1.4.

Now, 1.4 was a great GNOME, the culmination of years of development in the GNOME 1.x series. However, the world around Debian had moved on and GNOME 2.2 was already out, as well as vastly improved versions of most essential desktop applications.  So inevitably I ended up running a lot backports and the system did not resemble Debian Woody a lot.

I upgraded to unstable, like so many desktop users at the time did, and life was good. But even Sid could not keep up with the GNOME project’s new, agressive six-month release cycle very well. (As an aside, the situation in Debian is quite a lot different these days of course, with their two-year release cycle and the steady, minor upgrades between the mature GNOME 2.x versions after 2.14 or so.)

At this point, I heard rumors on GimpNET’s #gnome-hackers, about a new Debian based distribution that was going to follow GNOME’s six-month release cycle. I also learned that the new distribution was recruiting a number of prominent GNOME hackers to ensure a great GNOME experience for the users of the forthcoming system. The new distribution had no title yet, but at some point a pre-release became available from the servers on a clandestine nonameyet.com domain. I downloaded, I installed, I had GNOME 2.8.  On the very same day it was released, fully working on a functional Debian Sid snapshot that was now christened as “Ubuntu”.

I never looked back. On Ubuntu, I always had the latest GNOME. The Beta of the next release was usually available on or near the GNOME release day, and even if I waited for the stable release, my new GNOME would still be very new. Ubuntu also threw in a bunch of extra goodies and integrated everything into a very solid system.

But the day had to come when this breaks down. We learned that the release of GNOME 3.0 is imminent, and the smooth ride of nice, incremental upgrades of GNOME 2.x that Ubuntu was always able to build on was coming to an end. The giant major-number upgrade was impossible to integrate into Natty Narwhal, the next Ubuntu release. For the first time, we would upgrade Ubuntu without getting the latest GNOME with it. It is easy to understand, but my disappointment was irrational and insurmountable. I would upgrade, only to get GNOME 2.32 again? I was going to cry.

The GNOME non-upgrade? Not quite!

But there was something else. I then heard that we would have an entirely new desktop shell, and it will be called Unity, and that it will be awesome. So maybe I can settle even if it’s built on such ancient GNOME technology that we’re already using. I was also intrigued by all the criticism and weeping and whining of users who were horrified by the screenshots that were flooding on the Web. Most of those users had, of course, never tried Unity, but they decided to hate it already. This was a good sign to me: obviously something interesting is happening when such emotion is raised.

So I went and replaced my nice Kubuntu installation with Ubuntu Natty, which was freshly out of beta. I had a new machine, so my home directory was clean of old configuration cruft, a clean slate for the first time in ages, ready to receive the embrace of a default Ubuntu experience for a change. I logged in, and gasped in awe.

Ubuntu Natty with Unity looks fantastic. The desktop elements make sense. For the most part, I can immediately find my way around, and clicking on various widgets is pure joy, as they feel immediately meaningful and functional. Nothing extra is present on the screen, just the controls you need for work. I can only describe the desktop as “intuitive”.

Unity desktop

Life in Unity. Java apps still live in another universe

For the first time in ages, maybe ever, I did not immediately begin removing cruft from the desktop, and adding functionality that I want. It’s already there! I always used to install gnome2-globalmenu but Unity has a global menu (which also works with Qt apps). I always removed the application menu from the top panel and replaced it with an intelligent popup launcher, but Unity has already replaced it with the Dash. I removed the bottom panel, but Unity has none to begin with. I replaced the window list with a drop-down window list, but the sidebar Launcher in Unity already acts as one. I removed the window decoration from maximised windows in Compiz, but Unity already does that (and retains the window control buttons by adding them to the top panel when needed, to boot).

Overall, the desktop is also very pleasing to the eye, but that’s not a big change from Maverick. The biggest theming change is the new “overlay” window scroll bars, which are very pretty but for me that’s a regression. Sure, it has some aesthetic value and it’s entertaining at first. It also saves valuable pixels, removing window chrome in favor of content, but it is difficult to use with the mouse. I kept missing the target when trying to guess where the scroll bar would appear.

Eventually, I grew tired of the combined Launcher/Dock on the left hand side. It is not needed often enough to warrant using that many pixels on my screen. Besides, I never cared for docks anyway, I find them useless eye candy. I soon switched it to autohide instead of intellihide, just to keep it out of my peripheral view. It still pops up when you click the top left corner, or push the keyboard shortcut, so I didn’t feel like any functionality was lost by my decision. It also kept getting into my way when not needed. The ‘back’ button in a maximised Firefox window is dangerously close to the left edge, and the Launcher often popped up, intercepting my action. The Dock part of the functionality is also strange. I expected an active window to minimize when I clicked on its icon in the Dock, but this just did not happen.

The search in the Dash is implemented via the Zeitgeist engine. It works impressively well. The Dash in general was well enough for me, and I didn’t feel the need to install a better pop-up launcher. In the past, I had been using the Deskbar applet, then Gnome-Do, and most recently Synapse, the last being implemented in Zeitgeist itself, so I was right at home.

Window management in Unity works well, and of course I would expect nothing less. After all, Unity simply uses Compiz, which is a nice, traditional window manager that behaves predictably. However, workspaces are a real mess. First of all, the workspace switcher is not discoverable. It’s hidden in the very bottom of the Launcher, and presents four workspaces in two rows, which must be an alien sight to users who are used to finding a row of desktops in the bottom panel. Also, while it looks like a pager, it actually isn’t. you can’t directly change desktops there. Instead, your entire world is changed into a huge exposé-like view of all your workspaces. Now I can click on one of them and be taken there? No. After some trial and error, I finally learned that I must double-click in order to switch. Bad. Also, why can I not have just two desktops? Who decided that I need four? And why must I have them in a grid instead of a row?

The only consolation is that most people never use workspaces anyway.

While the global menu works very well, its habit of showing up every time I hit the Alt key (in anticipation of a keyboard shortcut) soon became extremely annoying. I have no idea how this could be fixed other than by simply disabling the autohide feature (which I did not find any way to do), or by turning off window menu shortcuts altogether (which I do not want to do).

I still love Ubuntu’s Indicators in the top panel. These are not exactly new, but they keep getting better. I also like the new color codings, which are based on urgency. However, I’m not sure I always understood how urgently some action is needed from me, and I’m sure that cultural differences can confuse matters even more.

I was surprised to like the new, unified control center as much as I did. I was always a fan of having a separate menu entry for every purpose, but maybe unifying them wasn’t such a bad idea after all. Furthermore, for those users who actually rely on menus to discover things, the new application menu system in Unity would probably make it slower to find something like Printer configuration options unless a single Control Center was implemented.

The lenses in the Unity Launcher are an interesting concept, and I assume people are doing interesting things with them. I was eager to play with some exciting lenses, but when I started thinking about a good hack, I failed to find a use case. Eventually, I did download and install a Web search lens that someone had hacked together, assuming it must be useful for even myself. However, a few days later I realized I have yet to use it. Maybe I’m not in the target audience, maybe autohiding the Launcher caused me to simply never remember about the existence of my cool web search lens.


Reading through all the drivel above, I realize that I have surprisingly little to say about Unity, given that superficially it is such a big change for the Ubuntu desktop. I can only assume that this is because Unity is not, after all, such a revolution. Underneath, we have the reliable old friend that we all know and love, GNOME 2.32. The right side of the desktop has not changed at all since Maverick, and on the left, the changes made are such that I always made them myself anyway.

Unity is pre-built for topylies, mostly saving me the trouble of customization.

That said, I was still hungry to get a real GNOME upgrade, so I decided to leave Unity for now, and wait for a version based on GNOME 3, upcoming in November with Oneiric. In the meant time, I decided to get GNOME 3 one way or another. And I did, but that’s a matter for the next installation, where I review GNOME 3 on Debian.

Stay tuned!


In a very short while, I have had the opportunity to try three new desktops. KDE 4 (not new but completely unknown to me previously), Unity on Ubuntu Natty (not a new desktop, but a novel shell nevertheless), and GNOME 3. In the coming few days, I shall describe my experiences in a big review of each, in three parts.

I have always been a GNOME user. By “always”, I don’t mean I never used anything else. There always wasn’t a GNOME to use. I mean as long as GNOME has been around, I have used GNOME. Red Hat 6.0 was the first distribution to ship a full GNOME release, the much-rushed, buggy, and quite ill-received GNOME 1.0. Yes it was buggy, but I used it. It was still more to my liking than the AfterStep that Red Hat 5.2 sported, even if AfterStep worked better. In retrospect, I suppose I just fell in love with GNOME and wanted it to work. I wanted it to be awesome, and by god, if it works at all I’ll use it come hell or high water.

For context, this is what GNOME 1.0 looked like on Red Hat 6.0:


Yes, it was a mixture of Windows 95, fvwm, and indeed, KDE designs. But it was GNU, it was Free, and it was consistent. And it had Enlightenment as the default window manager. I had never met E before, and it blew me away. Fortunately, GNOME stabilized quite quickly, with support from Red Hat and others, and GNOME 1.4 was already a wonderful desktop to use. So much so that start-ups like Eazel and Helix (later Ximian) were building businesses around it, and Sun was testing it as a potential replacement for their aging CDE desktop on Solaris.

Why such a lengthy digression into history? I want to make clear that I have always appreciated improvements and innovation in the desktop space, even if it is the applications that I have to actually work with. I believe that your environment has a great effect on the quality of your work and well-being, and when working on a computer, the desktop environment matters just as much as the smell in your office.

So now that I have tried three entirely new desktop concepts, I thought someone might be interested what I think. If not, stop reading here. This is going to be a long post, and this is only going to be Part One. :)

How I used to work on GNOME 2.x

Like many (most?) old computer users, I’ve developed a rather idiosyncratic desktop setup over the years. On GNOME 2.x, I removed the bottom panel with its taskbars, workspace indicators, and whatever used to be there, I forget. I also tend to remove pretty much everything else. I have a top panel with a drop-down window list on the left, and the clock and the notification area on the right (and the indicator applets on the latest iterations of Ubuntu). For a couple of years, a global menu applet has been available, so I’ve been using that too. Here’s what my set up has settled into, more or less:

My GNOME 2.x setup

I think this is GNOME 2.24 or so

I’ve always relied heavily on search to find old files, templates for creating new files, and on keyboard launchers like the Deskbar, GNOME-Do, and most recently Synapse. No menus, they’re too slow.

Browsing my old posts, I seem to have had most of what I then called ‘the Non-Interface‘[1] in place in late 2006. I was ranting about our application-based mindset in 2008 and advocating more focus on tasks and the actual objects of our work.

How this review came to be

I’ve been working primarily on an EeePC 701 ever since it came out. Really. It’s been quite enough for me, and it does what I need. Sure, I use a big external monitor and keyboard, but I threw away my desktop machine for the Eee and never regretted. However, I do suppose it looks sort of pathetic for a real work machine. So when Jussi, my favorite Kubuntu Personality and Co-Conspirator in Community Bureaucracy, realized he had no use for his nice LG X110, he offered it to me as “a loaner for unspecified time”. I gratefully accepted the offer. After all, it has a very nice keyboard, and the screen is an upgrade to a whopping 1024×600 (from the Eee’s 800×480).

But there was a catch, as there always is. “You must install Kubuntu, and give it 30 days. You may then do what you wish,” he said. So nice is the keyboard, that I still accepted the offer, even in this modified, more evil form. So now that I by chance got thrown away from my familiar environment, I thought I’d document some of my feelings. Without further ado (because that was enough, wasn’t it), let’s dive into the first part of my Grand Review.

Finally! The actual KDE Review

I know KDE 4 isn’t exactly new, but for me it is uncharted territory. Therefore I was rather excited to install Kubuntu Natty Beta, as it was at the time. Is it prettier than in the screenshots? Will I learn to use it? I had somehow built an idea of KDE being very complex, full of buttons and sliders, and every application a GNU Emacs with tons and tons of features I’m not interested in, even if the application were just an image or PDF viewer. The idea had no basis in actual experience or other study, but that’s the idea I had developed in my GNOME-induced mind.

Short version of the review: Kubuntu with KDE 4.6 is amazing.

The Plasma Desktop simply looks so good it almost made me cry. After poking about the desktop and familiarizing myself with some of the key concepts in the excellent documentation provided, i realized that the basic architecture behind it is also brilliant. Just like everything is a file in Unix, in the Plasma desktop everything is a plasmoid. Everything. This makes the desktop pretty much infinitely configurable, and I realized there is no way I can not fall in love with it. Whatever you don’t like, you can change.

And no, I did not like the defaults although I tried to use them for the first week or so. Eventually I realized that my Plasma desktop looks, and indeed, also works pretty much just like my desktop always did.

The desktop itself did not make me miss GNOME at all, it was all there. For a while I felt conservative  and switched the desktop into “Folder view”, in order to get an old-school “real” desktop back, but I eventually realized the default Folder view as a plasmoid is enough, and allows me to add other widgets on the desktop as well.

KDE 4.x also introduced Activities. For example, I can work on my thesis and have all the usual windows and apps open on the desktop. When I get bored, I’ll leave all that stuff open and save it as an Activity called “Thesis”. I can then switch to the default “Desktop” activity and play moon-buggy, chat on IRC and look at lolcats for the rest of the night. When I feel like working again, I can switch back to the “Thesis” activity and everything will be there as if I never left. Brilliant.

However, I must admit I never really managed to get into the habit of actually using this feature. I found myself using the virtual desktops more, and inevitably losing my neat arrangement at each reboot. I blame myself for this more than the system though. Building, saving, and switching Activities is easy enough, and when your poor netbook starts to cough under the load of too many apps, you can “stop” a background Activity and free up the resources. I don’t know how many KDE users do use Activities, but I eventually gave up for some reason. I wonder if the KDE designers have done research on this, produced usage numbers, and maybe identified problems that trigger some psychological problem in an average topyli.

The Plasma desktop also has a pretty cool netbook mode, and you can even switch between the desktop and netbook modes on the fly. The “Search and View” Activity template used in the netbook mode isn’t very intuitive to configure, and I found it difficult to change desktop shortcuts for example. I also disliked the panel arrangement and never really managed to forge it to my liking. Then again, I did not use the netbook mode very extensively, as I’ve always preferred to run full desktops even on the tiny Eee screen.

As mentioned previously, I don’t use launcher menus, I find them rather cumbersome and slow to use. Fortunately, krunner is insanely, life-alteringly awesome. I have never tried a better launcher on any system. Launching apps, searching for files (kindly indexed for you by Strigi), searching the Web, anything I managed to think of is all right at my fingertips. It probably does much more than I’ll ever manage to discover. Krunner quickly took its rightful place at the center of my workflow.

Finding and adding currently installed plasmoids could be easier. The plasmoid picker that pops up when you ask for it is sort-of cool and futuristic, but also looks corny to me in some weird, unidentifiable manner. I was also annoyed by an obvious bug that the search field in this widget seems to be focused (as it should be), but actually isn’t. I couldn’t enter text before clicking on it. Finding and installing new plasmoids on the web is a joy however, with the tool provided handily at the same interface.

It’s in the applications that I started discovering phantoms of my old prejudice against KDE. Most apps seemed overwhelmingly complex, with far too many buttons and configuration options that were not useful to the average topyli in any obvious way. Oftentimes, I simply did not understand what a certain option or feature means. This is, of course, a double-edged sword. The developers drawn to the KDE ecosystem seem to be inclined to make powerful applications, and indeed that’s what they do. But I was now clearly out of my comfort zone. Being used to Eye of Gnome, which simply displays an image to me when I click on one in the file manager, I was overwhelmed by the richness of Gwenview, for example.

The above probably tells more about me as a user than about KDE apps as products. We don’t match. After a decade of GNOME, I’ve gotten used to the soothing simplicity of its design. I expect the basic functionality up front, with the more advanced functions hidden from eyesight and for me to find, either somewhere in gconf, in an extension somewhere, or another application altogether. KDE apps prefer to slam the whole smorgasbord in front of me, and it’s up to me what features I use and what I leave untouched. It’s a matter of style.

I did find a few wonderful apps however. The same Gwenview I just criticized turned out to be a rather wonderful application once I took the time to learn my way around. At first I had installed Digikam to handle my image collection, but in the end I realized that Gwenview is enough.

Kaffeine must offer the easiest TV setup I have ever encountered, be it a digital TV card in a computer or even a real TV. Simply the friendliest TV tuner ever. (As an aside, I have never, ever gotten gnome-dvb-daemon and Totem to work. At all. Easily or otherwise. I use dvb-tools to create a channels.conf and watch TV with VLC, when in GNOME.)

Jussi also half-forcibly introduced me to Quassel, which is an amazing IRC system. I use the core on his server and I’m always up to date. It’s like using irssi like I always do, with the added benefit of a friendly desktop client that properly integrates with the desktop notification system, monitors the availability of the network connection from network-manager, and looks good. There is also an Android client in (heavy) development that is quickly approaching usability. irssi might be history for me soon.

Akonadi sync to Google stuff is a pain. After a few attempts I was convinced I will never get the calendar to sync. I browsed the web, read bug reports and HOWTOs, and failed time and time again. At some point it suddenly worked, using the same steps I swear I had tried before. It is still a mystery to me. Imagine my disappointment when the newly synced calendar still did not show in the clock plasmoid’s calendar, like Evolution calendars do in GNOME. The calendar also seems able to show local holidays. Well, at least I’ll know when I will not have a meeting. I also found the KDE PIM apps to be quite confusing and unnecessarily complex in general, and soon gave up, moving to Google’s web apps.

Being used to GNOME’s instant apply introduced early in the 2.x era, I hated having to hit ‘apply’ all the time. Again, just a design decision that I’m too used to like the alternative. Related to this, the “Cancel” and “OK” buttons are in KDE apps and configuration dialogs are in the “wrong” order, making me make mistakes.

All in all, I really enjoyed life in KDE land. Despite the complexity of some of the configuration dialogs and the apps being too advanced for an average topyli, I was relatively happy and rejoiced the freedom, good looks, and great workflow afforded by the Plasma desktop itself.

However, after the month I had promised Jussi, I decided to return to my comfort zone and install a GNOME distribution. Naturally, that distribution was Ubuntu Natty, now fresh out of beta.

I shall describe my adventures with the Natty desktop, featuring Unity, in the next installation of this Grand Review. The third and final installation will describe my foray into vanilla GNOME 3 on Debian Sid.

Stay tuned! :)

[1] Note the super-witty reference to GNOME 3.0, five years ago. Yes, we were talking about ToPaZ already :)

Edit: adding links to the rest of the series.
Part 2: Unity
Part 3: GNOME Shell 

Free software is all about use value.


Remember the good old Marxist dialectics of commodities? When a good becomes a commodity, an exchange value is added to the pure use value that the good was originally created to be, and all hell breaks loose. Capital is accumulated. Labor and materials are exploited, and the good is alienated from its original purpose as it is exploited in the market. In many ways this is a good thing, and Marx never forgot the “civilizing qualities” of capitalism over any other mode of production. But the contradiction between use value and exchange value still remains unresolved. The best we can do is deal with it, and in many areas we are successfully doing so. I’m afraid that in the most crucial area in the information age, software, we are struggling.

Even as we can celebrate the liberation of our software as free software users, we must nevertheless take a critical look at the use values we are creating, and how we can do better. I think the solution is to commercialize free software more, not less.

Marx was and still is right, and software is very much a commodity that has tremendous value in modern information capitalism. The contradiction between use value and exchange value is correspondingly huge.

Use value before software

I’m not going to postulate a “state of nature” like Locke or Hobbes did, but i do know for a fact that software was not always a commodity. When UNIVAC and Digital and IBM built their enormously expensive mainframes in the 1950s that only a few companies and research facilities were able to acquire, software was the actual outcome that users wanted. The activity that the computer was purchased for was programming. What an airline or a government wanted was the machine. No talk about software. The IBM customer bought the raw machinery and wrote the software that would do the single task that they needed it to do, like complex calculations or keeping customer databases. The use value was in the hardware, the software was the result of the user’s work. Software as an independent entity did not exist.

Emergence of software as a commodity

Hardware became cheaper and smaller, and more users were able to purchase computers. All universities and every moderately sized business had one. No longer would users be happy with UNIVACs or IBM model so-and-so’s, but we suddenly had portable, general purpose systems like Unix that ran on a wide variety of machines. Operating systems and applications became different entities. Unix was relatively free because of AT&T’s ban on entering the software business, and we soon had two modes of software production: proprietary Unix and free university Unix. Proprietary software was born.

Use value was no longer in the hardware: it was cheap and replaceable. Use value was in the software: this was what actually enabled to do the stuff you wanted to do.

Enter the IBM PC and IBM’s failure to do anything with it. It became a standard and a myriad of clones emerged, producing “IBM compatible” PC machines from off-the-shelf components. None of those companies were powerful enough to maintain a vertical system of hardware, operating system and applications, like IBM and the biggies used to. It was economically much more feasible to get the software from third parties, specialized software companies such as Microsoft and the Unix vendors. Behold the software commodity as an independent entity.

Free software was around all this time of course. I’m not sure why we did not use it all along. Maybe we were unable to make it run on cheap PC’s, maybe we were too proud to acknowledge them. I don’t know.

The commodity reached its perfection. Use value was in the hands of companies producing proprietary software. They would, under terms of a license that they dictate, allow you to reach your goals in limited ways, and express yourself in ways that they deemed appropriate. Their End User License Agreements would allow you to write stuff, make calculations, draw and edit images, and such things, in all the ways that they (not you) could imagine you might want to do for the fee that you pay. You could do more if you paid more, sometimes, if there were many others that wanted to the same thing and it became economically interesting to the company to provide you with the possibility.

The creator of the software owned you.

The free software movement

Not everyone was happy with that, and we got rebels such as the heroes of the Free Software Foundation. I’m not going to preach to the choir and repeat the rise and success of free software, but I’m going to say that the rebellion was all about a world-class hacker such as Richard Stallman being unable to fix the driver software for his brand new Xerox printer because it was proprietary. The use value was greatly diminished.

Free software is all about making software useful again. Software is only useful when you can do what your needs are, not someone else’s. No software vendor is ingenious enough to predict what you might want to do. Free software communities are: they just do what you tell them to do. We’re talking usefulness, use values again.

So now that we have philosophically and economically fixed everything with the free software ideology and open source development models, and we have wonderful systems like Linux-based GNU systems and all the awesome apps that run on them, we’re home free, right? I’m not sure.

Why business is good

Let us see how we have needed companies that exploit our free software commons. Let us see how they have actually added not only capital for themselves, but actual use value for all of us.

In the late 1980s, before the Internet or the Linux project existed, a few guys realized that the GNU C compiler, the GDB debugger and Emacs made a pretty damn good set of developer tools, and decided to sell them to developers and support them. They listened to customers and fixed bugs, added features, and customized the tools for individual companies and users. The GNU project was not interested in doing any of this, so the users were better off paying Cygnus to do it for them. Cygnus was adding real use value to the GNU tools. Soon the company noticed that the GNU project was really slow in integrating their improvements to the official compiler tree, so they were left with no choice other than forking it. Eventually, the FSF realized that Cygnus’ version was far superior to them, and adopted it as official. Cygnus pretty much became the maintainers of the GNU C compiler.

The GNOME project was created in 1997 to create a free desktop for GNU-based systems. It succeeded because Red Hat hired developers to work on it. Red Hat got a nice desktop for themselves, and the GNU project got a free desktop. Red Hat made sure the potential use value was created.

In 2010, we are complaining when Canonical, Red Hat and Novell are leading the evolution of desktop systems, and IBM, Oracle, and others are in charge of the kernel. Why do we complain? What we are witnessing is the reconciliation of use value and exchange value. Everybody wins when commercial free software succeeds.

A couple of questions where conclusions should be

Smart companies will have to adopt free software and standardize. They will then have to compete in some genuine way that makes them special. Offering a stable operating system is not a very good business plan anymore: anyone can take GNU/Linux and offer that. Offering an awesome desktop experience is not going to work for much longer: companies like Red Hat, Novell and Canonical are working to make that point pretty much moot as well.

Looking into the future, we must consider end-users and the use values they are after even more carefully. Think about ultralight computers and mobile devices. Why do we complain if Nokia controls a device such as the N900? I have no idea. Maybe the hardware in the device is important again, and we, the free software movement, have made the software stack pretty much worthless in terms of exchange value? If so, we have more time to concentrate on more important things and place all this in to the basic category of “infrastructure” along with electricity and railroads.

I would like to think so.

Ploughing through my feeds today, I came across Jonny’s post about the Telepathic goodness he’s playing with on his N900. Very nice.

Which brings me to one simple question. Why can’t we, with our powerful computers and full-blown GNOME desktops have any of these nice things? We run the same stuff: evolution-data-server, D-bus, mission-control and the Telepathy connectors. Yet, we have an address book that doesn’t know whether or not our friends are online. Nor can we send IM and email from the same application based on this presence information.

Nothing has happened since I last pondered this question in November 2008. Maybe I should start running Maemo on my desktop? Does the N900 support high resolution external displays? Clearly it is superior.

This article is a humble opinion piece of a GNOME user who wishes to stop using communication software and just be in touch with people. I want to write mail to, chat with, talk to, and have video conferences with real people without worrying about applications and technology. All my suggestions are doable with existing technology in GNOME, no extra magic is required. I write as a user, not as a developer, just in case maintainers and developers of relevant software are in need of ideas, as well as to discuss this issue with interested people.

If it ain’t broke, don’t fix it!

Sorry, but I do think our current comms gear is broken.

I guess it is not a big secret that I am a strong advocate of task-based approaches when it comes to using computers. I don’t care what my web browser or my text editor are called, but I do care a lot about browsing the web and editing text files. In the GNOME menu, the Gedit text editor appears as “Text editor”, and at least in the past, the Epiphany web browser appeared as “Web browser”. On Ubuntu, it seems to appear as “Epiphany web browser”, probably because it is not the default browser in Ubuntu.

GNOME apps in general are quite well behaved in this respect. I do not like selfish applications which make a big noise about their own excellence. In fact I don’t even want to know they exist. What I am interested in is the document I am working on, not the software. Selfish apps distract users in two ways: branding and design. By renaming Slashdot to “Slashdot – Mozilla Firefox”, Mozilla does get a point across, as well as with trying to make the user use Firefox as much as possible. The point being, “look at this awesome application! we are mozilla! you are user!” Tabbed browsing helps: the whole web is just a feature of Firefox! The huge number of extensions is another: want to play a game of Tetris? No need to leave Firefox, your web browser is advanced enough to provide you with games, media players, blogging tools, whatever you need!

What I actually wanted was just a web page. Thank you.

The worst area of task-based computing on the GNOME desktop is currently communication. You choose your email, instant messaging, VoIP, and IRC software very carefully, and spend your evenings debating their excellence on various forums and group chat spaces like IRC. Few seem to be happy with the defaults and applications get much more attention and affection and antipathy than they deserve. We must put an end to that. The Telepathy communications stack is becoming mature, and we have a great opportunity to upgrade the way we communicate with fellow humans and forget applications.

What do we have?

The ingredients of my communication heaven are

  • The Telepathy framework
  • The Evolution data server
  • D-bus

Telepathy handles all Instant Messaging protocols, IRC, and VoIP (both Jingle/Google Talk and SIP) already. The Evolution data server does a very good job at handling not only calendar and tasklist data, but also your address book, and most relevant GNOME apps can talk to e-d-s. All GNOME applications communicate nicely through D-bus, and if i understand correctly, Telepathy is in fact not much more than d-bus calls, protocol handlers, and Mission Control for handling presence information.

What do we need?

If we can telepathize the Evolution-data-server, the world will immediately gain the potential of becoming much less annoying place to be and to communicate with friends in. I see no reason why e-d-s could not poll Telepathy for the presence information for people in your address book – should be easy through d-bus calls. Your address book could, and should, always show you all the communication options available for each person, at any given time. Is this person taking SIP calls? Is she available for IM chat? Is she logged onto any of the same IRC networks with you at the moment? Perhaps she is offline and your best option is to send email.

To handle the actual message, we need simple, task-specific user interfaces, each doing one thing only.

The central hub for all your communication and people-related activities should be a simple Presence applet in the panel. It would offer an option to set your own presence to Available or Busy, perhaps separately for voice/video communication and text-based chat. (Setting your status as Away and Offline have never made any sense to me, since while at your computer you obviously are neither.) The Presence applet would also present you with presence information of all your online friends, much like Instant Messaging and VoIP applications do now. Offline contacts could be accessible through clicking a “Show all contacts” button, like in this mockup based on the current Empathy roster window:

The button should not bring up Evolution, but a simple address book similar to the Contacts app in the Pimlico suite, with presence information added:

The chat, call, and email buttons should be real buttons of course :)

The Email button should not bring up the whole Evolution either, just a simple mail compose window. Ultimately, I would like to see email handled with only message windows and a “mail browser”. Also, the rest of Evolution might as well vanish altogether as a monolithic application and be replaced with something like the little Pimlico applications.

Empathy is well on the way to become a good, simple tool for person-to-person communication (IM, VoIP, video). Group chats on Jabber and IRC need a better UI, similar to IRC clients, but the actual communication and presence information should be handled by Telepathy.

What would we gain?

An approach as described above would have the great benefit of letting users concentrate on the task: “contact this person”. Instead of fiddling with several applications, each different, and each more complicated than the other, we would in effect fiddle with zero applications. We would end up doing the two essential tasks that actually are of interest: handling our own presence, and communicating with people we care about. The units of operation would not be applications, contact lists, account settings and so on, but people and messages.

I would like that.

How to design a desktop

Tagged with , , , | Comments Off

Working on my dissertation, I was going through my field notes again today. I came across this snippet from my IRC logs, concerning the high-level design of the GNOME desktop.

<Amaranth> An option where two people disagree on how something will work? Not gnome
<Amaranth> Automatically figuring out what to do based on the circumstances? Gnome

‘Nuff said. Should apply to any user-facing software.

But yes, even after this Zen moment, I’m still writing the book. =)

Next Page →