If you are not familiar with this series, see part 1.

One of my favorite features of the Gnome 3 shell is how it deals with workspaces. See, when I was a younger Hacker, I loved the idea of workspaces, and I spent a lot of time thinking about how I would lay out my workspaces and what I would do with them, and what things would go into what workspaces and how many workspaces I would have. See the problem yet? Workspaces should not take so much time! It dawned on me a little later that I was gaining no productivity advantage in using multiple workspaces, and that all I really was doing was wasting time. In the end, I dumped the use of workspaces and just relied on minimization to hide things that I did not want. This was true for tiling window managers as much as for normal ones. In the end, I just did not find it that useful to have workspaces around.

Why did I find workspaces relatively useless for me? Well, at the time, I would have responded that they took too much management. Now, I think I can put a clearer spin on things. Basically, I do not have a static workflow where I have certain applications and windows that I want to do certain things, and I do not start by opening up all of my work at once. I like to have most things turned off first, and have just what I am working on at that moment around. The problem with static workspace layouts is that I would always have to remember to switch to the workspace that I wanted to use, which was supposed to correspond to something interesting, like my Internet workspace. Unfortunately, my workflow just doesn't map into nice neat chunks like that. Sometimes I would want to create a one off and work with a single application all by itself (like a virtual machine), but then I would want to switch back to the set of windows that I was using before, but then something else might come up, so I want to focus on that while leaving the others alone. Basically, I did not know ahead of time how I would want to layout my workspaces. It was inconvenient to get an application to a workspace, because I had to actively switch modes of thinking to use the workspaces.

With Gnome's stack-oriented approach to workspaces, I can create and remove workspaces on the fly, on demand, as I need them. If I do not need a new workspace, then I do not have to worry, because I will not have them. But if I need to break out a couple more workspaces in rapid succession, I know that I will have enough workspaces to do that. Moreover, in Gnome 3, it is oh so easy to get the applications that I want into the right workspaces. I can open an application in a current workspace, and then if I decide that things are getting too cluttered, I can easily move some of the windows quickly to a new workspace. This is easier because the management of these things is it's own little application that I can go to in the form of the Activities viewer. I do not have to do the moving through obscure contextual menus or a small desktop widget somewhere on my screen that always has to be small enough not to get in the way, which of course makes it too small to use nicely.

As I mentioned in part 1, the fact that I can just middle-click on an application to spawn it into its own workspace is something that I take advantage of plenty, and it's nice to have such an easy way to get applications into their own workspace. The bottom line is that stack-based workspaces are the only workspaces that I actually find myself using on a regular basis, and they are the only form of workspaces that I actually think improves my productivity. They get out of your way when you do not need them, and they do not waste real estate, distracting you from your main task, but they are readily there when you do find an use for them, and it is easy to utilize them.