Hacker News new | comments | ask | show | jobs | submit login
Ubuntu and GNOME jump the shark (ibiblio.org)
176 points by octopus on Oct 16, 2011 | hide | past | web | favorite | 137 comments

The only really valid criticism I see here is the binary blob problem-- clearly this is a poor way to store user configuration data, and completely antithetical to the kinds of philosophies that undergird Linux and Ubuntu.

But really, the core of the issue that's been raised by Unity is that Ubuntu seems to be moving away from catering to power users to cutting features essential to them in favor of appealing to more amateur users. One can lament that decision, and even disagree with it, but I don't know how fair I think it is to criticize Unity for lacking those kind of power user features.

After all, it isn't like power users are exactly wanting when it comes to replacement options in the Linux space.

Unity also simply regresses on many UI issues, relevant not only to power users:

* When a maximized window is behind an active non-maximized window, the panel serves as its title bar. But it actually spells out the name of the active window. Very confusing.

* Additionally, in the same situation, all of they standard mouse gestures on the panel (e.g: double-click to unmaximize) do not work. Maximized windows don't get the right-click-title gesture to work at all.

* No window list at a glance (useful for remembering your context/state with the UI)

* Hides important buttons such as close window, as well as the menus, where non-power-users will not know to look.

* Panel unhide takes a relatively long time -- slowing down almost every interaction with the UI.

* Workspace switcher does not support window drag, unlike the gnome panel workspace applets.

* Workspace switcher requires multiple selections to switch to a window.

* Alt-tab switches applications, not windows, which is more confusing, as it associates unrelated windows together, as if the mere fact they're implemented by a certain application necessarily means they relate. This also requires more keystrokes to reach the window you want -- when you don't have many of them in a workspace, which is a typical situation for organized users that actually use workspaces.

I could go on and on. Unity is an immature, alpha-quality piece of work that seems to have been thrown out because of a deadline.

> I could go on and on. Unity is an immature, alpha-quality piece of work that seems to have been thrown out because of a deadline.

Usually in open source, real user feedback is better than guessing.

I think Unity is maturing and will grow to be what really draws new users to Ubuntu.

Keep in mind what has already been said, Ubuntu is not really geared towards power users (plenty other distros for that), its early motto was "Linux for human beings", and also bug #1 is "Microsoft has majority share on desktop".

I'm pretty much enjoying this new direction and it's not keeping me from doing anything I need to, be it programming or browsing.

Since it's new, I also understand that there will be lots of set backs if I want go around tweaking everything, but that will stabilize with time and I'm sure that Canonical will appreciate any feedback from users that do want to experiment.

Also, I think it's pretty unreasonable to expect them to realease something new that will entirely support every other tweak and customization made with the old features.

Usually in open source, real user feedback is better than guessing.

Certainly. But that doesn't mean it is a good idea to push unfinished stuff as default. Though maybe that is the only way to get people who aren't technology enthusiasts to try the new thing and provide feedback.

Many of these traits are shared with OS X. It's a different mindset, and I'm sure Canonical has done plenty of research on usability. From what I've seen most people who arent savvy computer users happen to like it.

> I'm sure Canonical has done plenty of research on usability.

Any links? I've found a few results from months ago, but results/feedback there weren't so positive.

http://design.canonical.com/2010/11/usability-testing-of-uni... http://lwn.net/Articles/438678/

Please do not slander OS X like that. I've been a happy OS X user since 2005. I look at GNOME 3/Unity and I vomit. Vigorously.

If this was an attempt to be Mac-like, then it was pure cargo-cult UI design. They clearly have no understanding of the actual design process.

The last Linux desktop environment I was reasonably happy with was KDE 2.x. I tolerated 3.x.

Please, a bit less hyperbole and more constructive criticism.


> When a maximized window is behind an active non-maximized window, the panel serves as its title bar. But it actually spells out the name of the active window. Very confusing.

This just doesn't happen in OS X that I've ever observed. It's in fundamental conflict with the OS X window management paradigm.

> Additionally, in the same situation, all of they standard mouse gestures on the panel (e.g: double-click to unmaximize) do not work. Maximized windows don't get the right-click-title gesture to work at all.

Again, this is just inapplicable to OS X.

> No window list at a glance (useful for remembering your context/state with the UI)

This is true for OS X, as far as it goes, but OS X UI practices seem to make it less of an issue than it would be on Windows or a typical Linux desktop environment.

> Hides important buttons such as close window, as well as the menus, where non-power-users will not know to look.

I'm not even sure what this one is about. It seems inapplicable to both Unity and OS X.

> Panel unhide takes a relatively long time -- slowing down almost every interaction with the UI.

Hiding off by default in OS X, quite fast to unhide.

> Workspace switcher does not support window drag, unlike the gnome panel workspace applets.

OS X supports this fully.

> Workspace switcher requires multiple selections to switch to a window.

Not true of OS X.

> Alt-tab switches applications, not windows

True of OS X.

8 properties total, 1 I can't make sense of, 2 that are more or less shared. If my post was hyperbole, the one I responded to claiming "many" of these were shared with OS X was, too.

> (e.g: double-click to unmaximize)

Just a minor note, I just upgraded to 11.10 today. This seems to work correctly now.

For those that don't like it, the alt+tab behavior can be changed back to the traditional style in the CompizConfig Settings Manager. Try using the static workspace switcher.

I actually don't mind the alt+tab behaviour, although I do find it takes too long to open the sub-menu when I pause on a group.

Regarding the new alt-tab behavior: check out alt-tilde. I love the combination of the two!

