A major change we’re trying in the GNOME 3 Shell is to be application-based instead of window-based. In this we’ll be in good company with newer releases of other operating systems, but it’s still a major change. What I want to explain in this blog entry is what that means from a user perspective. For the developer perspective, see this wiki page.
Let’s first look at one of the most venerable (and yet apparently still obligatory) applications, the Calculator. In GNOME 2, launching the calculator looks like this:
![]() |
From GNOME Shell |
Launching Calculator
When we click on that menu entry, the application is started (for more details about under the hood, see the linked wiki page above). The visual result is this:
![]() |
From GNOME Shell |
Calculator and the window list entry
There’s a window for the application, and a task list entry. Now in GNOME 2, if we go to the menu and choose Calculator again, we get this:
![]() |
From GNOME Shell |
Two calculators
Technical people will know that under the covers, there are two gcalctool processes, each of which is creating one window. What this example emphasizes is that in GNOME 2, the bottom panel has a list of windows (or tasks), not applications.
Moving on to GNOME Shell, the “window list” and “menus” part are merged into the overview. Let’s take a look at the application well when Calculator is not launched:
![]() |
From GNOME Shell |
GNOME Shell overview application well
Here I’ve added Calculator to my favorites, so it always shows up. It’s not running yet. When I click on it, the active application at the top immediately changes to show that (GNOME techies: this replaces startup notification), and then the widow appears:
![]() |
From GNOME Shell |
Running Calculator in GNOME Shell
So now that Calculator is running, let’s go back to the overview and see what changed there.
![]() |
From GNOME Shell |
Application well, with Calculator running
You can see that the Calculator gained a glowing status indication, like the other applications I had running already. When I click on that icon again, I am switched to the running calculator window:
![]() |
From GNOME Shell |
Looks exactly the same!
In other words, it looks exactly the same, it just shows you the window again. (Under the hood, the program is not re-executed, there won’t be multiple gcalctool processes, etc.)
Ok you say, but Calculator is a pretty boring application and you don’t use it anyways. How am I making your life better? Well, there are two major things.
One of them is that many programs fail in some obvious and other times less than obvious ways if you click the menu entry twice in GNOME 2 (technically, by default this will start two processes). They’ll overwrite each other’s data, etc. For very few instances does it make sense to have multiple if the app is not explicitly designed for it, and this will avoid you accidentally launching two. Personally I get annoyed when I accidentally launch two xchat-gnome instances and appear on IRC twice.
The second improvement here will come when we get a bit better application integration; the mockup we’d like to implement for say Firefox and multiple windows looks like this:
![]() |
From GNOME Shell |
This needs application-specific work though.
As a brief unrelated aside, I think recent Chromium builds with the tabs-in-window borders (technically, client side decorations) looks cool fullscreen in GNOME Shell with the application menu:
![]() |
From GNOME Shell |
Chromium in GNOME Shell
Next post I’ll talk about how GNOME Shell will save you time and get you back into your applications faster.
This work is licensed under a Creative Commons Attribution 3.0 United States License.