Editor’s Note:
Macworld
is profiling each of the announced features in the upcoming OS X 10.5 update. Today, we examine Spaces.

One of the benefits of Mac OS X is that it lets you open—and keep open—many applications simultaneously. (As I type this sentence, I’m running 17 applications, not to mention dozens of background processes.) The downside of this functionality is dealing with all the application
windows
. In Panther (Mac OS X 10.3), Apple introduced Exposé to help you quickly access a particular window among the throng, but you’ve still got a mental mess of windows crowding your screen, fighting for space. The solution?
Virtual desktops, which Apple will be adding to Leopard via a feature the company calls
Spaces
.

How it works

For decades, many computer users, especially those in the Unix and Linux camps, have been using virtual desktops to make sense of disorderly displays. (In fact, virtual desktops were available for the Mac, via third-party software, as far back as 1986.) Put simply, a virtual-desktops system convinces your computer that it has more display space than it actually has and lets you navigate that virtual space to access windows and other items. It can be a very useful feature, and it's one that
we hoped would be included in Leopard.

There are two main types of virtual desktops. The first makes your computer think it has a single desktop, larger—possibly
much
larger—than your actual display; you scroll around to access the sections of the desktop that are currently “offscreen.” So, for example, you could move all of your Web browser windows off to the right part of the virtual desktop and all of your Word documents to the left, and scroll back and forth; the entire desktop would scroll until you found the part you wanted to view.

The other type, and the one used by Spaces, creates multiple workspaces, each the same size as your Mac’s current display area, and lets you easily switch between them. Within each workspace, you place whatever application windows you desire. (Examples of third-party virtual desktop solutions for Mac OS X include
DesktopManager,
Space.app,
VirtualDesktop Pro,
VirtueDesktops, and
You Control: Desktops.)

The big advantage of virtual desktops is that they keep your current workspace uncluttered and focused. Instead of having windows from all applications in view simultaneously, virtual desktops let you divide those windows into separate views based on specific tasks—for example, working on a report, browsing the Web and RSS feeds, answering e-mail, creating a podcast, even just browsing files in the Finder—with each view containing only the windows needed for that task. Although you could accomplish a similar result by hiding and showing various combinations of applications and application windows, virtual desktops make the process much easier—a keystroke or menu selection does all the grunt work for you. Think of it as Fast User Switching, but for switching between tasks for a particular user instead of between different user accounts. However, unlike Fast User Switching, you don’t waste system resources by having to launch multiple instances of the Finder, applications, and the like; you’re running a single copy of each application, and a single Finder, but windows
within
each application are organized into separate visual spaces.

Hit a hotkey, and Leopard’s Spaces will give you a bird’s eye view of all of your workspaces.

The drawback to virtual desktops has often been complexity: It’s difficult for many people to “wrap their head around” the idea, and even if you can, the user interface of many virtual desktop solutions has been confusing. For example, making sense of what was located where, how to switch between workspaces, and how to move things between workspaces are frequently-cited complaints. Spaces, in typical Apple fashion, hopes to bring virtual desktops to the masses by simplifying the experience and making it easier to integrate into your daily workflow.

Those familiar with Exposé will find Spaces’ interface quite familiar: Press a hotkey (F8 by default, although you can change it) and a “bird’s-eye” view appears, displaying all your workspaces. (Four workspaces appear by default, but, according to Apple, you can create up to nine and organize their layout via System Preferences.) Clicking on a workspace in this view switches to it; any applications or windows opened in a particular workspace are linked to that workspace.

Jump to a workspace by clicking on the workspace view—I’ve jumped to Pages by clicking on the workspace in the upper left-hand corner for the first screenshot.

The organization of this bird’s-eye view isn’t just for show; it represents the position of each workspace in relation to the others. That may sound confusing, but it makes more sense when you learn that, like Mac OS X’s Command+Tab application switcher, you can also use the keyboard to switch between workspaces: Pressing Command+arrow (left/right/up/down) shifts to the next workspace in that direction. During such a switch, a translucent-bezel overlay—a sort of “workspace map”—appears onscreen, making it clear which workspace you’re switching to. (Given that many text-oriented applications use Control+arrow for text navigation, we assume you’ll be able to customize these keyboard shortcuts.)

(If you don’t like the current workspace layout, it’s easy to rearrange it: Just bring up the bird’s-eye view, grab an open [non-window] area of a workspace, and drag it to another position; the two workspaces will swap positions.)

