Tuesday, April 28, 2009

Why no virtual desktops?

Let me take a few moments to talk about my personal history with Linux. When I entered university, my primary (personal) platform was MS-DOS, but I often did a lot of my class work in the computer labs. That introduced me to the UNIX systems. While I wasn't a computer science student, I often used the UNIX system to help with data analysis for my physics classes.

In 1993, I'd heard about this "Linux" thing, and how it was basically a free version of UNIX. I found the SLS 1.03 distribution, which had a friendly installer - very much like MS-DOS. While the install files were spread across more than 100 floppies, I was able to easily install Linux on my '386 PC.

Moving to Linux certainly made my data analysis easier, since I could now do it all from my dorm room with no trips to the labs. I could run X Windows (using TWM) same as the labs.

Sure, TWM wasn't much to look at, but it was easy to use and very powerful:

(click to view full-size)

That summer, I got a student internship at a small company, writing simple reports against their database. While there, one of the developers showed me his Sun workstation, and I really liked the OpenLook GUI for X Windows. It certainly looked a lot better than the rather plain TWM. Looking around, I found a window manager for Linux that looked just like the Sun workstation: the OpenLook Virtual Window Manager (OLVWM).

OLVWM was an important step forward for me, because it introduced the concept of a virtual desktop. In short, this meant that my desktop could expand beyond the borders of my plain 800x600 monitor. OLVWM had a little manager that divided your desktop into different virtual desktops. Each virtual desktop became a separate workspace. I could write my term papers in one virtual desktop, do lab analysis in another virtual desktop, and run commands in a third virtual desktop:

(click to view full-size)

In 1994, I switched to the "F" Virtual Window Manager (FVWM) which allowed more customization. Again, the "V" stood for "Virtual", as FVWM supported virtual desktops:

(click to view full-size)

When Microsoft released Windows95 in August 1995, the open source community quickly followed with an update to FVWM, called FVWM95. This mimicked the look and feel of Windows95, but also supported virtual desktops:

(click to view full-size)

I used FVWM95 as my default desktop for several years after that, eventually switching to GNOME. And yes, GNOME also supported virtual desktops (and still does, today.)

Virtual desktops can help reduce desktop clutter, where you have too many windows open to keep track of them all. When I ran Linux at work, I used to open my email client on one virtual desktop, my web browser in another, and my OpenOffice documents in a third desktop. This was especially useful when writing a document that required referring to other Word or Excel files. I could open all the files at once, and keep them open on the same virtual desktop, making it much easier to switch between them.

Even Mac OS X supports virtual desktops, although I don't consider Spaces to be as integrated as the Linux virtual desktop managers. But that's probably just me. Still, the functionality is there.

So why is it that Windows still does not have a virtual desktop manager? I'm currently running Windows Vista, and this very useful feature is missing. I've been using virtual desktops under Linux since 1993/1994, and Apple has supported them since Mac OS 10.5. But Microsoft hasn't gotten there yet, I guess. It's 2009, but still no virtual desktops in Windows?

Thanks to Stan Reichardt and the St. Louis GNU/Linux Users Group for permission to re-use their screenshots.


  1. I've commented on "apologists" pointing out some third party tool that fills the gap before, but this time it's my turn :P. When I was dabbling with Linux for the first time, the thing I really liked was the virtual desktops. I searched for something similar for Windows and believe it or not, Microsoft of all people have made it. It's one of the Windows "Power Toys". I'm not sure if there's a vista version, or if the Windows XP version is compatible. I wasn't really happy with the implementation though. Seemed to slow Windows XP right down for me - your mileage may vary, and if you really miss virtual desktops, this may be just the ticket for you.

  2. The "Power Toys" are not all compatible with Vista "yet." I thought it was extremely slow and poorly implemented.

    I'm curious: what does spaces (not) do that makes it less integrated?

  3. Ben, Spaces doesn't feel as integrated because I don't get an "at a glance" view to what other windows are open on the other virtual desktops. To see what else I have open, I have to flip to the Spaces view (for me, a hot-corner) and then I can see what else is open.

    With virtual desktops under Linux, there's a panel applet that shows me a quick view of the windows that are open on the other virtual desktops. I don't have to flip to another view just to get an overview of my virtual desktops.

    I'm comparing defaults here, by the way.

  4. @Noobix: it's interesting that Microsoft has these "Power Toys". I'd heard about them, but haven't dabbled.

    I'd like to hear from others if there is virtual desktop support in Vista's "Power Toys", and what's the performance like.

    But like an earlier blog item, I can only compare defaults here. Linux has provided virtual desktops as part of the default feature set since ~1993. Apple provided virtual desktops with 10.5 (I understand that Apple had a third-party solution around 10.3 or 10.4.) Yet Windows XP and Windows Vista don't have them.

    Whenever I read tech articles about how someone has experimented with replacing their Windows desktop with Linux, they always compare the default install of Linux with Windows (to be fair, usually it's Windows + "standard" 3rd party software.) I'm doing the same here; I'm comparing the defaults.

  5. The virtual desktop "power toy" is a very poor implementation. The best work around I have found is VirtuaWin. It is still not as good as the gnome implementation, but it is the best I've found for a Windows environment. It is also portable and requires no installation.

  6. I haven't used it, but my frioend uses Dexpot. This provides Virtual Desktops, supports Windows 95/98/ME and NT4/2000/XP/2003/Vista (incl. x64). http://www.dexpot.de/

    But yeah, I agree that you shouldn't have to install some Widnows add-on to get the functionality that Linux provides by itself.

  7. I guess there isn't really a spot to put an at-a-glance view on the Mac desktop. I just use F8.

  8. I think the best virtual desktop representations I've ever seen have been ones brought to us by Compiz. Being a Windows refugee, I liked virtual desktops (as I said earlier), but I never found myself using them much. That is, until Compiz showed me the light with the desktop cube. Nowadays I prefer the desktop wall plugin, but either way it's a spatial representation of the desktops. It lets me get a better conceptual grip on them. I also found myself using virtual desktops a lot, even without Compiz, when my video card died and I was busted down to 800x600 for a while. It was amazing how much they help at low resolutions.

