These are the screencasts I made in case I would not be able to do a live demo. The mockups I refer to in the notes for the second video are not shown in the video, but I was showing them during the live demo. They are slides 13-20 in the presentation file.
[Setup: single workspace, but make sure the grid view is on; one terminal, one OpenOffice Impress, two Firefox windows (one with Gnome Shell wiki, one with LibrePlanet main page). X-Chat IRC, gedit, and Empathy are other favorite applications. OpenOffice Impress is maximized and all other windows are minimized. Have Desktop/Mockups/LibrePlanet Mockups/1_shell-mockup-overview-move-window.png as a recent file.]
shell-20100320-1.ogg
(Desktop view, panel, getting to the overview; window previews, search, application launching and switching in the overview.)
So now on to the demo. First, you can see that the two panels of GNOME 2 are replaced by a single black panel at the top of the screen. (The panel is black in the default design to have it merge more closely with the bezel of the screen and have it feel as a negative space, so as to be least distractive.) The panel has the name of the currently focused application, in this case OpenOffice Impress, a clock with a slide out calendar, some notification icons, and a user menu, which allows setting a current status, accessing account information, or logging out. There is also an Activities button that brings the user to what we call an Activities overview. So here is what happens when I click on it. [Click, don't activate the hot corner.]
The Activities overview is the most important innovation in GNOME Shell because it dedicates a full screen to all the different ways in which the user can switch from doing one thing, an activity, to doing something else. First of all, it shows the previews of all the windows the user has open and allows switching between windows by clicking on their actual previews, rather that by guessing which window is which based on indistinct boxes in the task bar, as was the case in GNOME 2. So, for example, I can decide to switch to the Firefox window. [Click on the LibrePlanet Firefox window.]
Because the overview is a frequently accessed feature, there are several simple ways to activate it. One is by hitting the System key [show that], and another one is by moving your mouse to the top left of the screen, which activates the hot corner. You might be able to notice a helpful animation in the corner indicating that the hot corner has been activated.
So back in the overview we have different sections on the left that contain applications, places and devices, and recent documents. We also have a prominent search feature that is focused on by default and searches across all of these. So for example, if I want to bring up the calculator, I can type the first few letters in the search box and press enter. So by default, clicking on an item in the overview exits the overview and switches to that item, but dragging an item instead allows the user to stay in the overview. [Drag gedit to the workspace.] It is also possible to close applications right from the overview. [Close the calculator and gedit.]
GNOME Shell is an application-based desktop, rather than a window-based one. This means that whenever appropriate, we group the windows by the application they belong to because we believe that the user is more likely to think of the application they want to switch to first, and only then to think of a particular window within that application or a need to open a new window of that application. For this reason, the application icons in the overview serve as both application launchers and the ways to switch to the running applications. The running applications are indicated by the raised background behind the application icon, but in most cases the user doesn't need to worry about whether the application is already running, but can just click on the icon and expect the right thing to happen. In any case, you usually only want a single instance of most applications, such as a single instance of a calculator or of the IRC client. For example, it would be a major inconvenience if clicking on the IRC icon launched a second copy of IRC and signed you in under a second nick.
On the other hand, for the applications that do have multiple windows, the application icon serves as an effective filter for deciding which of the windows you want to switch to. Right clicking on the icon shows all the open windows of that application and their previews can help you decide which was the window you wanted to switch to, which is particularly useful if you have many windows open. The right click menu also has an option to open a new window, if that's what you need to do. [Right click on Firefox, select the LibrePlanet one again.]
One more option available in the right click menu is adding or removing an application from favorites. Marking an application as a favorite means that it will stay in the applications area even if it is not running and serve as a convenient launcher. So for example, I can remove gedit from my favorites. It offers me a nice option to undo my action here, in case I didn't really mean to do that. [Select undo.]
In addition to searching, you can browse all the applications. This is currently an undifferentiated grid, but we plan to allow custom tags and various ways to sort the applications, such as by name, recently used and most frequently used criteria.
shell-20100320-2.ogg
(Alt+Tab, workspaces, Looking Glass.)
Another option for switching between application windows is the redesigned and nice looking Alt+Tab dialog, where the windows are also grouped by the application. [Show Alt+Tab dialog.]
Like in GNOME 2, windows can be grouped into workspaces, but the GNOME Shell Activities overview makes workspaces much more intuitive. The default view is a single workspace, so we are not trying to force workspaces on the users, but we are making adding workspaces and moving windows between them much more intuitive. The plus button adds additional workspaces and you can move the windows between them by dragging and also open new applications and documents on a particular workspace by dragging them there. [Move windows around, drag some application and 1_shell-mockup-overview-move-window.png to a workspace.]
There are two ways of viewing the workspaces - a grid view, which you are seeing now and a linear view which shows one workspace at a time. [Switch to linear view, scroll through the workspaces.]
Now that you've seen most of the GNOME Shell overview features, I'd like to talk about how rapidly the GNOME Shell development happens and show you some recent mockups that got implemented. As I mentioned, we have a couple of designers working on the Shell and they create a lot of mockups for the Shell. We also have a great team of developers who implement these mockups as soon as they come out. So this linear view of the workspaces is a relatively new feature, and one of the questions we had about it is how would moving the windows between the workspaces work. As you remember, it was pretty straight forward in the grid view, when all the workspaces were visible and you could just drag windows between them.
Here are the mockups for moving windows in the linear view that our designers Jon McCann and Jeremy Perry created a couple of weeks ago while they were in London for the GNOME Usability hackfest. The first mockup shows that once the user starts dragging the window the workspaces should zoom out and the edge of the workspace toward which the window is being dragged should appear. It also implies that the workspaces should scroll further if the window is being dragged past the edge. The second mockup proposes that there should be a way to drop the window on a new workspace if it is dragged to the right-most edge of the last workspace. I think this is a very nice design and Maxim Ermilov landed its implementation just a couple of days ago. [Demo the implementation.]
Another recent feature is the notification messages and the notifications tray. Here is the mockup that shows how the notification messages should look when they first come in. This is an unexpanded version that we call the banner mode. It should expand when the user mouses over it and in the particular case of the chat message allow to respond to it inline. Dan Winship recently got this feature implemented. [Sign in as tiramisucreampie into Empathy, as gelatosorbetto into GMail, demo a conversation.]
We also have all the notifications that appear through the notifications daemon working, such as music player notifications, Gwibber notifications, system updates, and so on. They currently appear in the default banner view and expand to show any actions they might have associated with them. Here are some future mockups for the music player and the e-mail client notifications, which show how we'd like the notifications to embed the custom info from the application.
(This was from a different slide, but is included in the video.)
We also have a custom Javascript console called Looking Glass that allows evaluating arbitrary JavaScript statements, as well as accessing and manipulating objects in the Shell from within the Shell. So it is similar to the Firebug in Firefox or to the interactive lisp facilities in Emacs in its nature. Let me demo it for you.
Things not shown in the screencasts:
(More info in http://live.gnome.org/GnomeShell/CheatSheet)
Window preview notification in the overview by moving the mouse scroll wheel over the preview
Keybindings
The screencast utility itself!