A virtual desktops manager is an extremely useful utility to have on a GUI. It allows a user to group windows or applications into groups, such that at any one time only those windows in a single group are visible.
Some properties of a good virtual desktops manager:
- There must be enough virtual desktops to be useful. For me, this value is around 6, for others it may be more. Perhaps the ultimate in flexibility is to allow the user to select exactly how many desktops there are.
- It must be possible to move windows from one desktop to another. For example, I use one virtual desktop for e-mail and web browsing, and a different one for coding. If I receive an e-mail with a code snippet, I want to (temporarily) transfer the e-mail window to the coding desktop.
- It must be easy and fast to switch between desktops. Hotkeys are used in many cases, in other cases a little map of virtual desktops is displayed in a corner of the screen and a click on the map will activate the corresponding desktop.
- New windows that a thread or application generates should appear on the same desktop as the generator. For example, if a popup window gets activated from the web browser I don't want it obscuring my text editor when I'm coding. (Some might argue this point - a new window is usually some kind of alert, and alerts should be noticed as they happen. There's an argument to be made for that, but I prefer once I get my things arranged by category to keep them arranged that way.)
- The manager itself should use as little resources as possible while still getting the job done well. Frills, extra features, and spiffy skins do not contribute to the quality of this tool if it decreases usability, and speed is a very important aspect of the usability of a virtual desktops manager.
- Other standard features of good programs: documentation, stability, ease of use (no 10-level-deep menu options), consistent and sensible interface, etc..
I couldn't work without a virtual desktops manager any more. I keep my 'to-do' list open on the first desktop, and nothing else. This way I can quickly check the list any time without disrupting any of the things I am doing, and I know there's only one editor with that file open so I won't get synchronisation problems (like adding an item to the list on one desktop and adding something different on another). The second I use for coding. The third and fourth I leave empty… it's not unusual for my boss to give me a 'quick 1-hour job' (which I put on the third, starting with a clean fresh desktop without disrupting my main work) and then quarter of an hour later give me a 'quick 10-minute job' (which I put on the fourth). The fifth I reserve for security utilities, and the sixth for e-mail and browsing.
The best feature is to be able to wipe all the coding tools in a moment, to start fresh on something new with no clutter, then resume exactly where I left off when I'm done.