Archive for November, 2010

Auto-Workspaces

Tuesday, November 23rd, 2010

Yesterday I posted a bit on how we plan to simplify the overview in Gnome Shell by dropping the tiled view. One thing that wasn’t so fancy about the new workspace panel — it still relied on the user to set up and manage the whole workspace environment .

It would be far more desirable to have Shell take care of most of that management stuff. Heavily inspired by zones from Moblin, here’s the latest proposal:

  • There are no empty workspaces (apart from the initial state of not having any windows open whatsoever). If there are no longer any windows on a particular workspace, it gets merged with the adjacent one.
  • To launch an application in a new workspace, you drop the launcher on the [X] target thumbnail. Similarly you can launch it onto existing workspace or move windows to a new/existing workspaces.
  • In all other aspects it behaves the same as the previous iteration.

In future we might come up with a decent rule of what applications to run in a separate workspace by default (Gimp being one of those potential apps). We need to make sure the concept of workspaces is easily understandable in this case though, as suddenly they move from the realm of optional power-tool into a core functionality. As apps can be launched from outside of the shell overview, we would probably need to make the workspace switching animation much more pronounced. One such transition might zoom out the desktop a bit, slide to the right workspace in stack verticall and then zoom in again. Obviously all this in a fraction of a second.

Shell’s Tiled View

Monday, November 22nd, 2010

Not so long after Florian cleaned up the overview-relayout branch to accommodate the visual tweaks initiated by Allan, here we are again to move the target a bit (engineers love me).

Initially shell exposed two views. A tiled view for an overview of your workspaces (something we can’t expect majority will want to manage). A linear view that presents application windows for easier switching (and dropping documents on). Exposing the mode switch to the user wasn’t good design and even if we presented the tiled view only when rearranging windows or selections of windows across workspaces, it felt like too much of an odd case.

Well luckily Jon came up with what I believe is an elegant solution that works around the limitations of the linear view. In addition it also helps to gradually introduce the workspace concept to curious users who would have otherwise not bothered.

Here’s a very crude motion mockup of how the sidebar behaves:

  • The workspace sidebar is hidden by default, ignored by the majority of users. It would slide out on cursor proximity and or when a drag is initiated on a window or a launcher.
  • This interface relies on animation – it would be hard to grasp if things just popped from one frame to another. Things need to scale and slide to aid the spatial relation between workspaces and windows.
  • The IOS like rectangle navigation we had in the linear view only gave you an idea of the number of workspaces and the position. The thumbnails make it much easier to identify a workspace to switch to or drop a window/launcher to.
  • The interface would work just as good horizontally, but it’s more common to scroll documents vertically and we already use the bottom of the screen for messages

Now while I think the workspace thumbnailing addresses the most useful part of the tiled view, we still rely on the user to do workspace “management”. So the next step is to make the Shell do the heavy lifting. Stay tuned.

GNOME Summit 2010

Monday, November 15th, 2010

First and foremost I want to thank J5 for organizing this year’s event. Lacking any sort of organizational talent (have hard time organizing my own day), I appreciate the effort one has to put into making an event like the Summit happen. In addition it has been great to see the sponsor support for an important event like this, Collabora in particular (for the best kind of sponsorship ;) .

It’s always a bit amazing to walk the premises of MIT with a slightly unfair feeling of belonging there. The new media lab building is like time travelling to the future. Including the fear of robots attacking me in the hallways.

My private agenda has been quite successfully met. I have found a partner in crime for the execution of the visual theme for GNOME3 in Matthias Clasen, who has fiercely hacked at the most important bits of the widget theme to play well with the window decorations. And while it may sound like a bit of a setback to continue on “dead end street” of theme engines, we are actually going to see the work of Carlos Garnacho land and the final theme being executed solely CSS style, by designers rather than engineers. While Matthias has exposed some of the things I’d like to draw in gtkrc through the clearlooks engine, there is still things that aren’t yet achievable (such as drawing gradients for all the widget states rather than one). Also worth noting is that we’re standing on the shoulders of Benjamin Berg, Hylke Bons, Lapo Calamandrei and Thomas Wood here.


Forgive the lack of hinting on the font

You may have heard we’ve gotten the amazing Dave Crossland aboard and work on getting Cantarell ready to be used as a default screen font on GNOME3. It has been my pet screen font for quite a while despite some rough edges as it’s a typeface with the right pedigree (passionate designer understanding the collaborative free software culture rather than a commissioned work). I’m happy to have it be part of the GNOME3 identity.

System Settings work has also moved forward despite (or maybe due to) the lack of my contributions.

In the Gnome Shell land, Florian’s relayout branch is getting ready to land. Florian was quicker implementing the newest iterations than I was able to produce comps for them. It was fun to see an actual demo of something I planned to introduce.

The summit has successfully injected more enthusiasm for GNOME3. I hope the end result will show the amount of love that went into making it happen. We’re getting there!