Wednesday, January 19, 2011

Windows 7: Multiple Desktops: A Look at Dexpot and Sysinternals

As noted previously, I wanted to try using multiple or virtual desktops in Windows 7, so as to have different workspaces for different projects.  For this purpose, I decided to try Dexpot.  This post describes my first experiences with that program.

Setup and Orientation

When I ran Dexpot, it started minimized.  That is, there was an icon on the taskbar, at the bottom of the screen, but nothing appearing onscreen.  Mousing over the icon showed entries for four desktops.  Right-clicking on the icon gave me a number of configuration options.  First was "Window catalogue."  This displayed large thumbnails (apparently defaulting to a maximum of nine per screen), one for each program I had running on Desktop 1.  Clicking on a directional arrow at the top of the screen would take me to the next or previous desktop.  Clicking on any program icon, within any desktop, would take me to that program within that desktop.  In short, Windows Catalogue was a quick way to navigate to any program that was then running.  There were no tooltips, so I had to click on the red button at the top right corner of the screen to learn that this just took me back to the desktop.

Right-clicking on the taskbar icon again, the second option was "Full-screen preview."  This was a different way of representing what was going on, on my computer.  It divided the screen into quadrants.  Top left was for Desktop 1.  There, it showed a 1/4-size depiction of the actual look of desktop 1 at that point.  Desktops 2, 3, and 4 were blank.  Presumably the screen would have been divided into sixths if I'd set up six desktops.  This would be the more useful tool if I wanted to find a certain desktop and would know it by sight, and didn't necessarily need to go directly to a single window within that desktop.

Back on the taskbar, the third right-click option was for Settings.  In its General section, I saw that I could create up to 20 desktops, designate which one would open first, etc.  There were some options related to profiles.  If the machine had other users and didn't require them to sign in under their own accounts, that would presumably be where the person would go to choose his/her own set of desktops.  Also, I guessed that a one-user system might use this feature if, say, the person had different sets of desktops that s/he used in professional and personal roles.  If this was correct, there was not actually a limit of 20 desktops; there was no limit, since each of an indefinitely large number of profiles could have 20 desktops.

The primary sources of guidance on such matters seemed to be Dexpot's Quick Start Guide, FAQs page, and support forums.  The Quick Start Guide provided a big-picture orientation to Dexpot, starting as a tutorial for beginners in virtual desktops and then proceeding to customization.  The FAQs page featured maybe two dozen specific questions and answers.  The forums of interest (aside from the FAQs) were Support, Feature Requests, Plugins, and General Discussion.  The Quick Start Guide told me that Alt-2 would take me directly to desktop 2.  One of the FAQs discussed the Settings dialog that I was now viewing, but did not confirm or deny my speculation about the possibility of having many users, each with its own 20 desktops.

Continuing in the Settings dialog, I went to the Appearance section.  Here, I could customize a few items.  A bit of confusion or overlap here:  I would have expected to configure wallpaper and other layout items here, but instead, to do that, I had to go back to the taskbar, right-click, and choose the fourth item, "Configure Desktops."  That opened a different dialog, with global options applicable to all desktops and also with individual desktop overrides for name, resolution, password, and all kinds of other settings.  It seemed to me that Dexpot should combine these two main right-click menu options.  So, to complete the thought regarding that Configure Desktops menu pick, I went to the All Desktops option and browsed.  There really was not too much I wanted to change right now.  Later, I would go to the Background tab for each desktop and give it a unique look, so that it would be easy to tell at a glance which one I wanted.  One interesting feature here:  I could specify commands that I wanted each desktop to run upon starting.  So if I opened a certain desktop each Saturday, for purposes related to one specific folder on my computer, perhaps I could specify a Windows Explorer command that would open Explorer to that folder when I started this desktop (and likewise for opening a specific document in Word, etc.).

So, OK.  This -- the Appearance tab, plus the Configure Desktops menu pick, seemed to take care of the basic look of the thing.  Back in the Settings dialog, I went to the third tab:  Components.  There were four tabs.  The first component they were going to let me configure was the Desktop Manager; the other three tabs were for Desktop Preview, DexTab, and Windows Catalogue (above).  Here, again, I browsed through the options.  I didn't yet have any particular reason to change their default settings, so I just moved on.

The fourth section in the Settings dialog was for Controls.  This seemed to be the ultimate tweaker section.  There were tabs for Hotkeys, Mouse Switch, and Title Bars.  "Controls" apparently meant "how to handle user input related to Dexpot."  So if I wanted to create a hotkey to move a window to desktop 3, this was where I would do that.  On the second tab, it looked like I could configure various mouse actions.  For instance, if I moved the mouse to the left edge of the screen and held it there, possibly that would be interpreted as an indication that I wanted to go to the previous desktop.  There seemed to be a number of configurable possibilities like that here.  That was interesting, but I didn't set it up yet.

