Virtual desktop systems allow me to set up multiple workspaces within my window manager, each of which contain a separate set of application windows which will only be shown when the workspace is activated. This is a powerful expansion of the idea of application switching (alt+tab) as I can now switch easily between groups of applications, instead of just a single application. By creating task-related workspaces, I am able to stay focused on only the one or two tools that matter for the task I am currently working on, while still having other tools open for access later.
While virtual desktops have been around for ages in the *nix world, Microsoft still refuses to include these capabilities out of the box. This has led to an array of 3rd party tools that provide virtual desktops. I've tried several of these tools over the years, and VirtuaWin is the one which I keep returning to. VirtuaWin is a virtual desktop manager for Windows which gives you a set of virtual desktops and global keystrokes for switching between them.
By default, VirutaWin provides you with two actions: move to another workspace (win+←/↑/→/↓) and move to another workspace with the current window (alt+win+←/↑/→/↓). There is also a module, Smart CoolName, which adds the ability to flash, for a few seconds, the name of the current desktop while switching desktops. You can also do some window management by clicking on the system-tray icon: switch to a specific window/desktop, move a specific window to the current desktop, and flag a window so that is is present on every desktop.
I can usually get away with just four desktops while I'm working:
- IDE and documentation windows
- tools which support my work, like database clients and JIRA windows
- my messaging clients and Outlook
- all the other application windows, work-related or not