I’d like to come back to my initial observations on Mac OS’ handling of window management because the more I figure it out, the less it makes sense.

You will notice that comments on my initial blog entry on this topic are usually along the lines of “I use Exposé all the time, I’ve never had any problem” and “Just use the right side of the dock, that’s what it’s for”.

The problem is that both these answers are wrong, and I’m beginning to understand why. The first hint I got was my realization that sometimes, pressing Alt-~ would only cycle through three FireFox windows while I’m pretty sure that I have more than six windows open. Where did the other three go?

And then, the same remark with Exposé: I know I have six windows, why do I only see three when I press F9?

The answer is probably obvious to Mac OS veterans but baffling to anyone else: Exposé and Alt-~ will only show you windows that are not minimized. If you want to pick a window that was minimized, your only choice is to click on an icon on the right side of the Dock.

This is bad for two reasons:

  • There doesn’t seem to be any keyboard shortcut for selecting a minimized window (this is part of a more general problem: Mac OS is quite hostile to keyboard shortcuts, which is very irritating when you are a proficient Windows keyboard user).

  • If you are looking for a window, you first need to remember if you minimized it or not, and then you know in which location you should look for it.

This latter part is really a momentous UI error, and it’s known in the UI field as a “mode”. Modes have been deemed evil a long time ago and most modern UI interfaces avoid them like the plague, Windows Office applications being a pretty good example of how to achieve that goal. When your application has a “mode”, you are putting a burden on the user and you are forcing her to remember what the current mode is before she can decide what a certain command is going to do. One of the first (and worst) offenders is the famous vi, on which every single letter will have a different action depending on whether you’re in edit mode or not.

This also explains some of the comments I have received on my previous entry, such as “I rarely ever minimize, I just leave all the windows open all the time”. I initially thought the person who wrote that was kidding, but I know now that he was serious, and the reason is obvious now: when you have a mix of minimized and open windows, finding the right one becomes a challenge, so your only bet is to always minimize or to never minimize. Coming from Windows, this is a philosophy that’s extremely hard to embrace.

I understand the initial intent of trying to separate “applications” from “documents”, but this metaphor is completely broken nowadays. Is a FireFox windows with many tabs open an application or a document? Well, this is actually the wrong question, you should really ask “Did I minimize that window last time I saw it or did I just move it in the background?”.

Again, Windows gets it right by putting all the windows in the same stack. Whenever you need to look for one, you look in one place, and some third-party utilities let you refine your search.

Well, to be honest, Windows only gets it partially right as well, since it won’t let you narrow down your search to only windows of the current application, hence my confessed love for TaskSwitch XP.

The ultimate window switcher?

So what’t the solution to this window management mess on Mac OS? There actually is one, and interestingly, it was never suggested by any of my expert MacOS buddies: if you right click on the icon of the application on the Dock (the left side, not the right side), you will get a list of all the open windows, minimized or not.

Right-click for the win!

This is exactly what I need and my experience with window switching has become a lot smoother since I discovered this.

It’s not perfect, though, and this leads me to my second main gripe with MacOS X, which I will address in the next entry. Until then, feel free to share how you switch windows on Mac OS in the comments, since I’m really curious to learn about the working habits of veteran users.