Having returned from an archeological dig into the dark history of Mac OS X, I’ve unearthed a feature that could change the way you interact with your applications, enabling you to focus on one or two more easily than in the past.
Back in 1999, when Steve Jobs first showed off the new Finder in Mac OS X, it ran in a single-application mode, where switching from one application to another caused the first application to minimize (this was the original demo of the Genie effect). This was intended to be the default behavior, but it was so widely reviled that Apple quickly changed the default to the familiar multi-application mode that shows multiple applications on the screen at the same time.
Mac OS X’s multi-application mode differed from how previous versions of the Mac OS worked in that it interleaved all open windows without regard to which application they belonged to, a feature that annoyed a lot of long-time Mac users.
In Mac OS X 10.6 Snow Leopard, Apple has made significant improvements to the Dock, including improved Expose integration and minimizing windows invisibly, among much else. As a result, people who are starting to use the Dock seriously for the first time are discovering that clicking an icon in the Dock brings all its windows to the foreground. This interface behavior isn’t new in Snow Leopard, of course, but it’s an example of how Apple has never really given up the desire to make users focus on a single application at a time.
Single-application mode is how the iPhone works, of course, and on the Mac, almost all Apple applications – think about Mail, iTunes, and iPhoto – rely on a single window that can easily take over the entire screen. When an application needs a second window, such as for keywords or editing in iPhoto, it is generally a palette that disappears when the application is not in the foreground.
But it goes further. Lurking in the scary bowels of Mac OS X for all these years has been this little command, which brings back single-application mode. (Go ahead and try it – it’s easily reversed.)
defaults write com.apple.dock single-app -bool true
For single-application mode to take effect, you have to relaunch the Dock with this second command.
That’s right, the original single-application mode in pre-release versions of Mac OS X is still with us. Although it was always intended as a simple option for people who are not computer experts, it turns out to be an interesting option for the power user.
The most important fact to realize is that single-application mode is tied exclusively to the Dock. This means that if you click an application’s icon in the Dock, it immediately hides all the other applications, including the Finder.
However, if you switch applications through any other method, including clicking another visible application’s window and the Command-Tab application switcher, Mac OS X’s normal multi-application approach remains in effect, and nothing will be hidden.
You can thus combine methods of switching between applications. Click Mail in the Dock, then use Command-Tab to switch to Safari, and you’ll end up with both Mail and Safari on screen, and nothing else. If you later want to hide Safari again, click Mail’s Dock icon (or just Option-click on Mail’s window).
If you think about this for a minute, you’ll start to see the possibilities. Enabling single-application mode means that you can quickly and easily build a custom list of visible applications, and that list is dynamic. In other words, you can achieve a lot of what you might use Spaces for, without having to switch between spaces or manage which applications show in which spaces.
The main advantage to this single-application mode is that clicking an application in the Dock has always, as I mentioned earlier, brought all that application’s windows to the foreground. So, when I click Terminal’s icon in the Dock, not only do all other applications immediately disappear from view, I see the window for my local shells, the window for the remote shells on my mail server, and the window for the remote shells on my primary DNS server. These windows are exactly where I want them on the screen and there are no other windows cluttering up the view. However, if I need to reference a Web page at the same time, I simply use Command-Tab to bring up Safari, giving me its window and Terminal’s windows all on one
With Spaces, I kept all my Web browser windows in one space, but that meant a lot of swapping back and forth, or moving a browser window to another space temporarily. With single-application mode I always have the applications I want in the foreground visible and everything else is hidden from view.
The primary downside is that single-application mode doesn’t play nicely with Expose. When you activate Expose, it shows only windows for visible applications. I was hoping that it would treat the hidden applications’ windows as minimized windows, but that was not the case.
For me there is also an issue with full-screen video. If I am watching something with VLC or QuickTime Player on my second monitor and I click an icon in the Dock, the video is hidden from view. That’s not surprising, but it’s not what I want since I think that a full-screen video should stay full-screen no matter what. It’s something to be aware of if you tend to watch video while doing other work, as I do.
There may be other issues I haven’t encountered in the few days I’ve been using single-application mode, but getting back to the normal multi-application mode is easy. Just paste this first command into Terminal and then restart the Dock with the second command.
defaults delete com.apple.dock single-app
In the end, the main thing that I’ve noticed in the last few days is that it is much easier for me to concentrate on a single task when I can quickly hide all unrelated applications and show just the one or two that I need right now. I’m finding that this method works better for me than Spaces, and I am a big fan of Spaces.
[Lewis Butler is a longtime Unix system admin, postmaster and Mac geek. He is a frequent contributor to a large number of mailing lists under his “LuKreme” alias.]