Next, the Switching Desktops section.  Again, some confusion:  they had appearance-related items here too, such as screen resolution and screensaver customization.

Finally, the Plugins and Extras section.  They listed five plugins:  Dexcube, SevenDex, Slideshow, Taskbar Pager, and Wallpaper Clock.  SevenDex was already installed with my version of Dexpot.  It seemed that SevenDex, for Windows 7, was responsible for what this post has been describing as items listed on a right-click menu from the taskbar icon.  Finally, there was an option, here in the Plugins and Extras section, that I didn't entirely understand.  It had to do with "Behaviour of windows on other desktops."  One possibility, "When activating a window on another desktop," was, "Copy window to current desktop."  I wasn't sure how this activation concept worked; it seemed I would probably have to see it in action to grasp it fully.

Those were the Settings and Configure Desktops items that jumped out at me, on my first pass.  Continuing down the menu that popped up when I right-clicked on the Dexpot (actually, SevenDex) taskbar button, I saw four more items:  Desktop Manager, Desktop Preview, Desktop Windows, and Desktop Rules.  Choosing Desktop Manager would give me a little always-on-top toolbar that I could use to switch among desktops.  I didn't want that onscreen, so I didn't use it.  Why should I?  Just left-clicking on the taskbar button would give me the same thing.  But possibly some of the right-click options available from that little toolbar (e.g., "Move other windows to this Desktop") would be useful.  Desktop Preview opened another little always-on-top toolbar, this one showing inaccurate thumbnails representing the four desktops.  Desktop Windows gave me a dialog (not always-on-top) that would list the windows I had open in any selected desktop, with right-click options to move, copy, close, create rules, etc.  I did not yet have much concept of the purpose that rules would serve in Dexpot.  I figured the purpose would seem more obvious once I had a bit of experience with the program.

Using Dexpot

With that brief tour of settings, I decided to start using Dexpot.  I went to the taskbar icon and chose desktop 1.  That was my preexisting desktop, running Windows Explorer, Adobe Acrobat, Firefox, and a couple of other programs.  Nothing new there.  Now desktop 2.  No programs running there.  Same Start Menu and everything else; it was just a new workspace.

So, alright, there in desktop 2, I started another session of Acrobat.  It allowed me to do this.  The one in desktop 1 was still running.  So that was different from having just one desktop.  With just one desktop, I could run only one session of Acrobat at a time.  I went into desktop 1 and opened a file called D:\Current\x.pdf in Acrobat.  I went into desktop 2.  Here, x.pdf was already opened.  So I wasn't actually running different sessions of Acrobat.  I was running one session, but I could see it on different desktops.  I tested this by closing x.pdf and opening some other PDF file in desktop 2.  Now that was the one displayed on desktop 1 as well.  Closing Acrobat in desktop 2 closed it in desktop 1 also.

So, OK, this was definitely not the same as using a virtual machine, where each desktop would function as its own little world, oblivious to whatever might be happening anywhere else.  Programs like Acrobat, that would run only one session at a time, would be like the hedgehog that knows one great thing.  But how about programs that would allow me to run multiple sessions at once?  In desktop 1, I navigated in Windows Explorer to D:\Miscellany.  This did not affect Windows Explorer in desktop 2.  There, it was still looking at D:\Current.  So for purposes of Windows Explorer, the two desktops were more or less like separate virtual machines.  I tried the same thing in Word.  I opened y.doc in desktop 1.  That did not open it in desktop 2.  I opened the same file, y.doc, in desktop 2.  I made a change to it.  This change was also visible in desktop 1.  So Word was functioning like Acrobat in that sense.  If I opened a file in Word in one desktop, the changes would be immediately visible if I opened that file in Word in other desktops.  I closed y.doc in desktop 2.  Here, again, that closed y.doc in desktop 1 as well.

This seemed to explain why the screenshots that I had been seeing, showing various multiple desktop programs, were often empty except for the customized desktops themselves.  As long as I had different programs running in the different desktops (e.g., two different PDF readers or editors), there would be no problem.  Basically, the desktops were a way to reduce clutter.  Programs would appear only in the desktops where they were being used.  I was pretty much used to having them all visible on the taskbar, though.  It didn't seem helpful to go hunting through other desktops to find them.  It probably would have been different if I had a large number of different programs running at once.