You can use the Command and arrow keys to switch workspaces; note the workspace map indicating the direction and destination of the switch.

You can also switch to a particular workspace by clicking the Dock icon of an application
in
that workspace. So, for example, to switch to your Web-browsing workspace, you can simply click the Safari icon in the Dock. If an application currently has windows open in multiple workspaces, you can cycle through those workspaces by repeatedly clicking on the application’s Dock icon. (I assume that if you use Mac OS X’s Command+Tab application switcher to switch to an application, this will similarly switch you to the workspace[s] containing that application's window[s].)

One of Spaces’ most unique features is the ease with which you can move windows
between
workspaces. When viewing the bird’s-eye view of workspaces, you move a window from one workspace to another by clicking the window and dragging it. And, as mentioned above, an application can have windows in more than one workspace—just create a new window in that application and drag it to the desired workspace. (We don’t yet know if you can have the
same
window in multiple workspaces.)

Apple hasn’t neglected Exposé when it comes to Spaces. When accessing Spaces’ bird’s-eye view, Exposé’s various modes still work: Within each workspace, you can see all application windows, all windows in the current application, or the Desktop. (Of course, since each screen in this display is smaller than normal, the windows aren’t as quite as distinct as they would be with only a single workspace/screen.)

Why it was added

Apple’s position—and one that holds true in my own experience—is that many tasks require a group of applications to complete, but different tasks require different such groups. For example, if you’re working on a Web site, you’re likely have a photo application (such as
iPhoto
), a Web-authoring app (such as
iWeb
or
BBEdit
), and a Web browser running. When working on a report, it’s common to use word-processing and spreadsheet apps together. And when working on a presentation, you might be using a very different set of applications. Instead of having the applications for all your tasks competing for screen space, or having to quit and launch groups of apps in order to have some semblance of onscreen order, virtual desktops—Spaces, in this case—provide a solution that offers the best of both worlds: All the applications you need, at your fingertips, without the clutter and confusion.

Who’s it for

Spaces is a feature that’s unlikely to appeal to users at the extremes: If you spend most of your time browsing the Web and reading and composing e-mail, you won’t get much benefit from Spaces; if you’re an advanced user who’s already a fan of virtual desktops, you’ll likely want something with a bit more functionality. But for the millions of people in the middle—those who use their Macs for many different tasks throughout the day and who often find themselves wishing there was a better solution to window clutter—Spaces will be, at the least, a welcome option.

Spaces should also be popular among those who use virtualization applications such as Parallels to run Windows or other operating systems on their Intel Macs: One workspace can be dedicated to running Windows, one for Linux, and the rest for Mac OS X; you can then easily switch between operating systems with the press of a key.

What’s missing

From the brief demos we’ve seen, Spaces looks promising. However, a few questions remain. First and foremost is compatibility with older Macs. Apple notes on its Web site that Every Mac comes equipped with powerful graphics technology, so you can take advantage of whiz-bang Leopard innovations like Spaces without worrying about whether your computer can deliver the goods.” Given that Spaces likely requires CoreImage support, like Exposé and other recent OS X eye-candy features, what isn’t clear is whether or not Spaces will run on older Macs with lesser graphics cards.

It⁏s also not yet clear what, if any, advanced functionality Spaces provides. For example, current third-party virtual-desktop utilities offer features such as the ability to display a particular window in multiple workspaces; to customize “workspace maps,” keyboard shortcuts, and transition effects; and to save and restore workspaces when you log out or shut down.

Finally, it’s unclear how Spaces interacts with windows that have been minimized to the Dock: Do they remain in the Dock across workspaces? (In other words, does the Dock show all minimized windows in all workspaces?) If so, does un-minimizing a window in a different workspace move it to that workspace, or does doing so automatically switch you to that window’s workspace (as happens when you click on an application icon in the Dock)? We have plenty of minor implementation questions.

What it means

There are some very good virtual desktop utilities out there
right now
. Some of which, such as VirtueDesktops, even offer a user interface similar to that of Spaces. But most are aimed at more advanced users, and none makes virtual desktops easy to understand or use. Apple has taken what has traditionally been a power-user feature and attempted to make it easy to use and understandable for more mainstream users. If Spaces delivers on this promise, I suspect that virtual desktops just may catch on among more-typical users. After decades of being relegated to the geek crowd, that would be an accomplishment.