It has a few bugs (e.g. try opening two terminals, then alt-tabbing... it doesn't switch applications), but it's definitely a step in the right direction IMO.

I noticed the window issues when Unity was first introduced as many a Popup window would grab focus but the title bar controls were still for the underlying active window! What witchcraft is this!

The problem is, Unity has done nothing but alienate power users. This is a huge problem for Ubuntu. The gurus are the gateway to getting new users into the fold. Its not like Ubuntu has a big marketing budget or a Steve Jobs type evangelist.

> The gurus are the gateway to getting new users into the fold.

If that was really the case then Linux would be everywhere in the desktop by now.

This doesn't make any sense at all. The question at stake is "how does Ubuntu get the new users that it does?"

Try the same line of argument in a different context: "Our television ad campaign is responsible for almost the entirety of our increase in market share."

"Impossible! If that were true, we would have 100% market share!"

I do agree the binary blob is a terrible idea, but I've found the new interface to be fairly positive for new users. My brother who hasn't considered ubuntu for years, installed after seeing the new interface. It appeals to the mac crowd with the whole dock interface. The power users should know enough about ubuntu to change what they don't like. Having a simple and dumb interface can be a good thing for new users.

> * The power users should know enough about ubuntu to change what they don't like. *

Except configuration is being hidden in binary blobs! And "The Ubuntu Way" seems to be being forced on "power users".

It's a great shame. Linux does need an easy to use OS, and Ubuntu has filled that role for a while now, and will continue to do so. But the great thing about Ubuntu was that power users could use it as well. Now some people are going to migrate to other distributions (debian for power users, mint for people who dislike the idea of an "easy to use, linux for newbies").

>The problem is, Unity has done nothing but alienate power users.

Ubuntu has almost always acted as a stepping stone for people to come learn Linux and then graduate to a real distribution. There have always been reason for power users to be put off, even back when Ubuntu was just an ancient african word meaning "I can't configure Debian". Are you saying that by putting those issues in the GUI it alienates them too soon?

But aren’t the core users the most important?

Shouldn’t Gnome 3 instead have been a spin-off or separate project from traditional Gnome?

No. There's just not enough resources (developers, designers, testers, etc) to do that.

The Gnome project just decided that it was time to try and make a desktop that wasn't based on the Windows 95 (and up) desktop metaphor, and the only way that was going to work was to commit completely to that goal.

Is see the freedom of choice as one of the core benefits of Open Software. But losing power users to other distributions is bad for software that depends on user contribution and support. If the people that contribute most of the knowledge to discussions on forums and IRC channels switch to other distributions live isn't getting better for the amateur-user, it is getting worse.

If user contributions are part of your business model you should also try to appeal to those users that are capable of delivering contributions.

The only really valid criticism I see here is the binary blob problem-- clearly this is a poor way to store user configuration data

I disagree. Enlightenment has been doing this from the start because it is faster to read and write than a specially formatted ASCII file and because the user is expected to do all configuration through the graphical interface.

antithetical to the kinds of philosophies that undergird Linux

This somewhat true but I believe editing text files by hand is the type of thing Ubuntu is trying to move away from.

ESR is an old hat who has been using Linux since way back in the day and is set in his ways. I am too, but he should know Ubuntu isn't for him. They are focused on ease of use for new users, not accommodating all the idiosyncrasies of the old ones.

I've got plenty of text files I don't regularly edit by hand. However, when the time comes:

- I've got a multitude of tools to choose from to evaluate and modify the files (editors, search tools, scripted modification, etc.).

- I can see with my own eyes what the contents of the file are, and generally, what is wrong. GNOME went the wrong way on this a long time ago by allowing non-intelligible values within gconf, a'la Microsoft's Registry.

- I can make atomic edits and deletes to/from the file (add/remove a line). I can carry those atomic edits around with me (configuration bag of tricks).

- I CAN COMMENT THE MOTHERLOVIN FILE TO EXPLAIN WHY THE FUCK I PUT (OR REMOVED) A SPECIFIC VALUE. Configuration files are NOT there for the convenience of the computer / interpreter / system they are managing, they are there for the administrators to understand what is configured and why.

Removing the ability to comment files, or to make atomic updates in a commented system (e.g: git) removes a core value of configuration management.

Yes, GNOME jumped the shark, but it happened years and years ago.

Add to this: I can put it under version control, back it up meaningfully, and find out what a GUI control actually changed and revert it cleanly.

    gsetttings list-recursively > gsettings-all.txt
The reverse action is left as an exercise to the reader. Or wait..

   for line in $(cat gsettings-all.txt); do gsettings set $line; done
PS. Ubuntu can be blamed for Unity, which is just another shell (maybe not the last) but that settings stuff is way beyond their influence.

Hey, I'm still using an old version of GNOME; would you be willing to post the output of

    gsettings list-recursively | wc
    gsettings list-recursively | gzip -9c | wc -c
to help us understand the issues?

   $ gsettings list-recursively | wc
   1037 3367 56466

   $ gsettings list-recursively | gzip -9c | wc -c
Here. What is the issue you are trying to understand?

   $ gsettings list-schemas | wc -l
I guess we can assume a schema == a config file

Thank you very much.

The issue I'm trying to understand is exactly how the fuck it is so fucking slow to parse 56 fucking kilobytes of text at session login time that it justifies encrypting my fucking desktop settings in a fucking binary configuration file.

I thought maybe the default configuration had ten megabytes of shit in it or something, which could conceivably sort of explain it, although then that would be another fucking stupid decision that would require explanation. But 56 fucking kilobytes? Which gzip suggests would be 35 kilobytes with a human-oriented syntax?

Give me a fucking break.

The issue is not as much parsing as reading from a lot of different files.

As someone else has put it in other thread sequential reading is fast. Random reading from 50+ files which involves seeking the disk is not.

Of course the gconf configuration may have had other alternatively smart ways of doing things and gsettings authors are just optimizing where it is easy to do.

And by the way the gconf stuff is still necessary

   sudo apt-get remove gconf2
shows the a whole lot of packages which still depend on it, so when the transition will be complete there will be more than "56 fucking kilobytes of text"

Sticking all the stuff you need to read at login time into one file is at least plausibly reasonable (although! ldd /usr/bin/gnome-terminal | wc alone still gives me 52 libraries, so config files are not close to the only problem here!) but turning that one file into an opaque binary file is not.

> it is faster to read and write than a specially formatted ASCII file

How many milliseconds does it take to parse YAML, XML, or any other file format for which a parser written in C is widely available?

> the user is expected to do all configuration through the graphical interface.

Changing configurations using the GUI is exactly what Unity and GNOME 3 don't allow the user to do. Try changing anything other than the desktop background.

> How many milliseconds does it take to parse YAML, XML, or any other file format for which a parser written in C is widely available?

YAML and XML may be slower than this, but Python 2.6's built-in 'json' module averages less than 20 milliseconds to parse a simple 1000-element "object"/dict on my system.

This isn't even the highest-performance JSON parser for Python, and parsing into less dynamic C or C++ datastructures would probably be somewhat faster still.

JSON is a great data interchange format but I would veto it as an option for configuration files since it doesn't permit comments.

Actually it does, you just have to tilt your head right. :) See [1].

