Road to Mac OS X Leopard: Spaces

As mentioned, the first problem inherent with virtual desktops is making them easy for developers to support. Adding Spaces to Leopard as a prominent feature will help in this regard, but much of the groundwork has already been laid. Apple earlier added Exposé and Fast User Switching to Mac OS X, both of which detangled applications from making assumptions they shouldn't about their windows. That means most applications will work with Spaces without any problem, and those that need some work will have had a year-long head start in getting prepared for Leopard.

User Accessibility for Spaces

The second problem is making Spaces easy enough to understand and use productively. Spaces builds upon the idea of Exposé, except that instead of zooming out to give the user a bird's eye view all of their open windows, it backs up to showoff all their existing virtual desktops.

Spaces even dovetails into the Exposé System Preferences. After enabling it, users select how many individual Spaces they want to set up. There's room to set up a matrix of 4 x 4, multiplying the desktop by 16 virtual desktops and evoking the opening credits of the Muppet Show. That many virtual desktops might get difficult to manage in one's own head, however. A more likely starting point might be two rows of two, for a total of four. That's what X Window systems typically provide.

Everything in its Space

Each Space is numbered (as Apple's System Preferences graphic above indicates), and can be called up in a variety of ways. By default, Control+number jumps to a given Space, and Control+arrow key slides up, down, and across between the grid of Spaces. An optional Menu Bar Extra can also be enabled to provide a drop down list of Spaces by number.

If you have trouble keeping track of your Spaces by their numbers, you can alternatively bring up an Exposé-esque, graphical overview of the Spaces grid either by clicking on the Spaces icon in the Dock, by hitting the assigned hot key (which is F8 by default), or by triggering the assigned mouse button. If you have a multi-button mouse, Apple offers to use the nonsensical "secondary" right mouse button or the more sensible "middle button," which mapped to the scroll wheel button of the common mouse I used.

When triggered in any of these ways, the Spaces grid pops up with a full screen display of the scaled down contents of the windows in each Space. In this view, there's no Dock, no menu bar, nor any background images (below). Clicking in a Space makes it the active desktop, but you can also freely drag windows from one Space to another as desired in this mode (iWeb is mid-move between Spaces below). This highly intuitive interface makes it very easy to bounce between virtual desktops and set them up as desired with an omniscient, big picture view.

Trading Spaces

Once set up, a Space can be assigned specific apps. In Apple's System Preferences graphic above, iChat, iTunes, Mail and Safari are each assigned to different Spaces by number. This sort of organization allows you to sequester specific types of applications together, so that, for example, all your messaging goes on independent of your Photoshopping.

What if you want to browse the web in one Space related to your research project, while also having a browser window open next to Mail in another? You can do that too, by simply creating a new window of whatever application you want to live in multiple Spaces. In the case of multiple browser windows, you can select New Window from Safari's Dock icon, although not every app supports this. This creates a new window for that app in the current Space, even if it has windows in another Space already.

In addition to Spaces' "Exposé mode," you can also move existing windows around between Spaces by selecting a window's title bar, then changing the Space using a control+number or arrow key combination. This pulls the window you have in mid-drag from the old Space to the new one. You can even drag and drop between Spaces (I dragged the title bar proxy icon of my document to Mail in another Space to copy the file in as an attachment), although it requires some finger orchestration to hit a key combo with one hand with mouse dragging with the other. Spaces seems to do everything one might imagine it could or should.

The subtle slide transitions —accompanied by a bezel graphic (below) indicating which Space you're in and where you're going —provide wayfinding feedback without being egregiously animated in an obnoxious, candy-coated way. There's no spinning cube animation to wait for, it just snaps into place. Anyone complaining that Spaces is nothing new because virtual desktops have been around for years as a feature needs to consider that an implementation of an idea is often much more important than the idea itself. This is one sharp Lamborghini, even if the Model T first rolled off assembly lines a very long time ago.

The Outer Reaches of Spaces

Once you have windows scattered all over your various Spaces, you can select a given Space by clicking on a Dock icon; if you've tied that app to a specific Space, you are taken there. If you have multiple windows for that app scattered across multiple Spaces, each click on its Dock icon will cycle through the various Spaces. This is brilliant.

Spaces doesn't interfere with Exposé (or Dashboard); all actions are encapsulated within the current Space. That means Exposé will only "show all windows" related to the Space you are currently viewing. I also couldn't confuse it by trying to Space walk while either Time Machine or Front Row were running full screen. Both appear to block the Spaces hotkeys. Other full screen-applications, including the Finder's Quick Look (formerly slideshow) feature, do not block you from changing the Space, but if you fly out to the Spaces grid view, you see the Finder window, not the full screen Quick Look panel. Click to zoom in, and you're taken back to your Quick Look view. It just works as you would expect.

Further, if you have multiple monitors on your system, the combined desktop acts as one Space. If you set up four virtual desktop Spaces, each one will represent the combined viewable desktop area (depicted below). Clearly, a lot of thought was given to the implementation of Spaces; this isn't just a group minimizing hack like MSVDM.

Having used virtual desktops before under CDE in my former life as a Solaris admin, I have to admit that I assumed Spaces wouldn't be too useful. Stuff that falls out of view tends to fall out of my sphere of attention. However, Spaces works so transparently, and offers so many options for organizing things just as you'd like, and makes moving windows around so effortless and intuitive, that I've grown quite attached to it. Now, instead of sorting through piles of open windows or minimizing so many browser windows that my Dock shrinks down into pebbles of icons, I can leave my windows all open, strewn across a universe of wide open Spaces, hopping around between them like Arthur Dent.