No doubt there were other uses.  One example was if the user needed to use different screen resolutions for different programs or projects.  With the use of hotkeys, I figured I could also use one desktop to retain a full-screen view of a video, for instance, or other layout customizations, while having a more traditional layout in another.  If I wasn't using the same video player, I could even have multiple videos running or paused in different desktops.  Maybe I could also use portable programs (copied to, and running from, distinct folders if necessary) to run multiple instances of the same program.  There were portable versions for programs that would do much of what I needed to do (e.g., OpenOffice instead of Microsoft Office).  So there were possibilities.  The overall purpose was evidently to manage appearances, not programs.  As long as Dexpot wasn't interfering with anything else, it seemed like something worth keeping around.

Virtual Desktops in Another Multiple Desktop Program:  Sysinternals

Dexpot seemd to be a multiple desktop administrator.  It did not actually give me distinct virtual desktops, each of which could have its own session of Word or Acrobat running in ways that were completely unrelated to what might be happening in other virtual desktops.  I wondered if other multiple desktop programs functioned the same way.  Wikipedia said that the XWindow system used in Linux did allow the same program to be doing different things on different desktops.  It also said, however, that on Windows systems, program conflicts were common in multiple desktop setups.  This seemed unavoidable.  If Acrobat was not built, at this point, to accommodate multiple sessions, and if Windows at this point was not designed to facilitate virtual desktopping, then it seemed that a search for complete workspace independence would require a virtual machine, not just a virtual desktop.

I recalled the impression, from a CNET review, that Sysinternals Desktops might provide more independence.  I killed Dexpot and then downloaded and installed Sysinternals.  They weren't kidding when they said it was lightweight:  it was a 60KB portable.  Options were almost nonexistent.  Within a minute after installing it, I had figured out that Alt-2 would take me to desktop 2.  And that was about it.  I opened a Word document in desktop 1, and another Word document in desktop 2.  The two did not seem to know that the other existed.  This was good.  Excel likewise was able to handle two distinct spreadsheets in two virtual desktops.  I tried to do the same with Acrobat, but that didn't work.  I had to kill Acrobat in desktop 1 before it would run in desktopt 2.  Apparently Acrobat was not going to be compatible with virtual desktops, no matter how independent; it would take a virtual machine to run multiple sessions of that.  But I could imagine using other PDF programs -- again, perhaps as mutiply copied portables -- to handle most Acrobat functions in those other desktops.

In Sysinternals, desktop 2 did not have all of the icons in the system tray that I had running on desktop 1, and it did not have my customized Start Menu.  Back in desktop 1, some of the system tray icons seemed not to be functioning properly.  For instance, Windows-C was no longer opening Copernic Desktop Search.  I decided to uninstall Dexpot, run Glary's registry checker on reboot, and try again.  Sysinternals was running, as I had set it to do on bootup, and Windows-C was bringing up Copernic.  I hit Alt-2 and went into desktop 2.  Here, Windows-C did not work to bring up Copernic.  I went back to desktop 1.  There, Windows-C still worked to bring up Copernic.  So, preliminarily, either Dexpot itself or some conflict between Dexpot and Sysinternals had affected the tray icons.  Back in desktop 2, Control Panel showed that Copernic was installed.  But when I went to Start and typed Copernic, it wouldn't run that way either.  So if I wanted to search for files using Copernic, apparently I would have to go to desktop 1.  The tray icon was also missing, in desktop 2, for Instant File Find (IFF); accordingly, Shift-Esc failed to bring up IFF.  Back in desktop 1, IFF was now also failing to come up from the tray icon.  It did come up from the Start Menu, but had some kind of apparently fixable problem with its index.  The general idea seemed to be that, in Sysinternals desktop 2, I could only run a program from the tray (using its hotkey) if the program's icon appeared in the tray; otherwise, I would have to start it from the Start Menu, or perhaps from a toolbar or as pinned to the taskbar.


Virtual desktop software seemed much lighter and faster than virtual machine software.  Some virtual desktop programs (e.g., Sysinternals) were able to provide desktops that were largely independent from one another.  Where a program (e.g., Acrobat) was uncooperative (i.e., where it insisted on being run in just one desktop), it could conceivably be supplemented by some more cooperative freeware alternative and/or by use of multiple distinct portable versions of the folder containing its program files.  The best of the available multiple desktop managers (e.g., Dexpot) seemed to provide interesting, configurable interfaces.  Sources and my own brief experience raised the prospect of program conflicts.  There did not appear to be a capability to save images of virtual desktops, as one would save virtual machines, so as to preserve everything in the desired or previous layout.  For that last reason especially, while I did decide to install Dexpot and use it on an introductory basis, I also felt that my next serious effort in this area would be to consider a return to virtual machines, although this time in Windows rather than Ubuntu.