Either way, the principle stands. If a desktop environment wanted to standardize on JSON + C/C++-style comments, they could extend their standard parser easily enough without meaningful performance impact.

[1] http://stackoverflow.com/questions/244777/can-i-comment-a-js...

Even so... Doing yet-another-incompatible-binary-format?

There are a number of standardized binary formats that support all sorts of data configurations. Hell, use sqlite for all I care, but at least use a format that can easily be examined and manipulated manually when the UI inevitably breaks it.

How frequently should the conf file be read or written to? If it's once at the start of the session, then that time savings is meaningless.

It's read on login and on every app startup. That, IMO, makes it not meaningless.

For what it's worth:

I try to use the mouse only when necessary (even when browsing the web), and I like to launch my applications through text search. Actually I don't need the Unity sidebar at all, unless perhaps when I want to see what hidden apps are running. I arrange my windows using ctrl-alt + numpad and I switch between workspaces with ctrl-alt + arrow keys. The new active window switching with alt-tab and alt-shift-arrow keys is nice. All in all I'm happy with Unity and it got better with 11.10. Being 50% on Ubuntu and 50% on OSX I have to say that I wish OSX had a little bit more of Ubuntu-UI in it.

Just writing this to offer a counter-point to all the anti-Unity posting. Perhaps everyone should try to play around with Unity shortcuts and see if it's really that bad.

Here's a post detailing some of them: http://blog.sudobits.com/2011/09/04/ubuntu-11-10-oneiric-oce...

Preach it brother. I still use Gnome-Do (or Synapse sometimes) to launch apps via text search. I honestly think you could design an entire OS UX around that motif that would end up more efficient and more intuitive, even for new users. If the Start Menu and Google Instant had a baby, that would be the result.

Yes, desktop environments such as Unity seem to be designed with text search in mind. Instead of navigating a menu tree or filesystem tree, users are expected to "search" for whatever they're looking for.

Which works pretty well... until you realize that these desktop environments are also pretending to target the tablet market, where text entry is an order of magnitude less convenient than it is on a regular computer.

> target the tablet market

that's why you have large-ish icons for frequently used applications and why you can pin them to the launcher bar.

Yep, that definitely helps. But I have yet to see a Linux UI that would help me find anything other than most frequently used apps on a tablet nearly as easily as I can on a regular computer. We'd need a different sort of UI for that.

I doubt that the text-search paradigm is the right way to go about developing a tablet UI of the kind that we need. Anything based on mouse clicks would seem to be a much better starting point for the transition to tablets. Unfortunately, both Unity and GNOME 3 require a lot of clicks to get around, which is equal to a lot of screen-tapping on a tablet.

Yes, true. The only non-point-and-click UI I'd want to use for a tablet or smartphone would be voice-search, but the voice-recognition would have to be refined enough that it just works, rather than being an exercise in frustration.

The most popular touch screen GUIs, iOS and Android, default to a grid of icons, like most major desktop GUIs (Windows, OS X, Gnome, KDE) have desktop icons. I don't see this as hurdle.

iOS is lovely. All the apps are represented by finger-sized icons.

In Ubuntu, neither Unity nor GNOME 3 have any desktop icons by default. Unity at least has a dock on the left, but GNOME 3 requires you to click "Activities" before you can do anything else.

In both, the only way to have desktop icons is by changing an obscure setting in an application that isn't installed by default.

Unity's dash is also far from a "grid of icons". You need to open the dash, click the "more apps" button, and finally click a relatively small target at the top of the list before you can see all of your installed apps in a grid.

As someone who's been using Ubuntu full time since 9.10 (though I'm really not a Linux "power user."), I was pretty much horrified by my upgrade to 11.10.

In tweaking a few compiz settings, through their config GUI, I managed to crash compiz hard enough to need to reboot several times.

Unity itself is incompatible with Desktop Cube for some reason, and trying to force it just breaks everything. (I like Desktop because it seems to be a more reliable desktop switcher, anecdotally.) I don't mean "force it" like changing the config directly. I mean "force it" like pressing the button that asks if I really want to activate it.

So I tried out Gnome 3 for the first time. It tries so hard to LOOK like OS X, yet it winds up being way worse than either OS X or Gnome 2.

Maybe I'll try Kubuntu. Or Linux Mint. Or just keep trying to like this new crap. I don't know.

Any number of reasons to choose a particular distro, but let me lump them into "system administration style" and "GUI style."

If you still like or prefer Ubuntu's system administration style (apt, packages, PPA, whatever), and you're just horrified by the desktop, then use another desktop or window manager.

    - Lubuntu (LXDE on Ubuntu, similar to Xubuntu)
    - LXDE and OpenBox manually installed.
    - OpenBox by itself manually installed.
    - Xubuntu.
    - XFCE manually installed.
I went with Lubuntu, pretty happy with it. It's a little unfinished, but not terribly so. And I still have all the apty goodness that I enjoy in ubuntu.

Or go upstream to Debian, or downstream to Mint, or over a branch with Crunchbang. Or a stream over to an RPM based distro. Or over into the next valley with Arch, Slack, etc. Get some strange with FreeBSD.

If the mainstream Ubuntu desktop sucks for you (it does for me), then moving some small or large distance to fix it is going to be much easier than suffering day in and day out.

Can you have a bunch of these installed concurrently and switch between them to try them out?

Yes you can, I used to have (G)ubuntu, KDE and XFCE installed simultaneously and switch between them. The problem I saw was that the menus got really crowded.

Once you settle on one, you maybe want to start over with a backup and a fresh install.

  sudo apt-get install xfce4
It looks quite a lot like GNOME 2, and is rather more lightweight. I finally switched once 11.10 made it clear that it wasn't going to let me use a working version of GNOME anymore.

