I’ve been intrigued by the concept of virtual desktops since encountering them in a Unix system many years ago (I think it was an SGI Irix system), and then later when I set up Linux about 5 years ago to play around with that OS firsthand. Then, a couple of years ago I saw an early build of Virtue Desktops and thought it was pretty cool. I really loved the nifty transition effects and all the desktop customization you can do with Virtue.
However, Virtue seemed pretty flaky at the time, so I looked around to see what other virtual desktop environments there were for Mac OS X. To my surprise, there were several in addition to Virtue… including some commercial implementations. After trying all the free ones (I wasn’t interested in paying for this feature, since I didn’t even know if I’d like it), I decided Virtue was the best of the bunch.
But I also decided that Virtue’s flakiness was simply adding more time to my routine rather than helping me organize my work, and I finally broke down and decided to try You Control Desktops. Now, it may be a total coincidence, but just after I installed Desktops and restarted my system, the whole OS began to flake out, and I ended up having to trash my hard drive.
Needless to say, whether that was You Desktops’ fault or just a bad hard drive kicking in, it soured me on the whole idea of virtual desktops for awhile.
Then, when Apple announced in August that one of the premier features of its forthcoming Leopard OS would be a virtual desktop system called Spaces, I thought that maybe someone would finally get this thing done right on Mac OS X. Maybe the problem has been that the implementations I’d tried just weren’t intuitive enough, or right-featured enough, to be useful to me. I even said this out loud in an article of video snippets from the WWDC keynote that I published in mid-August.
Apple’s initiative with Spaces also made me question my previous conclusion that virtual desktops were not worth the effort. If Apple is investing the energy to bring virtual desktops to “the rest of us” someone at Apple must believe that they are a user interface enhancement that will really benefit “us.”
So, I opened my mind once again to the idea of virtual desktops. As a member of the select Apple developer group, I’ve been getting the Leopard “seeds” as they’re released, and I’ve taken the opportunity to try out Spaces along with other new features of Leopard. Given my nondisclosure agreement with Apple, I’m not going to say anything about Spaces that isn’t revealed in Apple’s own presentation of it on the Leopard website. Instead, I’m going to spend a few minutes sharing my impressions of virtual desktops in general and of four other specific VD applications that are already available for Mac OS X:
At the outset, I’ll confess that my note-taking for this exercise wasn’t as rigorous as usual… I didn’t test for the same set of features in each application. Unfortunately, I can’t go back now and refresh my memory for the commercial products, because their demo licenses have expired. The reason for my relatively sloppy approach probably reflects my renewed conviction, after thoroughly testing Spaces, that for most computer users, virtual desktops are a waste of time and effort. Simply put, they’re an idea whose time has passed.
That’s a pretty harsh judgment, I realize, and one likely to make a good number of fellow geeks stop reading right here. After all, some users of virtual desktops feel strongly that they are highly valuable and necessary—for them. And I suspect that’s true. Given the probability for misunderstanding when expressing an opinion on a topic like this, I want to begin by exploring why virtual desktops arose in the first place and what benefits users get (or believe they get) from them. I also want to explore the expectations users have of virtual desktops like Spaces, in the very likely event that they’ve never actually used such a system themselves.
From what I’ve read of the history of virtual desktops (VDs) and some of the discussions among those who question their value and those who defend their necessity (for links, see the Addendum), I’ve concluded that the reasons for virtual desktops can be summarized as:
- They provide a means of dealing with “window proliferation”—that is, they provide a way for users to segregate certain windows of the same application into different compartments, to make them easier to locate and refer to.
- They are a strategy for compartmentalizing one’s work at the computer. For users who perform several discrete tasks during a computer session that involve specific, mutually exclusive applications, VDs can provide a space for each task. In this case, having VDs set up is kind of like having several computers in one.
- They are a way of eliminating visual clutter, both from windows and from desktop icons. Even with tools like Expose and Dashboard, and with the rise of tabbed applications like Safari, window clutter can easily become both distracting and visually unpleasant. And if you are the type who likes to be able to see your beautiful desktop picture now and then, nothing beats escaping to a VD without all the desktop clutter for a few minutes.
- Closely related to (3), VDs provide a way of dealing with small laptop screens. Visual clutter on laptops is almost unavoidable, but perhaps if you use VDs, you can effectively enlarge your desktop several-fold.
All of these arguments seem perfectly reasonable, and they do hold out intriguing possibilities to the rest of us. However, I’ve concluded that relatively few users will actually benefit from a system like Spaces. Further, I think there’s a much simpler, less complicated solution to some of these problems that Apple would do better to concentrate on. The solution I refer to is already used by a select few who discovered it on their own, whether by accident (like me) or while seeking a more OS-9-like windowing system.
The users who actually might benefit are probably the same ones who developed virtual desktops to begin with. Remember that VDs proliferated as a desktop paradigm on Unix systems, where most of the users were system administrators working with X-Windows if they were running any GUI tools and with text-based Unix shells, each of which were holding a session with (most likely) some remote system. For system admins who need to monitor multiple systems on one console, I can tell you it’s pretty difficult to distinguish one shell window from another. Further, if you’re responsible for managing and monitoring performance on system X and system T at the same time, it’s much easier to keep a set of windows for system X segregated on a VD and switch back and forth than to try to arrange windows for both systems on one relatively small monitor screen. If you are a real super user and have responsibilities for many more than 2 such systems, VDs become more than just a nice trick–they become a real necessity. Of course, if you switch to using a tabbed terminal app like iTerm together with a tabbed browser, some of the problems system admins faced in earlier years disappear.
I’m sure there are some other types of jobs that fall into this kind of situation–where each VD really does represent a totally different task with its own unique environment and applications–but it’s hard for me to think of any others right now.
Most of us have several applications that we use throughout the day for all the tasks we do, and if you fall in that category, I think you’ll just find VDs confusing. As an example, if you’re someone who needs to keep an email client close at hand for pretty much your whole day, don’t make the mistake of trying to pin that client–or one of its windows–to a particular desktop.
Another such application for many of us is our web browser. I found it impossible to segregate one browser window and its tabs for “task A” and another window for “task B” and one for “personal” etc. Browser tabs and windows are just too unpredictable and hard to control. And the minute you find yourself wasting precious moments trying to remember which desktop you left Gmail on, you’re using up whatever goodwill you allocated to virtual desktops at the beginning of your experiment. Besides, let’s recall that VDs arose before web browsers supported tabs, and now that they do, it’s easy to use tabs to create multiple “desktops” within your browser itself.
And what about apps like Activity Monitor or Disk Utility? Do they get pinned to a particular desktop, or are they free to float among them? Depending on which VD tool you try, you may or may not find it confusing to get a particular window to show up on all your desktops, and even more difficult to erase it from one while keeping it on the other three. From my experience, the minute you start trying to custom-assign windows to particular desktops, you might begin experiencing flakiness. As I said, if you find yourself going from desktop to desktop searching for a tool like Activity Monitor, you’re working too hard at the whole virtual desktop thing.
There’s also a bit of a catch-22 involved if you have several applications (as I do) that you need to have at your side throughout the day. On the one hand, if you try to put all your “always need them” apps in, say, one desktop, you end up just making them harder to reach than they are now. How? Well, think about it… Using a VD is kind of like using Dashboard: Getting to it requires first some keystroke or mouse movement and the time for a transition effect. Unlike Dashboard, if you use more than one VD, you also have to remember exactly which set of keystrokes will get you there. If you use a “pager” you have to first invoke the pager and then click on it with the mouse or use a keystroke.
One of the main reasons more people don’t use Dashboard, from what I’ve read, is that it exists on a separate layer from the desktop: You have to “travel” to get there, as well as to get back. Not much effort, you say? I fully agree. And yet, it presents an obstacle that many would rather avoid. As much as I love the Dashboard, I don’t keep anything there that I need to refer to more than once or twice a day. Instead, I use the developer mode and move any truly critical widgets to my desktop.
OK, suppose you decide to let your critical apps show up on all of your VDs. So that each VD will have a Finder window or two, a browser window, a mail window, a chat window (if you partake), your VOIP client (ditto), a word processor or spreadsheet, and so on. If you take that route, you’re back to where you started: Window clutter and everything all cozy together on one desktop.
If you then have discrete tasks like photo editing or moviemaking or audio processing or animation or programming or whatever it may be, you end up with separate virtual desktops for each of these tasks, with each desktop differing only in the one or two apps associated with those tasks. Now, if this is the case, and if you don’t actually need Soundtrack open when you’re using Photoshop, or you don’t need Smultron open when you’re using Aperture, or iMovie can simply sleep when you’re blogging with Ecto, then why not just close them when you’re done and reopen them? Wouldn’t that be easier on the old virtual memory and processor? Keeping a set of applications open just so they’re ready for you when you visit once a day merely puts stress on CPU and ties up virtual memory, thereby reducing efficiency in the applications you’re currently using. On top of that, doing this consumes an extra brain cell or two to remember which desktop applications “belong” in.
So, what did I hope to get from virtual desktops like Spaces? I had most of the hopes expressed in the four rationales stated earlier, but here’s what I learned and the alternatives I’ve adopted for each.
Reducing window proliferation
My solution for window proliferation is Single Application Mode (SAM). SAM isn’t an “official” part of Mac OS X, but there are quite a few tools that support it. What is SAM? Basically, it’s a mode that causes the active application (and all of its windows) to hide automatically when you switch to another app. There are a multitude of applications and utilities that enable this mode, and all of them that I’ve tried define the Shift key as a default override, so that if you don’t want the active app to hide, hold the shift key while you select the next one.
After beginning to write more about SAM at this point in the article, I’ve decided that the topic is too big–and too interesting–to distract from the main topic of this article. So look for another article soon that will take an in-depth look at SAM and its history and uses on Mac OS X.
The bottom line is that SAM keeps your workspace clean and uncluttered. You never have to worry about seeing multiple app windows sprawling across the desktop and trying to find the right one. With SAM, you just use the application switcher (Alt-Tab) or Dock to switch apps, and all apps are readily available on the same desktop. If you need a better way to organize related apps than either the Dock or Finder provide, most users will do better to try one of the many “dock replacement” apps that are out there—apps such as Drag Thing, Overflow, Drop Drawers, or the freeware Yada—or go with a full-service menubar utility like Butler, ClawMenu, MenuStrip, or You Control, which let you easily define your own custom groups of apps and access them from the menubar.
Keeping work spaces separate
This is one of the motivations for VDs that I thought had the most promise starting out. I began by considering the distinct work processes I engage in both at home and at work:
- Blogging (writing articles)
- Programming (writing code)
- Designing (mostly for the web)
- Researching (for any of the above)
- Processing Classic 45s orders
- Adding Classic 45s inventory
- Testing software
- Communicating (with staff, family, friends, colleagues, managers)
- Managing projects (mostly software development)
- Shopping (for work and pleasure)
- Recording music (mostly from my 45 collection)
- Screencasting (mostly for the blog).
- Managing websites (various at work at home)
Contemplating setting up 13 different VDs, however, seemed like too much work… at least until I was convinced of the value of doing so. Instead, I tried starting with three desktops: One for non-Web activities, one for web-related activities, and one for personal activities. The problem with this was that so much of my life got crammed into the web-activities desktop that the others seemed superfluous. The main benefit to this arrangement was that when my manager would pop in, I could quickly switch from my personal desktop to one of the other two, thereby hiding activities I might not want the upper types to know about.
I really couldn’t think of a logical way of dividing my activities into discrete desktops in a way that made sense, because so many of them are interrelated–at least, in terms of the applications they rely on. Let me go through my analysis of this, starting with the above activities list:
- Blogging
-
- Safari/WebKit (research)
- Ecto (writing)
- DevonThink Pro (research/testing notes)
- Photoshop (illustrations)
- TextEdit (HTML tools)
- Constrictor (screenshots)
Even if I had only one window for each of these applications open in my Blogging Desktop, it would be so cluttered without SAM as to be no better than no VD at all. Typically when I’m blogging, I keep all of these apps running, as well as some other tools like Activity Monitor, Observation Post, Skype, Ovolab Phlink, and Remote Desktop. And that’s just the ones that have windows! I never know when I’ll need to refer to Activity Monitor, and Observation Post lets me know via Growl when USB connections, network ports, or Bonjour services come and go. Skype is my VOIP phone, and Phlink notifies me via a small bezel who’s calling on the land line. Remote Desktop is just part of my continual duties as household system admin.
- Programming
-
- Smultron (text editor)
- WebKit/Firefox/Opera (testing)
- Photoshop (graphic design)
- PixelStick (graphic design)
- YummyFTP (file transfers)
- CocoaMySQL (database tool)
And that’s just for starters. If I’m working on a Dashboard widget, I might be also running Widgetopia or Dashcode, and if I’m doing heavy CSS coding I’ll have StyleMaster open, as well as a couple of Dashboard widgets running on the desktop (e.g., my PHP reference widget, CSS reference, etc.). Again, this is way too many windows to fit onto any one desktop, and to separate them onto different desktops would make my work harder—not easier.
- Designing web graphics
-
- Photoshop (graphic design/editing)
- Constrictor/SnapzPro (screenshots)
- Safari/WebKit (preview)
- Smultron/TextEdit (HTML editing)
- PixelStick (graphic ruler)
Again, just the basics. This comes closest to working, but if you try to have all of these visible on the same desktop, you’ll either find yourself constantly arranging the windows to keep your environment from looking like a bad Windows desktop, or you’ll understand why Windows users yearn so for a “true” maximize feature in Mac OS X so they can make the other apps hide by basically creating a full screen view of each app. Sorry, in my book “true maximize” is just another way of achieving single-application mode. Only, you no longer have any desktop real estate for anything else, either aesthetic (like a desktop picture or background Quartz composition) or functional (like Activity Monitor or Dashboard/Yahoo widgets). If what you want is SAM, then do SAM the Mac way!
I think you get the picture by now… certainly, talking through it has only convinced me of the fallacy behind this particular rationale for virtual desktops. And that’s without even considering what to do with apps like iTunes, System Preferences, Mail, and Preview that I’m likely to have open most of the day no matter what I’m doing.
Eliminating visual clutter
Isn’t this the same as “window proliferation”? Well, it’s certainly very closely related. However, when people talk about using virtual desktops to eliminate visual clutter, they’re typically thinking of easily enabling an environment free of desktop icons as well as application windows. Many users need this in order to take clean screenshots of their desktops, while others just want to escape for awhile to a specially designed desktop picture or movie that isn’t compromised by unnecessary visual elements. Unfortunately, from my tests, none of the current crop of virtual desktop apps can eliminate desktop icons, and they don’t let you define specific desktop items for each desktop. Your desktop folder is still your desktop folder, and it shows up even if you can customize the desktop picture for each VD.
To eliminate desktop icons, there are numerous alternatives that are easier to implement and use than virtual desktop software. My choice at the moment is an application enhancer called DesktopSweeper, which simply sweeps away all the desktop icons whenever I navigate away from the Finder. It’s highly customizable and does its thing automatically, without me having to worry about it. This means my one desktop is always free of clutter, unless I’m working in the Finder. And even then, it’s my choice to see the desktop icons when Finder is active. If you don’t want to run Unsanity’s APE, there are other options. One I just discovered recently comes in the unlikely form of the Mac OS X maintenance/customizer utility MacPilot, which has “Show icons on the desktop” as the first checkbox in its Finder pane. Just deselect this checkbox, restart Finder, and you’ll find that all your desktop icons are gone… even when you’re in the Finder! This may be a little extreme for most folks, so I strongly recommend DesktopSweeper.
If you want to temporarily switch desktop pictures, there are again a large number of options. For a fee, you can use DeskShade, which works quite well and also lets you run QuickTime movies on your desktop. A terrific freeware tool that I use is PictureSwitcher, which has pretty much the same basic features as DeskShade, but is actually a bit more convenient to use. If I need to switch to a standard Mac OS X desktop picture, or to a plain white background, PictureSwitcher lets me do this with a couple of clicks on its menubar icon menu. There’s also a fairly new Dashboard widget called Imperium that will do much the same thing.
However, lately I’ve found myself doing that less and less for simple screenshots. Since discovering Constrictor, I don’t need to live by SnapzPro X’s rules anymore. Constrictor has the very neat trick of letting you specify a background color for your screenshots, and it can preserve transparency when saving a TIFF screenshot. This lets you take standard-looking screenshots no matter what desktop picture you’re currently using. In fact, if you use Constrictor this way and set it to open its saved files in Photoshop, you’ll discover that they have no background at all! You have the application window and its generated shadow against a transparent background. From here, you can put whatever you need to in the background when finishing up the shot.
Enlarging small laptop displays
Oops! I said I’d tell you how I’ve dealt with each of these rationales for virtual desktops, didn’t I? I was mistaken… I’ve never used a laptop for any length of time, so I can’t advise you on how to deal with this. I’ll bet having a 15- or 13-inch display really sucks!
If I were in this boat, as I may be if I finally take the laptop plunge in 2007, I’m pretty sure I’d still find SAM a big help, and I know I’d also keep my 23″ monitor for use at home. Nothing beats a large monitor, and you’re going to be mistaken if you think Spaces or any other virtual desktop application can save you from this basic truth.
Conclusion
I still think the concept of VDs is cool, and the most rewarding aspect of using ones like Virtue Desktops is getting to see all those stunning animations as you change desktops. But as a practical tool to make me more productive, Not!
If you’ve read any of my past articles on Mac OS X and Apple, you know I’m not a knee-jerk critic of the fine company in Cupertino. However, in this case I think they’ve chosen the wrong “cool new feature” to promote. That’s not just because the current, pre-release version of Spaces has failed to wow me: It’s because I don’t think VDs are the answer to anyone’s window clutter problems. In fact, VDs have the potential to make Mac OS X more complicated than necessary, which isn’t the way the company usually leads. If someone like me, who lives and breathes Mac software and computers in general, finds VDs confusing, I can only conclude that they don’t have much potential to enhance the overall usability of Mac OS X.
As far as innovation is concerned, there’s also nothing innovative about Spaces, as it turns out. The one innovation I assumed was Apple’s idea was the ability to drag windows and apps around in the “pager,” as the August WWDC demo showed. Certainly, that elicited a lot of “oohs” and “aahs” from the developer audience that day. What I didn’t realize is that both of the current commercial VD implementations—Codetek VDTP and You Control: Desktops—incorporate that feature. So, Apple doesn’t even have decent bragging rights with Spaces. (It’s true that Spaces shows live thumbnails of windows in its elegant pager, which is a distinct improvement.)
Of course, there’s always the possibility that I’m totally off-base here, and that VDs are a lot more valuable than I’m giving them credit for. Perhaps I just haven’t figured out how to use them effectively. Whether I’m right or wrong about them, I promise to keep an open mind, which is just the way I was brought up here on Mars.
Notes on the virtual desktop applications
Virtual Desktops | Version | Price | Pros | Cons |
3.1 |
40 |
|
|
|
0.53r260a |
0 |
|
|
|
1 |
0 |
|
|
|
1.2 |
30 |
|
|
|
0.5.3 0.6 beta |
0 |
|
|
Addendum: A few VD Links
- Wikipedia article on virtual desktops
- Wikipedia article on X window managers
- Review of virtual desktops on the Apple Blog
- Article from MacProductive.com
- ATPM Review of Virtue Desktops
- MacMuser Thoughts on Virtual Desktops
- MacZealots article on Mac OS X 10.3 (Panther), followed by a representative discussion of the pros/cons of virtual desktops.