Saturday, 24 October 2009

Gnome-shell…

… or the Adventures of an Advanced User in a Wonderland. So, yesterday, more than 24 hours ago, I've turned on gnome-shell (in F12) with the intention to try work with it and prepared pencil and paper with the intention to scribe down what's good and what's bad on it. And now the paper (approx A5) is full of what's bad and only one note of which I'm unsure whether it's good or bad. That basically means that I either hope that this experiment will drastically improve before it will be made default in gnome, or will depart to the nether world.

To easier grasp how my usual workflow looks like here's the screenshot:

As I use my laptop for multiple purposes I have, after years of improving, ended up with tasks driven desktop sorting – one desktop for school/physics stuff, one desktop for graphics design, one desktop for programming, one desktop for web browsing, one desktop for various background things like mail client, music player, gajim, xchat and one desktop for the rest (e.g. for playing a movie). This very roughly correlates with the activities in gnome-shell so one would think I find this part of gnome-shell an improvement. Sadly the number of activities always reset to one on log-in and the desktops aren't sorted in the keyboard switcher (ctrl-alt-arrow) the same way as they look when zoomed out.

Plus, I don't have anywhere the small version of the desktop so unless I zoom out I have to remember in which desktop I am to be able to quickly switch between them. With this tightly connects missing task bar. You know I've already decided that I want these 3 applications/windows to represent one activity – that's why I have them all on one desktop. But to mouse-switch between them I still need to zoom out and oversee all the desktops. This becomes effectively very annoying when e.g. working with mail client and composing a mail while checking one of the other relevant mails, or checking an irc conversation relevant for the mail.

Another thing directly affected by that is practically impossible drag&dropping between applications (especially if the source app is maximized on desktop). But now back to switching between apps. You can object that I can use alt-tab. Yeah, that's good if I use keyboard, but when I'm browsing web or designing an icon, I'm more likely to hold mouse in my hand and rest the other hand away from keyboard. Plus, when I actually can effectively use alt-tab, the grouping of windows of one app (in my case usually terminals) makes the list on one hand shorter, on the other I have to use second hand (for arrows) to be able to select between that. Fail! I want to be able to switch between windows on one desktop with just alt-tab and don't want windows of the same kind but from different desktop mingle with that.

Another thing that I noticed is that rhythmbox cannot be minimized to systray and the systray icon actually thinks it is minimized all the time. It does work though with liferea and transmission. And it's rather annoying that partly thanks to the missing taskbar some actions like adding torrent from webbrowser to (already running) transmission does visually does nothing and I have to switch manually to the transmission window to finish the action. Similarly, opening an url from e.g. chat does not notify me, that a new browser tab has been added (in current gnome, midori task starts to bling in taskbar, whether it's one the current desktop or not and I can easily switch to it).

Let's move on now to another action (up until now, I've mostly talked about working with already opened applications) – starting new apps. The most annoying thing is that to start a new app I have to either zoom out first or use the alt-f2 app starter, which however does not suggest anything, so I have to type whole name. No one-click icons available somewhere in the panel. Oh, yes, there's a sidebar, which however looks odd, cannot be moved to the bottom and totally does not fit the rest of the theme. Plus it apparently have different favourite applications than the activities UI.

Next, when I want to open app on specific desktop, using mouse, I have to zoom out, select the desktop, zoom out, select the app and if it's already running, use right-click and hit open new window. Ugh. How is that effective compared to clicking on the destination desktop and then on the application launcher in panel? If I use keyboard, I have to search for the desired desktop first, which isn't exactly nice when all the desktops are lined up in one line then hit alt-f1, write (does not need to be whole) the app name (nope I cannot navigate through the favourites) and select the correct app to launch. I wonder how can I open new instance though... Furthermore, the 'APPLICATIONS | more' combo looks more like combo-box entry I have always urge to click on the 'applications' and write something there. What a surprise that's actually non-clickable!