xfce isn't a package.

    sudo apt-get install xubuntu-desktop xfce4


I just checked my command history, and that is exactly what I ran. Install xfce4, log out and log back in with the new WM, and everything just worked.

I have a problem with people turning from Ubuntu because they lost a pet feature. Ubuntu is changing how to look at the desktop and surely what was built around the old api will not be fully supported at first. But it's just a matter of time before it's functional again.

I'm pretty sure the Desktop Cube can be made to work seamlessly with Unity. But it's not Canonical's job to make it so. And if Canonical somehow managed to lock some of the desktop features into Unity, than we must simply pressure then into building something more flexible so as to allow other open source providers to work with a more pluggable interface.

> But it's just a matter of time before it's functional again.

And then another very short matter of time before it is non-functional again, since the then-current generation of developers will want to "build something new".

I'm not turning away because Desktop Cube doesn't work, I'm turning away because it completely messed up my system by simply trying to turn it on, through the GUI.

I wasn't messing with my X configuration or any other insanities. I clicked a button in the settings, and had to Google around just to get back to a working computer.

What other landmines are waiting for me? What if I install KDevelop or some other KDE-based program? Will that cause everything to break too? I don't know, but I never before had to be afraid to just try things. Now I have to worry if whatever I'm doing is "Canonical-approved," and I'm not okay with that.

(I really doubt KDE is going to cause a problem, it was just an example.)

For the record, I played with Gnome 3 a little more, and I'm willing to give it a longer chance. Avant Window Navigator is a must, though.

Overall, it just seems like Gnome 3 and Unity have all of my least favorite parts of OS X jammed into it for no good reason.

The way you interact with the desktop environment is a pet feature?

You can still change desktops using the same shortcuts, just not using the same animation. So I'd say yes, in this case a pet feature.

One of the commenters in the post mirrored my thoughts exactly; I'm sticking with the 10.04 LTS, and if this garbage isn't sorted out by the next LTS, I'm jumping the Ubuntu ship. I understand that everyone is trying to target touch screens and tablets, and that's fine as an added feature, but you can't leave the keyboard and mouse folk behind. That's especially true when they make up the overwhelming majority of your users.

I'm actually quite surprised more people haven't spoken out against Metro in the new Windows for the same reason; that interface looks dreadful to use with a mouse. I've been told that Microsoft at least left in a "classic" interface that holds true to the name. If that's true, Canonical needs to take that page from their book...

I'm with you. I run 10.04 LTS on my home machine. I recently took 11.10 for a test-drive, and as a power user Unity just doesn't meet my needs.

As a user, nothing about Gnome was broken for me. But in switching to Unity, now Ubuntu feels a lot less useful to me.

My understanding is Metro is just the traditional start menu on steroids. At any rate, Microsoft seems better able to pivot than Canonical.

That's sort of true. They are clearly targeting the touch market with it, but it's a lot more than just an application menu. It think it's a brilliant touch interface, but an awful mouse one, though, to be fair, I have yet to use it in any form. As I understand it though, Metro is just a layer on top of Windows, and it can be turned off if that's what you want to do.

Metro is fine with a mouse. I would like to see it become the new widget layer on top of the desktop wallpaper, without hiding the old task bar, and preserving a Windows-7-style start menu.

