HomeBlogLinus bashes Gnome

Linus bashes Gnome

Analysis — It's no secret that Linus Torvalds, Linux's founder, dislikes the GNOME desktop. In 2005, for example, Torvalds posted on the GNOME-usability list that "I personally just encourage people to switch to KDE.".

(from desktoplinux.com)

This “users are idiots, and are confused by functionality” mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it. I don't use Gnome, because in striving to be simple, it has long since reached the point where it simply doesn't do what I need it to do.

(Linus Torvalds)

Oh, so true!  I am a Gnome user since ancient times, but I have to agree Linus on the matter.  I've watched Gnome how it went from a powerful and configurable desktop into a toy that's only good to help you see what time is it (well, metaphorically speaking).

Linus is complaining that Gnome developers reject patches and features (and many times even drop existing features) on the lame excuse that they are too confusing for end users.  Let me add my own small story to this.

A long time back, when my hardware resources were very limited, I was an IceWM user.  IceWM, you know, has this simple yet incredibly useful feature: it allows you to cycle the last two visited workspaces with a key press.  I grown so used to it that I can't live without it.  It's common to have, say, the editor in one workspace, and the browser in another, and using this keybinding you can switch between them to edit/test.  It's like ALT-TAB (the common way to switch between opened windows) but applied to workspaces (desktops).

OK.  After a while, when I had a more powerful computer, I thought I should check what's happening in the Gnome world.  Version 2.0.  Wow, font antialiasing.  Looks cool.  Wow, it's also a lot faster (but that may be because of my new hardware).  Ouch, Metacity!  Where's good old Sawmill?

In trying to customize Metacity, I noticed that it didn't have that simple and neat feature of IceWM.  Turns out I had to remember in which workspace I was previously, if I wanted to return to it.  With IceWM I didn't have to care, I could just switch anywhere and later press WIN-TAB to return.

How hard can it be?  So I got the Metacity sources.  I started looking into it.  Written in plain C (as opposed to IceWM which was written in C++), the size of the source code was a few times bigger than IceWM's (yes, I been there too).  Also less carefully designed, I would say.

After about 10 hours of hacking, building, testing, I was finally able to create my desired functionality.  And I made it so that it wouldn't affect those who didn't need it.  It simply couldn't hurt being there.

Naturally, I sent my patch to Havoc Pennington, hoping it would be included in future releases.  You can still see it at RedHat's bugzilla.  Havoc's response “promptly” came after 4 months and a half:

I think this adds too much complexity/confusion,
though I appreciate
the work to create the patch.

(remember what Linus was talking about?)

It was quite disappointing.  I stopped using Metacity that very day and never came back.  I'm now using Sawfish (previously Sawmill, which was once the default window manager in Gnome).  Sawfish too didn't have this functionality by itself, but with help from the community I was able to add it in no time.

(Most of) Sawfish is written in a Lisp-like programming language called “rep”, which makes it extremely configurable and powerful.  You can practically extend it indefinitely without having to change the core.  This made it so easy to get the functionality I wanted.  I'm not a Lisp guy, but I asked on the sawfish mailing list about “cycle workspaces” and in a matter of hours I received a 10 lines script that did just that.  By contrast, the patch that I had to write for Metacity is a lot longer, it was a lot harder to write and it required recompiling the core (and acceptance from the maintainer, which was impossible to get).

Sawfish was written by John Harper, who now works at Apple.  Sawfish is, I think, the second most stable piece of software I ever saw (first one being Emacs; interestingly, both are based on Lisp).

My Sawfish/Emacs config files are written years ago and they still work.


  • By: FabioJul 31 (18:22) 2007RE: Linus bashes Gnome §

    The real problem was that you started hacking Gnome before looking at it ;-)
    I do have the editor on one desktop and firefox on the other and I switch them quickly: i have configured "show desktop on the left" => ALT+1
    and "show desktop on the right" => ALT+2
    so i can switch back/forth with just a keypress. Even more! on a third desktop I have Apache logfiles and I can move from editor->firefox->logs with just one click!

    • By: mishooJul 31 (21:40) 2007RE[2]: Linus bashes Gnome §

      Yeah that's definitely possible.  I was talking about *the same keystroke* to move you back and forth.  It's like ALT-TAB for windows, as I said.  If you're in desktop 1 and press WIN-TAB, it takes you to desktop 2.  If you're in desktop 2 and press *the same* WIN-TAB, it takes you to desktop 1.

      More generally, I meant a shortcut to take me to the desktop that I previously visited, no matter which one is it.  IceWM has it from factory; in Sawfish it was easy to implement without messing with the internals.  In Metacity, it took 10 hours to implement and 5 months to find out that my patch is rejected.  Now that sucks.

      Anyway, good to hear from you! :-.  (Fabio is an old friend).

Page info
2007/02/24 17:43
2007/03/03 20:46
Mihai Bazon
gnome, linux, rants
See also