And now the favourites – it took me some time to figure out that I need to right-click on the currently running app and select add to favourites. Does not seem I can reorder them to easier navigate through them :-( Plus I don't see a way to add an application that is not currently running to the favourites. Furthermore, gajim resists adding to favourites and instead disappears from the list completely if I try to add it (you can notice it on the screenshot too).

This should about summarize my findings about application/window management efficiency. So let's move on to the UI. I'll try to make this shorter. Date/Time applet is missing date (I have to click on it to find it), I don't seem to be able to navigate through the calendar using keyboard, there are locations missing, no weather. I miss various applets like CPU speed monitoring, network speed monitoring, trash (yup, I like to empty the trash by right-clicking on the panel applet if I'm currently not in nautilus) and lock-up (I use this so frequently that having to go through the user menu is suboptimal for me). I cannot recognize which of the things there are click-able... That's a totally broken design, usability-wise. I cannot move the "panel" to the bottom, which is where I prefer to have the systray. I don't see anywhere what keyboard layout I'm using. Do I have to actually write something to get to know whether I'm using US or CZE layout? Epic usability fail! The fonts does not seem to respect my settings for subpixel hinting and ignore it completely. The applets in systray are too far from each other, the black/white colour combo isn't too my liking, but I cannot change it. The odd blue mists/rectangles aren't exactly nice either… I'm not sure if it's because my intel graphics is suboptimal, but shadows, especially those of tooltips are badly misrendered and actually odd as well – why is window shadow smaller than window?

Oh and one last thing – I've quite a few times zoomed out by mistake by moving the mouse to top-left corner. Can I disable it somewhere?

Summarized, gnome-shell isn't for me as it both looks ugly to me and greatly decreases efficiency of my work. Sorry guys, but I would much rather appreciated if you fixed e.g. gtk2 limitations in theming (non-transparent backgrounds for entries, progress bars and tooltips to quote a few) in gtk3 than working on this rather dubious experiment.

24 comments:

Kevin Kofler said...

IMHO you should really try KDE 4. Plasma gets all these things right. :-)

As for subpixel antialiasing, do you have freetype-freeworld installed? Subpixel antialiasing is disabled in Fedora's freetype builds for patent reasons, so that one issue is not gnome-shell's fault (unless you already have freetype-freeworld installed and it still doesn't work).

bochecha said...

> Sadly the number of activities always reset to one on log-in

Yes, as much as I like Gnome-Shell, this is a major PITA at the moment.

> Plus, I don't have anywhere the small version of the desktop so unless I zoom out I have to remember in which desktop I am to be able to quickly switch between them.

I think (but I might be wrong) that the idea is that you don't switch between desktops but between tasks. So using alt-tab, you switch to another task (window), and the desktop will be switched automatically, so that you don't need to care about it. At least that's how I understood it, and I must say I like it :)

> Plus, when I actually can effectively use alt-tab, the grouping of windows of one app (in my case usually terminals) makes the list on one hand shorter, on the other I have to use second hand (for arrows) to be able to select between that.

Or you can use alt-tab to bring the switcher and then switch with the mouse, if you already have your hand on it. No need for the arrows then! :)

> and don't want windows of the same kind but from different desktop mingle with that.

I find this highly inconsistent. On one hand, windows are grouped by desktop in the alt-tab view, but on the other hand, they are also grouped by application, so if you have two windows of the same application on different desktops then they will appear grouped together :-/

> Another thing that I noticed is that rhythmbox cannot be minimized to systray and the systray icon
[snip]
> Similarly, opening an url from e.g. chat does not notify me, that a new browser tab has been added [snip].

Well, here you're kind of confusing things. Gnome-Shell is coming with some new concepts for notifications and stuff like that. So the problem is rather that applications are made to only work with the current Gnome.

Also, systray doesn't exist in Gnome, it's always been a misuse of the notification area:
http://ploum.frimouvy.org/?219-the-aristocratic-desktop-part-3-there-s-no-tray-icon-in-gnome

So the fact that Rhythmbox can't be minimized to systray anymore is not a problem: it should never have been able to.

> the alt-f2 app starter, which however does not suggest anything, so I have to type whole name.

That's horrible. I'm a huge alt-f2 user in current Gnome, and I'm losing my mind everytime I type « epi[enter] » in the Gnome Shell dialog :-/

bochecha said...

> Oh, yes, there's a sidebar

AFAIUI the sidebar is abandonned for now, as the devs are not sure what to do about it. But it will probably become some kind of a quick launch area in the future I guess...

> when I want to open app on specific desktop, using mouse, I have to zoom out, select the desktop, zoom out, select the app and if it's already running, use right-click and hit open new window.

Or, you could just drag and drop the icon onto the desktop you want the application to be opened in :)

> What a surprise that's actually non-clickable!

I think the same. It is very difficult to tell currently which elements are clickable and which aren't.This is especially true for the separators in the overview, the date/time applet, the application name (next to the « Activities » button) or the user name...

> it took me some time to figure out that I need to right-click on the currently running app and select add to favourites.

Or you could drag and drop the menu item or even *a window of a running instance* into the favorites area.

> I don't seem to be able to navigate through the calendar using keyboard,

Lack of proper keyboard support (I almost don't use a mouse at all with current Gnome) is the major showstopper for me currently. This and the incomplete alt-f2 are the two main reasons why I don't use Gnome-Shell exclusively. The rest is minor and will improve with time, but those two are really productivity killers for me.

Last point is that it is not customizable. True. But remember, when KDE 4.0 got out, most KDE3 users were screaming in pain as it was buggy and not customizable. Then it got implemented, and those same users that swore to never use KDE4 are now praising it and wondering how they could use a computer before it.

I like Gnome-Shell. I find the concepts behind it to be very interesting and I think it has the potential to make the Linux desktop both attractive, easy for the newbies and efficient for the power users.

But yes, it is definitely not ready, and I won't use it as my primary desktop any time soon. However, no one said it was ready ;)

Keep in mind this is just a preview of what *might* be the future of the Gnome desktop. And if we care about Gnome, now is the perfect time for us to help improve it :)

We're planning on doing a usability test of Gnome-Shell during our Fedora 12 release party in Paris, to see how computer newbies react in front of it, how its design is affecting their ability to use a computer, etc... Let's see what we can bring the devs after that.

Martin said...

Kevin, well, KDE 4 is too flashy for me and I like gnome philosophy more (e.g. KISS principle), plus I'm not the kind man who plays with settings ad infinitum, but rather evolves his settings so that the destkop does not get in my way, but helps me doing things efficiently. (Gnome-shell does the opposite [so far].)

About antialiasing, I think you have it wrong, the freetype-freeworld enables the hinted subpixel antialiasing which is patented, the fedora package can do pixel antialiasing without using the patented truetype hinting system and it looks *much* better than just plain greyscale antialiasing. The point is that gnome-shell uses different type of aliasing than any other gtk app.

Martin said...

bochecha, I'll comment only to something, the rest are suggestions of how things work better: the problem is that according to gnome-shell a window=task, according to me a desktop=task. The first is a very specific usecase that is true in limited number of things that I'm doing.

When I use alt-tab, it's because I'm *not* holding mouse in my hand. I'd like to have working both keyboard only as well as mouse only switching effectively.

I call the notify area systray, because it's shorter term ;-) Anyway it worked for ages and it still works, sans rhythmbox, but that just miraculously started working again, so I think there's some random-type bug...

Hm... the drag&drop to favourites looks a bit like black box – I see no hints where and if I'm actually dropping... But at least I succeed this way, hopefully, in adding gajim to it.

Well, I still think releasing KDE4.0 was a big mistake as it wasn't even alpha... And now I see, people from gnome apparently haven't learnt from this mistake and trying to release alpha release of gnome-shell as gnome 3.0 (unless it drastically improves in the next release cycle). IMHO such a big change requires much more than 1 year of development and testing... I prefer not to run pre-alpha (i.e. not feature complete, for a given release) software, so if this is how gnome3 will look, I'll be likely switching to XFCE or LXDE.

Anonymous said...

Martin,

You and Kevin are both partially wrong. Fedora comes with the autohinter, and with NO subpixel filters. Hinting and subpixel-rendering are separate things.

You can enable "subpixel" in the fonts dialog, but the smoothing is very rough since no filter algorithm is used in Fedora. [Really, even this shouldn't be usable, but they keep forgetting to disable it.]

The bytecode interpreter is a Truetype hinter, and is patented. Subpixel filtering algorithms are also patented.

Freetype-freeworld only enables the bytecode-hinter.

To get full subpixel filtering you have to install the odd cairo/libXft LCD-smoothing packages that are floating around in third party repos, like www.infinality.net.

Matthias said...

Seems like you forgot to tell us about the one positive thing you managed to find...

I think three words from one of your first paragraphs about sum this review up: ...I already decided... You sure used up a lot of ink to tell us that you did not really want to give the shell a chance anyway.

Anonymous said...

Your probably about the overview showing all open workspaces at once using the same weight is a known problem.

See:

https://bugs.gnome.org/593844

For alternative ideas, and to give your own feedback.

Martin said...

Anonymous, well, maybe it's not optimal, but there definitely is subpixel smoothing (or antialiasing or whatever you want to call it) enabled on my laptop (I've enabled it myself, fedora defaults are just greyscale smoothing) and it definitely looks better than what gnome-shell UI (and google's chromium) uses. I've tried the patented hinting in a past and truthfully I cannot make up my mind whether the autohinter or the patented hinting looks better...

Martin said...

Matthias, I actually didn't forgot. At the start I wrote that I scribbled down "only one note of which I'm unsure whether it's good or bad." The note I'm referring to looks on my paper like this: "top-left corner mouse-over, maybe good but I've hit it a few times accidentally". Yeah, I might be biased in my judgement – after all, I've been using it only for a day and it's rather annoying to have constantly zoom out and zoom in… But I still have it turned on (till Sunday) to see if my experience stays bad or improves. If not, I'll try again after some time again later. Actually, this is already third time I'm trying it out ;-)

I don't know whether you really read the whole post, as the words "I've already decided" are meant in a completely different context that you seem to imply. I've decided, as a user, e.g. that my activity consists of terminal with three or four tabs, one nautilus windows with two or three tabs and one gedit window with variable amount of tabs. And I switch between those frequently. This is an example of my real workflow. Gnome-shell, by deciding that activity=window makes this particular workflow less effective for me. That's a concept clash not a bug.

PS: I didn't use ink – I scribbled with just an ordinary pencil ;-)

I still have yet to notice something that actually works better than the gnome of today, well, that's not true completely... The window switching, using alt-tab, is much more responsive, but that's not something for which I need a radical desktop concept change.

Martin said...

anonymous#2, nope, this bug is different from what I have issues with. I want workspace=activity as opposed to window=activity. Actually I want to see representation of all windows (much like the current gnome panel's taskbar) I have in one workspace when I'm working with the workspace, but in overview I want all workspaces treated equally, but positioned on same x,y coordinates in an imaginary grid as in workspace switcher that shows when ctrl-alt-arrow.

bochecha said...

> Hm... the drag&drop to favourites looks a bit like black box – I see no hints where and if I'm actually dropping...

I had the same thoughts. A visual indication that dropping there would actually do something is needed.

> Well, I still think releasing KDE4.0 was a big mistake as it wasn't even alpha... And now I see, people from gnome apparently haven't learnt from this mistake and trying to release alpha release of gnome-shell as gnome 3.0

Two things:

1. The Gnome-Shell might not be the Gnome 3.0 UI. Moving from 2.x to 3.x would imply a radical UI change, and Gnome-Shell is only *a* possibility. yes, no one else proposed anything until now, but who knows ?

2. Gnome 3.0 *might* be Gnome 2.30. That's the plan, and what the devs are aiming for. But if it's not ready, then Gnome 3.0 will be Gnome 2.32, or even later.

So no kitties are harmed yet, this is a preview of a work in progress :)

Kevin Kofler said...

> Kevin, well, KDE 4 is too flashy for me

All the "flashy stuff" can be turned off. The default is actually quite lean, especially in Fedora where we disable desktop effects by default.

Gnome-shell is the "flashy" one. ;-)

> plus I'm not the kind man who plays with settings ad infinitum, but rather evolves his settings

Well, KDE supports that, the defaults should be usable, settings can be tweaked one at a time. If you think our defaults are completely screwed up, you can always try filing a bug against kde-settings to get them fixed. :-)

> About antialiasing, I think you have it wrong, the freetype-freeworld enables the hinted subpixel antialiasing which is patented, the fedora package can do pixel antialiasing without using the patented truetype hinting system and it looks *much* better than just plain greyscale antialiasing.

No, you are the one who has it wrong. I maintain freetype-freeworld, so I know what I'm talking about. ;-)

The current Fedora freetype disables 2 things for patent reasons:
* the bytecode interpreter, covered by an Apple patent,
* subpixel antialiasing, covered by M$ ClearType patents.
If you want to use subpixel antialiasing without the bytecode interpreter, you have to install freetype-freeworld and force the autohinter in a config file, see:
http://bugzilla.livna.org/show_bug.cgi?id=1473#c5.
Note that freetype-freeworld currently does that by default for the DejaVu font family because the hinting makes it look very different (much "lighter", i.e. less bold). But this might change in the future because it seems to be hated by half of the userbase (the other half asked for it) and DejaVu upstream would also prefer the hinting to be enabled for their fonts.

> The point is that gnome-shell uses different type of aliasing than any other gtk app.

Some libraries do their own subpixel filtering instead of using freetype's (in which case they're also infringing on the ClearType patents, they just haven't been "fixed" yet; they should be fixed anyway to use freetype's subpixel filter because current freetype has much better filters than the simplistic filter which got copied everywhere).

Martin said...

Kevin, usually I'd believe you, as you're the packager you should know better than I do, but in this case, I clearly don't have freetype-freeworld installed and in the Appearances capplet I have turned on "Subpixel (LCD) Smoothing" with "Full Hinting" and it definitely does some subpixel antialiasing, makes the fonts non-blurry (sans some more complex scripts than latin), and thinner. I'd say screenshot is worth more than words, but in this case, as it depends on RGB subpixels ordering and on CRT it does more harm than good, it would be probably hard to show the difference.

This leads me to believe that if I don't have the patented stuff, fonts can be subpixel antialiased but without any hinting from the font itself, and if I have the patented stuff installed, the antialiasing can use hints from fonts files themselves so it *might* work better. Well, the fonts definitely have slightly different shapes with freetype-freeworld, but the level of antialiasing is same. Note that I'm talking about GTK apps, chromium uses just "greyscale" antialiasing and last time I tried something like this in qt (it was before qt4, so things might have changed a lot) I wasn't able to set it up properly…

Martin said...

Ok, so I've rather decided to check whether screenshot shows anything and it does! Here it is (enlarged to grasp the difference):
http://mso.fedorapeople.org/screenshots/fonts-hinting.png

And once again I remind you, this was rendered using freetype, no freetype-freeworld, no patented stuff.

Anonymous said...

[anonymous #1 again.]

Kevin,

When you say things like "freetype-freeworld enables the hinted subpixel antialiasing" it is confusing.


Martin,

Hinting and antialiasing are two different things.



Freetype-freeworld enables both 1) bytecode hinting and 2) subpixel filters.

Note that Fedora 10-12 by default come with non-filtered subpixel antialiasing. It should be removed (it's kinda ugly and not how it was intended to work) but has not been.


All,

Gnome-shell in fact does not seem to follow freetype's (fontconfig's?) antialiasing rules. It always seems to use grayscale smoothing.

This is true on Ubuntu, which has better subpixel support -- even there, Gnome-Shell only uses grayscale.

Martin said...

Anonymous, If I understand you correctly about the technicalities, I don't understand your point about removing. Fedora defaults has as long as I remember been "greyscale" which is ugly and blurry. The nonfiltered subpixel antialiasing may look odd on enlarged screenshots (colourful "halo" around the characters) but looks about ten times better than greyscale in actual use. But of course, it totally breaks if wrong subpixel order is set.

nicbi said...

if you want to launch a specific application, without zooming out, why not using gnome-do together with gnome shell ?

Anonymous said...

Martin,

The reason I say it should be removed is because...

1. Without the filtering algorithms the smoothing is not used as intended. It's a half-feature.

2. Technically, the very idea of subpixel smoothing is patented.

IE, anything method that uses subpixel-colors to smooth text is vulnerable to patents. It doesn't matter whether you enable freetype's filters or not.

Since even Fedora's crippled version isn't patent safe, and it doesn't even look that great, that's why I say it should be removed.


Check here:
https://www.redhat.com/archives/fedora-devel-list/2009-March/msg01713.html

Apparently it wasn't actually disabled.

Kevin Kofler said...

The thing is, freetype itself has subpixel antialiasing completely disabled, but as I wrote, some libraries are doing their own subpixel antialiasing with a primitive filter (it's not "unfiltered", subpixel antialiasing is always a filter which is applied after the regular grayscale antialiasing, it's that the filter is very simplistic). Several libraries are particularly broken in that they can use only their custom simplistic filter and won't call the freetype one at all even if it is available. Qt recently got fixed to support the freetype-freeworld subpixel filters, but AFAIK e.g. Cairo still isn't fixed and the maintainers aren't much interested in supporting a patent-encumbered feature, even though the code inside Cairo would not be a patent risk, it'd actually remove some patent-encumbered code (the primitive filtering Cairo currently does itself), or at least it could (it's also possible to use the freetype-freeworld filters when available at runtime and fallback to a primitive builtin filter otherwise, the relevant freetype APIs are always available at compile time, they'll just return an error if subpixel antialiasing was compiled out; there's also a #define which allows to check whether the freetype found at compile time was built with subpixel antialiasing enabled, but it's a bad idea to use that in Fedora as that will be always false: there's no freetype-freeworld-devel, and even if there was, it wouldn't be in the buildroots for Fedora packages; we actually had to patch Qt not to check that compile-time #define).

malwkgad said...

I have to add this: I could NEVER EVER explain to my mom or grandma the concepts behind all this shell thing - never! And they should not care at all, all they need is a) noticeable start button with unique and easily memorable icon b) list of applications with icons on them (i.e. menu) c) easy to notice and use close button ; in addition some easy to spot notification mechanism would be great (so when I write to them they notice I do and I don't have to call them on their mobile just to tell them "Look what I have said to you in Pidgin, Ma!"
Animations confuse them, my grandparents have jerky hand sometime and accidentally activate zoom of some other "bonus", which every time result in confusion and call to my cell :"something happened to the computer". And no, they will never learn, it is a miracle they can even use the laptop!

This is all a no-geeky, not-advanced, no-professional user needs. Well - ALL of this is taken away from my parents and grandparents with gnome-shell. Should I use it? Maybe, just try it out like I did with compiz, very mature now but still too much bling for me (i.e. for me anaesthetically pleasing desktop cannot compensate technical gaffes). Will I switch my computers to it, especially the ones used by other (non-technical) people in my family - NO! It was pure waist of time to develop this thing. Honestly.

malwkgad said...

I ran a test about the freeworld/regular fontconfig:
Please find it here - this same page rendered both with freeworld and without it.
I prefer the second. I have make a little query among my co-workers - Most windows users prefer upper type, most Linux lower type.
IMO the font rendering is mostly how we are used to see the fonts and not what is better.

Martin said...

malwkgad, yeah, the subpixel aliasing is mostly a matter of taste, but the biggest problem with fedora antialiasing (the greyscale one) is that it draws vertical and horizontal lines misaligned to the pixel grid and thus makes the text blurry which is objectively worse than the rest. For some reason I don't understand, turning subpixel smoothing with full hinting makes this problem go away (both with and without freetype-freeworld) in all gtk apps, which is one of the reasons I have it turned on and would be very disappointed if that option would get removed.

nicu said...

But how about the big empty black space at the bottom?