I too disliked Unity at first when it reared its head in 11.04 (didn't help that it still had some obvious bugs), but I gave it a try and have grown to like it a lot. They've polished it up quite a bit in 11.10 and it's even better now. I definitely would not want to go back to the old menu-driven way. (I would add that most people I know that use Ubuntu are of the same opinion)

Fully agree about the config hell, though. One time I wanted to back up my gnome terminal profile settings using gconftool, to discover that the terminal settings are stored in the middle of an XML file that covers a whole slew of gnome settings. So to do the backup/restore, I would either have to back up all of my gnome settings, or write a custom script to patch just the section of the XML file I need changed.

After a couple of months of using Unity and trying to fit in with its way of doing thing I jumped back into classic and was immediately at home.

I'm inclined to agree with him. Unity will be cool some day, but I don't think it's there yet, and Gnome 3 was completely broken when I upgraded to Ubuntu 11.10. Binary configuration files are an abomination against DMR.

I'm fed up with Ubuntu pushing alpha-quality releases on users to get free testing. It's making Linux look bad. A couple years ago, Ubuntu was Debian that "just works" on the desktop. That's all I ever wanted, and I think I've found it again in Linux Mint Debian Edition.

I feel the same way. Unity wasn't ready for prime time, and I honestly believe it still isn't. They've forced the user's hand here and made it worse by not keeping changes speedy. Additionally, I hate nearly all the changes to the default applications they've made in the last 2 or 3 releases too, but that stuff is easier to fix.

Back in 2006 I made the move to Ubuntu from Gentoo because I was tired of constantly tweaking things to make my system work. Ubuntu ushered in an era of Linux ease that nobody before them had, and as far as I'm concerned, nobody has since. Sadly, they've started to muck that all up. I don't see anyone else out there making a distro that "just works" and has the out-of-the-box functionality Ubuntu does either, which is the most upsetting part for me.

Binary blobs for configuration should be considered evil.

I'm all for sane defaults and making design decisions and keeping options away from the users - not having huge preference panes. But keep a hand-editable text configuration file.

I spent some time using IceWM (shipped with EEEpc 701) and the jwm. So I guess I'd be using jwm again.

Binary blobs for configuration should be considered evil.

Next do you get to 'binary blobs for code should be considered evil', have a LISPiphany and found Symbolics?

Zetalisp didn't store code in binary blobs. There's a reason Smalltalk, Zope, and Interlisp are or were tiny-minority platforms.

I have been using Gnome in its classic form for a very long time but, I switched to Gnome 3 after the upgrade to the latest Ubuntu version. I must admit it is starting to grow on me.

When I first used Gnome 3 (back when it was first released) I hated it; it was buggy and the whole concept of gnome-shell seemed flawed. Now its seems many of the bugs have been worked out and the usability improvements of gnome-shell is starting to show. Gnome 3 is still far from perfect and there are still A LOT of things missing that I had grown to rely on from classic Gnome (like being able to arrange my panels) but Gnome 3 seems to be progressing and I have high hopes for its future.

I am less hopeful for the future of Unity frankly because it has so many bad ideas built in to it. One such bad idea is the heavy reliance on hidden elements that need to be hovered over for them to be visible.

Personally I think Ubuntu would do well to pick up Gnome 3 and run with it instead of Unity.

I'm also liking feeling pretty good about gnome3. It's missing some important configuration options for me (I don't want windows to auto-raise in sloppy mode), and I miss my system-monitor applet in the panel, but I think it will be great in another release or two.

Not going to happen. It's a pet project and Canonical isn't as beholden to market economics as a company that sold its OS would be.

Kubuntu is great, although a lot of people who say that seem to eventually settle on XFCE anyway.

When I first read this article, I got ready to post a hasty reply with all my pet hates about Gnome 3, Unity, etc, etc.

Then I remembered the original reason I started using Linux, as a native Windows user, and that is "Choice". So you don't like Gnome. Guess what? Don't use it! You have so many other choices of window managers available to you.

Shed a tear for those users on proprietary systems who don't have choice. Don't like the new Start menu? Nobody cares.

Right you are.

Also, maybe since all the power-users are so dissatisfied, they could join and manage a new packaged Ubuntu, maybe OUBUNTU (old ubuntu). They have that choice.

I for one am happy to have a linux distro geared towards everyday desktop use and modern devices, and that I can show my family/friends as an alternative choice and have them not reply that it's just so damn ugly.

I thought the same and starting trying out Window Managers. Until after a few installations/deinstallations I started getting conflicts and wasted a full weekend just getting back to a working system. Now I simply live with whatever my distros put on my desktops unless it got real stopper-bugs that prevent me from working. I guess the positive side is that I learn some new WM now regularly (a little more often this year than I'd hoped for maybe).

While I disagree with esr on Unity (I kind of like it), he raises a very serious point about configuration being kept in binary blobs. I cringe when I see it in XML - blobs are an even worse idea.

Thats a rather bizarre way to store config data I can't see any architectural reason why this would be desirable, does anyone have any insight into this?

Performance and footprint. If I remember correctly, the binary format is used so that dconf can mmap the configuration into memory. This means that a read on the configuration database doesn't involve any system calls and only one copy needs to be in memory (no matter how many processes are using it).


I'm generally a fan of text-based configuration files but in this case I think the benefit exceeds the cost. Reading configuration used to take a non-trivial amount of time on startup.

The proper way to do this is to maintain a text file for reference, check it for modifications, and keep the machine-preferred format elsewhere.

Best of both worlds: rapid parsing / memory management (really, does it matter that much), while preserving human management.

Oh yeah: and the textual version is definitive.

> Performance and footprint

One way out would be to compile the text-based config files into the config blob and rebuild the blob if the text-based config files change.

I can't quite figure out an attack vector, but I always have a bad feeling when I trust a binary blob and load it into memory without any parsing.

Is reading configuration files really such a slow yet common operation that it is a real performance bottleneck? If a GNOME login requires "thousands of dconf reads", perhaps they should modularize and lazy-load some of those settings. (Or not use IPC to query a config service.)

For some reason, gnome-settings-daemon reads ~/.thumbnails on login, and ~/.thumbnails was unbounded in size. Mine was 700M when I learned what caused all the disk IO. I think a lot of the perception of text config files being slow may have more to do with that than the actual performance of the configuration system.

The middle ground would be to cache settings in a binary file.

Why would it read 700MB of stuff right after login?

I don't know why. I just know that it does. The problem is described here: https://bugs.launchpad.net/ubuntu/+source/gnome-settings-dae...

I don't know the precise reasons for the Gnome developers choosing to go with a binary format, but there are some fundamental (and well understood) constraints that you're working within. First of all, can we just take it as read that the majority of users will prefer to modify the configuration of their GUI using a GUI? This means that your application needs to be able to both read and write the configuration file format.

Now, if your configuration file is textual, power users will want to edit it by hand. Look at the rest of this thread for evidence. This means that your application needs to be (more) robust in the face of errors in the configuration file syntax. Not insurmountable, but it's a bit more work. It would be good if your application recognises when the configuration file has been altered too, and reread the configuration so people don't have to restart the application.

Power users will also want to version control the configuration file, and compare different revisions to see what has changed. This means that when you write out the configuration file you need to preserve the textual structure and ordering of the elements from when you read it in. The power user reordered the settings to group things in away they consider more logical? Your configuration file editor needs to preserve that.

Most plain text configuration file formats also have some way of adding comments, and you'll need to preserve that. Oh, and all that whitespace that's not significant to your program but is significant to your typical power user.

So the problem is pretty much comparable with building a syntax-aware text editor for programming languages. There was loads of research done on those (Google 'syntax directed editor') and their success can be measured by the fact that lots of programmers still choose vim, emacs, textmate and other plain text editors precisely because they don't try to do anything clever with your text. Eclipse and similar IDEs are probably the closest you get to a syntax directed editor these days, and they've still stuck to the plain text editor user interface.

More sophisticated attempts to round-trip from program source code to editable UML diagrams or GUI layouts and back are routinely laughed at by the power users that you're hoping to win over with your clever plain text configuration file system, so don't think they'll be an easy audience to please either...

As far as I can tell the official reason for switching from gcong to gsetting is that the new backend is optimized for fast reading of config values.

As for the old schema, there were two options separate xml files in a directory per-app and a big consolidated xml file. There were some measuring showing that the second variant which was opening just a file and not 50 was a lot faster and considerably reduced startup times.

But now if you are going to put everything in a big pile of xml where it is hard to find and edit/remove/add options without a specialized tool you can as well use a binary format.

At least, that's my reconstruction of events.

So, the config system is slowly approaching a Windows registry...

How about making opening the 50 or so files fast instead of putting everything into one big file and, then, into one smaller blob?

Or we actually do like to make the same mistakes Microsoft does?

Relevent, though I don't know what side I come down on: http://blogs.msdn.com/b/oldnewthing/archive/2007/11/26/65239...

Sometimes pathological problems result in pathological solutions and I'm not going to step up and try to identify which spawned which. Goodness knows the happy UNIX story of happy text files configuring your happy isolated services has all kinds of horrific exceptions that don't appear in the happy part of the story, like Sendmail or .emacs.

> So, the config system is slowly approaching a Windows registry...

The config system may have been designed with Windows registry in mind, because Miguel de Icaza, the leader of Gnome project back then Miguel de Icaza (of Mono fame), was copying windows, and gconf-editor is a _registry editor_.

As whether they'll make the same/worse/better mistake as Microsoft did, you guess is as good as mine.

Interesting, thanks for the info.. that said, you can still obviously read xml files into memory and hold them there if speed is the issue, I think its still easier to edit XML files rather than however its done with a BLOB (I've only used blobs myself when programming a Java app and persisting Java objects to a DB so maybe I don't have the full picture), anyways if they did that with XML they just need to expose mechanism to reload XML files after changes are made (to avoid needing to do a reboot, like Windows)

Eventually, by making a fresh account, taking checksums of its dotfiles, adding an applet, and taking checksums again, I found out that the new panel configuration lives in a file called .config/dconf/user that is an opaque binary blob.

I think the OP is a perfect candidate for Arch Linux.

Personally, I really prefer Unity to classic Gnome. Unity is the best desktop experience I have had. I've been using it since 11.04 out. Unity had some rough edges when it was first released, but a lot of that has been ironed out. I really like the direction Unity is going. I feel that it uses space in a more intelligent way. I am very glad that Canonical has taken the initiative to build a better desktop environment. Many people don't like change, and I feel that is the category that many of the people criticizing Unity fall into. I do agree that Unity is not as easily customizable as I would expect, but again, I enjoy most of the decisions that comprise Unity.

Reading this thread makes me pretty sad. Usually there are people on hacker news that at least know the background, and generally there is a measure of respect that other people might actually know something about what they work on. The Gnome developers (which includes me) have more than ten years of experience working on unix and developing a desktop for it. Please don't assume we're making decisions because we're stupid, we might actually have reasons to do what we do.

Lemme try to explain some background on configuration storage in gnome.

But first, the main complaint in the article is that you can't modify the layout of the fallback mode panel in gnome 3. This is just not true, you can modify them in the UI just like before, only you have to hold down alt when you bring up the menus, etc. This was done because a lot of people accidentally changed their panel around causing problems. I'm sure this change could have been better documented and whatnot, but it is possible.

Once upon a time there was a design decision in Gnome to use so called "instant apply" configuration options, rather than having each config dialog button have "apply" buttons. You can disagree if you want, but this decision drives the design of the configuration framework. Basically, it implies having some kind of service that handles configuration changes that will tell other applications of configuration changes. Thus was born GConf.

The original on-disk format for GConf was an on-disk tree that mirrored the gconf key hierarchy, where each directory had a %gconf.xml file that listed the keys in that directory.

However, it turns out that this is a major performance problem when reading settings. Each such file you open causes two random access seeks on the hard drive. One to read the inode and one to read the data. Hard drive consecutive data read speeds are pretty high, but seeks are very slow (for physical reasons), which was significantly affecting login and app startup speed of gnome.

So, we merged the all the separate files into xml tree files, using one per application. This cut down on seeks a lot and improved performance. (Of course, a negative aspect of this is that the xml files are not very human readable anymore. But the vast majority of readers do not access the text files directly anyway.)

However, even after this gconf reads was a problem for log in performance. We do of course do local caching of gconf data in each process and we preload it in chunks, however during login the gconf daemon was acting as a serialization point for all processes that were starting up. Also, all these xml trees were pretty verbose, so parsing and loading also took some time.

Over the years we increased our knowledge of the problem space, and eventually we came up with a replacement for GConf. It has two parts, one is the API, which lives in glib, called GSettings. Its an abstraction for settings with change notification that has client-side schemas (as opposed to server side schemas like with GConf, another thing we learned). The implementation is pluggable, there is an ini file backend, a win32 registry, and the DConf backend, which is the default for Linux distros.

DConf uses a binary on-disk format that is mmapable and readable without "parsing". I.e. each app maps the config file readonly (sharing this memory), and lookups is done directly in the in-memory mapping without an intermediate parsed copy of the data. The data is stored in an efficient hash-table which allows very fast key lookups with few pagefaults in the file. The actual data is stored using GValue, an immutable binary datatype for recursive types that is in glib. So when a value is returned we don't even duplicate it but just return a wrapped reference to the data in the mmaped file.

Writes to dconf do go through a daemon which handles write serialization and change notification. Communications with the dconf daemon is through dbus, which incidentally has an on-wire binary data format that is a subset of GValue.

So, how does this help us? Well, for one thing we never block during login for reading configuration, as all reading is parallelized. Secondly we don't spend any time parsing files, as the config file, once mapped, is already in a compact "parsed" format. Thirdly, we never waste any memory storing copies of configuration data on the heap.

Now, there are some obvious drawbacks with binary formats. For instance, you need tools to modify them, like the dconf-editor GUI app or "gsettings list-recursively". Secondly, you can't use text based tools like e.g. git, emacs or diff/patch to maintain them.

But, you got to realize that we are not unaware of these problems. We are well aware of them, but we made the conscious decision that the real life problems with the many-text-files approach to configurations (as listed above) outweigh the advantages. Especially considering that most of our users don't need to directly modify the config files.

Anecdata: I've supported Ubuntu desktops for non-technical users, and they do indeed seem to have an amazing ability to accidentally re-arrange panel items, even with "Lock items" ticked. I'm entirely in favour of making it more difficult -- although I probably wouldn't have figured out holding down "alt" by myself, but I would hopefully have found it with some googling.

Rearranging panel items is surprising clunky compared to Mac OS X.

Also, resurrecting panel items that have accidentally been deleted can be difficult. The "Add to Panel" menu is missing some critical panel items that can (for unfathomable reasons) be removed, such as the "Applications" menu!

I appreciate the time you took to respond. And I just want to say, that in my case, I am willing to stay with Gnome and see what you guys come up with. Right now, I feel like this is an alpha release, and it will get better, and that the vision will be realized.

I am a little worried though. I have been a Gnome user for the past 10+ years, and this is the first time I don't understand the Gnome vision. I really don't know where you guys are going.

A lot of the rants on the web seem to point that before Linux was trying to copy Windows to lure users, then there was a moment of innovation that created the Linux feel. Lately I have read a lot about Linux trying to imitate Mac.

I don't know if it is true. Right now the vision seems incomplete, and using Gnome hurts. And Hurts bad. I can't seem to use a product that I don't understand.I guess I'll wait a couple of versions to see if I can finally understand Gnome.

Thanks for the information. Really.

The Alt key thing is a problem, though. I never would have found that on my own, even after finally finding out that you have to hold Alt to shut the machine down. I still don't know how to reboot without logging out first (which, I haven't tried, and I don't remember if LightDM has a reboot option either. So yeah, I was CTRL-ALT-F1-ing and rebooting from the command line.)

I mean, it looks very pretty, but how can I recommend this to friends and family when I can't even tell them to "try rebooting it" when there is a problem?

I get the feeling Gnome 3 is going to be awesome. I'm just not sure I'd want to unleash it on non-experts just yet.

It seems to me like you've fallen in a well and are trying to get out by digging it deeper.

Thank you for doing this. I, for one, am willing to use dconf-editor or gsettings during the once-in-a-blue-moon occasions where I need to modify the binary blob if it results in faster startup times for login and apps.

I assume (based on your extensive explanation involving cache hits and disk seeks) that you have benchmarked this. How much time is actually saved by this change?

> However, it turns out that [an on-disk tree] is a major performance problem when reading settings

To you it's a "major performance problem". To me, it's how I was able to unfuck my panel when I accidentally deleted the NetworkManager applet from it, because it was possible for me to see what was different in a freshly-created (!!) account.

Thanks for the ALT-key hint. I hadn't found that piece of information anywhere else, so I was trying to edit the two panels using dconf-editor. I got them placed in each corner on the right side (my screen is much wider than it is tall), but every time I log in they jump to being vertically centered...

I can't seem to find out how to add new entries in dconf-editor, nor can I figure out how to add applets to the panels (I _need_ bubblemon)...

I have been using GNOME since 1.something.

Regarding the one-big-file: the time saving is nice, but that speed gain is kind of defeated when logging in hangs for 15 seconds (perhaps trying to find out why X doesn't do 3D on my graphics card, or something else?) - and the end result being _slower_ login in GNOME 3 compared to GNOME 2.

If configuration writes are serialized through a daemon, why not use the same daemon for configuration reads? The daemon could parse the text-based configuration files once and then publish the parsed settings using shared memory (protected by a read/write lock, since reads will outnumber writes)? The daemon could update the published settings in shared memory and slowly write them out to disk.

Thanks for explaining all this.

Thank you for your hard work. GNOME 3 is amazing - its very non-intrusive, responsive and very functional. I've never been happier with a desktop.

Smart or not, the horrible truth is that every version of GNOME and KDE seems to be more unusable than the one before.

I remember seeing KDE for the very first time when it was in beta and saying, "Wow!"

For a while I'd have a horrible feeling of disappointment when GNOME and KDE would come out with new versions because each would seem to be to buggier and less usable than the last. Sometime around 2005 or so I gave up. It became less of a PITA to configure a Windows machine to make a decent workstation than it to use Linux. I still use Linux on the server, but almost never as a desktop.

I used Linux first in 1993, and back then it was leaps and bounds ahead of Windows in every way. It wasn't until 2000 that Windows brought brought out a stable operating system based on a good foundation that was actually competitive with Linux. Windows has grown a lot since then, and Linux has either been standing still (or almost, on the server) and going backwards (on the desktop). It's a tragedy.

I always wanted to try out awesome but never had the motivation. Yesterday gnome3 packages started popping up in unstable so I gave it a whirl on an old machine. The only good thing I can say about gnome3 is that it finally gave me the incentive to make the leap to awesome...its truly awesome.

I didn't hate Unity, but I did hate that compiz started randomly crashing my GPU, so I ended up switching to xmonad and then awesome, and I couldn't be happier with awesome.

I'm very happy with Awesome running on top of arch linux. If you like the configurability of awesome, also check out luakit:


It's a lua binding to webkit that allows you to fully customize your web browser as well, with a configuration scheme similar to Awesome. By default it's configured with VIM bindings, imo better than the vimium or vimperator plugins.

Luakit is definitely an interesting project. I'm checking it out, but I'm not ready to make it my primary browser, if only because the user documentation is bad enough that the best way for me to figure out how to open a URL is to read the configuration files.

Search this ArchLinux thread, lots of great tips: https://bbs.archlinux.org/viewtopic.php?id=97375

"o" or ":open" plus a url, "t" or ":tabopen" plus a url. "d" closes a tab. Press tab to autocomplete. "B" to add a bookmark. "H"\"L", back\forward in history. To perform a search, simply start your open or tabopen command with "google " or "duckduckgo " etc. If you are on a site that uses javascript keyboard controls, press CTRL-Z to enter pass through mode. ":wq" saves your session (pages that are open will be reloaded next time) and quits.

If Javascript doesn't work in gmail or google plus, change

> "AppleWebKit/%s.%s+"


> "AppleWebKit/%s.%s+ (KHTML, like Gecko)"

in globals.lua and it will.

After having used Unity for many months, I recently switch back to "Gnome classic" and when I upgrade to 11.10 it will be Xubuntu.

It would be great if Canonical concentrated their resources on making the system faster, like they did until recently (improved start up speed etc). However, now they seem to be dumping all work into reinventing the wheel by creating yet another Linux desktop GUI.

Whatever, I spent so many years with Gentoo/Arch + Openbox/DWM that I'm just happy to install Ubuntu, copy over my dot files and have 98% of everything working within 30 min of downloading the distro.

I agree about Unity being terrible, I just hope the Ubuntu dev's are going to realize this and relegate it to an "experimental" UI and then go back to the classic as default

I'm hoping they backpedal too, especially for the next LTS. I'm pretty doubtful that they will though.

If Ubuntu has done anything wrong with the full-on switch to Unity in 11.10, it's that it's kindly done us the favour of removing a classic desktop and not even providing anything approaching similar to replace it. I can't speak for Gnome3 since it doesn't like my hardware at all, and its 'classic' mode seems broken (possibly as a result of compatibility issues).

Anyway, that wouldn't be a problem at all, but Unity is still flawed, is totally unproductive for development work, and there's a distinct lack of customisation:

The launch bar is useless, and doesn't work at all if you let a window snap to the left hand side.

You can only add application shortcuts to it (why can't I add bookmark folders?).

There are no configuration options to be seen (what if I don't want auto-hide?), and whatever options there are, they're minimal.

Workspace switching isn't smooth at all and requires a strange number of clicks to make any use of.

Auto-hiding menubars just obscures GUI elements I'd like to be able to see at all times. If they're not there, I have to stop and remember where to look, because I can't just glance at the top of the screen. The actual name of the app is always visible, but clicking it does nothing. This is unbelievably unintuitive.

As for it replacing the classic desktop, I'm not sure what exactly was wrong with it, and why a GUI fit for a netbook or tablet is now being shoehorned into a desktop OS before it's had enough care and attention to bring it up to par with the standard desktop experience.

I regret running the upgrade and as soon as I can I'm switching to something more productive and usable, because 11.10 and Unity feels like too big a jump into unfamiliar (and unstable) territory.

And this is coming from an OS X user (who only uses Linux at work).

I was a Ubuntu user for the pass 2 years, only until the heat problem kicks in. I don't know why most people don't have this problem, but my computer is extremely hot while running basic graphical tricks, and moreover, this thing has not been fixed for the last 3 releases. And secondly, the Unity is extremely stupid for multiple monitor. If he has 3 monitors, how would he like it to constantly look to the left most monitor just to switch between tasks? I recently purchased an additional monitor, and because of this stupidity, I no longer use Ubuntu despite I hate Windows so much. This could be a reason why Ubuntu will NEVER get to offices, since most of them have multiple monitors.

Wonder if we could have USERS to say what they want in each release? If Ubuntu continues this path, I'm afraid tech-savvy people will stop using it, not to mention many new users will never start trying.

Most people don't have the problem because it's related to a specific piece of hardware in your machine. Search Launchpad and see if you can add any new details to the bug report, or file a new issue if one doesn't exist.

I'm probably too late to this discussion, but I work at a windows shop, and use ubuntu at home and on servers, so it is an irritation that the ubuntu UI has become more mac-like, starting with the close button moving to the left-hand side. This is mainly because I find it inconsistent. I have put off upgrading ubuntu for this reason, currently I'm on 10.04.

What I don't like about ubuntu since 10.04, is that it the UI has become "opionated", without having the customizability that pre-gnome desktop managers have.

Specifically, there should be options to put the close/minimize/maximize buttons on whichever side I prefer, and whether to use mac-style menus or windows-style menus.

Seriously, what is with Ubuntu and locked down panels? Would it be so hard to set up a user default in the home directory and then let me edit?

Interesting to note that nobody mentions Enlightenment or the Ubuntu-based Bodhi Linux disto. I really can't figure out if Enlightenment is simply living in a dark hole of obscurity or if it's actively ignored. (And if it's being ignored I'd love to know more about why, I've always enjoyed it as a desktop environment.)

For the Linux boxes I keep around, E16 is still, after over a decade, my preferred graphical shell. In fact, I don't think I've touched the config since around 2001.

That said, I don't get all the bashing on GNOME and Unity; yeah, there are rough spots (and obligatory "power users" who think GUI means a window that shows one checkbox for each command-line option), but they're trying to do good and I applaud them for the attempt.

Very happy using oneiric ocelot with the bodhi repositories and their E17!

i actively ignore it because it doesn't give me the nearly full stack integration that GNOME does.

One reason might be because e17, like Gnome 3, uses binary configuration files.

Why is there so much negativity?

They are providing a free software option for you, and they work very hard on it. If you don't like it, you don't have to use it. But why be angry at them?

As for Ubuntu 11.10, I am posting this from there. Yes, Unity has some annoyances. But overall things work quite well.

He's providing feedback, even if in an indelicate way, and sharing useful information to other users, such as the binary blob configuration file.

But overall things work quite well.

It's an opinion. Clearly the author begs to differ.

schiptsov posted, in an apparently auto[dead] post:

> Yes, all those better ways to do the configuration, such as gconf2, oneconf, and other shit is really annoying, same like people who missing power and flexibility of a text file, not an XML but plain old var=value, or, OK, some Yaml. But what can we do? The mediocre crowds are migrating from windows realms and they like to copy and paste, not to think and learn. ^_^

I just wanted to respond to schiptsov's comment by pointing out that copying and pasting is something you can do if you have a name=value or YAML text file, but not something you can do with gconf-editor. So if there are "mediocre crowds" who "like to copy and paste", they'll be better served by text-based configuration files.

I would suggest checking out Elementary OS. It has been a better experience for me.

Linux Mint 11 is a fantastic distribution for anyone who isn't into Unity or Gnome 3. I wish I had started using it sooner.

Do they have good repositories? One thing I liked on Ununtu is that they have almost anything I need in their repositories. I never have to compile anything, or even run an install file.

Mint uses the same repositories as Ubuntu for the most part. You can also use the Debian Edition, which uses the same repositories as Debian Testing. Both repos are as comprehensive as they get.

Totally agree, both with the poster's very valid complaints about Unity and Gnome 3 and with the best alternative being Linux Mint. I lost so much time dealing with this terrible "upgrade." I will never again trust Canonical.

whaa a poor power user did not get what they wanted..wha..wha...

For background ESR work is not in UI but in small but important stuff like GPSd, etc..

He is work here..both GNOME and Ubuntu have made decisions that are making an impact as far as driving adoption of new users to the platform..both sets of developers deserve big round of applause..

Come on .. not another Unity rant.

All Linux desktops before Unity sucked. Gnome 2.x sucked, big time. It looked ugly, and had only ugly themes. Its applications menu was completely useless. Its panel sucked. Its model for putting and managing launchers/shortcuts on the panel sucked. It was a complete mess.

Most Linux users were using Docky + GNOME Do.

I personally was using XFCE, because at least its panel was prettier and more customizable.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact